MagicMix
1.0.0
MagicMix 的实现:语义混合与扩散模型论文。
该方法的目的是以语义方式混合两个不同的概念以合成一个新概念,同时保留空间布局和几何形状。
该方法采用提供布局语义的图像和为混合过程提供内容语义的提示。
该方法有 3 个参数 -
v
:布局生成阶段使用的插值常数。 v的值越大,提示对布局生成过程的影响越大。kmax
和kmin
:它们确定布局和内容生成过程的范围。 kmax 值越高,会导致丢失更多有关原始图像布局的信息,而 kmin 值越高,会导致内容生成过程的步骤更多。 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
另外,请查看演示笔记本,了解实现的使用示例,以重现论文中的示例。
您还可以使用扩散器库上的社区管道。
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' )
我不是论文的作者,这也不是官方的实现