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' )
저는 논문의 저자가 아니며 이는 공식적인 구현이 아닙니다.