MagicMix
1.0.0
Implementação do artigo MagicMix: Mistura Semântica com Modelos de Difusão.
O objetivo do método é misturar dois conceitos diferentes de maneira semântica para sintetizar um novo conceito, preservando o layout espacial e a geometria.
O método pega uma imagem que fornece a semântica do layout e um prompt que fornece a semântica do conteúdo para o processo de mixagem.
Existem 3 parâmetros para o método-
v
: É a constante de interpolação utilizada na fase de geração do layout. Quanto maior o valor de v, maior será a influência do prompt no processo de geração do layout.kmax
e kmin
: determinam o alcance do processo de layout e geração de conteúdo. Um valor maior de kmax resulta na perda de mais informações sobre o layout da imagem original e um valor maior de kmin resulta em mais etapas para o processo de geração de conteúdo. from PIL import Image
from magic_mix import magic_mix
img = Image . open ( 'phone.jpg' )
out_img = magic_mix ( img , 'bed' , kmax = 0.5 )
out_img . save ( "mix.jpg" )
python3 magic_mix.py
"phone.jpg"
"bed"
"mix.jpg"
--kmin 0.3
--kmax 0.6
--v 0.5
--steps 50
--seed 42
--guidance_scale 7.5
Além disso, verifique o caderno de demonstração para ver exemplos de uso da implementação para reproduzir exemplos do papel.
Você também pode usar o pipeline da comunidade na biblioteca de difusores.
from diffusers import DiffusionPipeline , DDIMScheduler
from PIL import Image
pipe = DiffusionPipeline . from_pretrained (
"CompVis/stable-diffusion-v1-4" ,
custom_pipeline = "magic_mix" ,
scheduler = DDIMScheduler . from_pretrained ( "CompVis/stable-diffusion-v1-4" , subfolder = "scheduler" ),
). to ( 'cuda' )
img = Image . open ( 'phone.jpg' )
mix_img = pipe (
img ,
prompt = 'bed' ,
kmin = 0.3 ,
kmax = 0.5 ,
mix_factor = 0.5 ,
)
mix_img . save ( 'mix.jpg' )
Não sou o autor do artigo e esta não é uma implementação oficial