GitHub - tencent-ailab/IP-Adapter: The image prompt adapter is designed to enable a pretrained text-to-image diffusion model to
The image prompt adapter is designed to enable a pretrained text-to-image diffusion model to generate images with image prompt. - GitHub - tencent-ailab/IP-Adapter: The image prompt adapter is des...
github.com
๐ฅ github ๋ด์ฉ๊ณผ ๋
ผ๋ฌธ์ ๊ธฐ๋ฐ์ผ๋ก ํฌ์คํธ๋ฅผ ์์ฑํ์์ต๋๋ค.
https://arxiv.org/abs/2308.06721
T2I(Text-to-Image) diffusion model์ ์ฑ๊ณต์ผ๋ก ์ธํด ์ด๋ฏธ์ง ์์ฑ์ ๋ง์ ๋ฐ์ ์ ์ด๋ค๋ค.
๊ทธ๋ฌ๋ ์ฌ์ฉ์๊ฐ ์ํ๋ ์ฝํ ์ธ ๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ์ข์ ํ ์คํธ ํ๋กฌํํธ๋ฅผ ์์ฑํด์ผํ๊ณ ์ด๋ ๋ณต์กํ ํ๋กฌํํธ ์์ง๋์ด๋ง์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ์ฝ์ง ์๋ค. ํ ์คํธ๋ ๋ณต์กํ ์ฅ๋ฉด์ด๋ ๊ฐ๋ ์ ํํํ๊ธฐ์ ์ ์ตํ์ง ์๊ณ ์ฝํ ์ธ ์ ์์ ๋ฐฉํด๊ฐ ๋ ์ ์๋ค.
์ด๋ฌํ ํ ์คํธ ํ๋กฌํํธ ์ ํ ์ฌํญ์ ๊ณ ๋ คํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์๋ ๋ค๋ฅธ ํ๋กฌํํธ ์ ํ์ด ์์๊น? ๋ผ๋ ์๋ฌธ์ด ์๋ค.
๋๋ถ๋ถ์ T2I diffusion model์ ์ด๋ฏธ์ง ์์ฑ์ ์ํด Text Conditioning ๋๋ค.
์ด ์ฐ๊ตฌ์์๋ ๊ฐ๋จํ ๋ฐฉ์์ผ๋ก T2I diffusion model์ ๋ํ ์ด๋ฏธ์ง ํ๋กฌํํธ๋ฅผ ํตํด ์์ฑ ๋ฅ๋ ฅ์ ํ์ฑํ ์์ผ๋ณธ๋ค.
SD Image Variations, Stable unCLIP๊ณผ ๊ฐ์ ์ด์ ์ฐ๊ตฌ๋ค์์๋ ์ด๋ฏธ์ง ํ๋กฌํํ ๋ฅ๋ ฅ์ ๋ฌ์ฑ์ ์ํด ์ด๋ฏธ์ง ์๋ฒ ๋ฉ์์ ์ง์ ํ ์คํธ ์กฐ๊ฑด๋ถ diffusion model์ fine-tuning ํจ์ผ๋ก์จ ํจ๊ณผ๋ฅผ ์ ์ฆํ๋ค. ๊ทธ๋ฌ๋ ์ด์๊ฐ์ ์ ๊ทผ๋ฒ์ ๋จ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ํ ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ์๋์ ๋ฅ๋ ฅ์ ์ ๊ฑฐํ๊ณ fine-tuning์ ์ํด ๋๊ท๋ชจ ์ปดํจํ ๋ฆฌ์์ค๊ฐ ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- Fine-tuning๋ ๋ชจ๋ธ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค. ์ด๋ฏธ์ง ํ๋กฌํํ ๋ฅ๋ ฅ์ ๋์ผํ T2I ๊ธฐ๋ฐ ๋ชจ๋ธ์์ ํ์๋ ๋ค๋ฅธ ์ปค์คํ ๋ชจ๋ธ๋ก ์ง์ ์ ์กํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ์๋ก์ด ๋ชจ๋ธ์ ControlNet๊ณผ ๊ฐ์ ๊ธฐ์กด ๊ตฌ์กฐ ์ ์ด ๋๊ตฌ์ ํธํ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ๋ค์ด์คํธ๋ฆผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๊ฐํ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๋ค.
Fine-tuning์ ๋จ์ ์ผ๋ก ์ธํด ์ผ๋ถ ์ฐ๊ตฌ์์๋ fine-tuning์ ํผํ๋ฉด์ ํ ์คํธ ์ธ์ฝ๋๋ฅผ ์ด๋ฏธ์ง ์ธ์ฝ๋๋ก ๋์ฒดํ๋ ๊ฒ์ ์ ํํ์๋ค.
๊ทธ๋ฌ๋ ์ด ๋ฐฉ๋ฒ๋ ์ฌ์ ํ ๋ช ๊ฐ์ง ๋จ์ ์ด ์๋ค.
- ์ด๋ฏธ์ง ํ๋กฌํํธ๋ง ์ง์๋๋ฏ๋ก ์ฌ์ฉ์๊ฐ ํ ์คํธ์ ์ด๋ฏธ์ง ํ๋กฌํํธ๋ฅผ ๋์์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ์์ฑํ ์ ์๋ค.
- ์ด๋ฏธ์ง ์ธ์ฝ๋๋ฅผ fine-tuning ํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ด๋ฏธ์ง ํ์ง์ ๋ณด์ฅํ๊ธฐ์ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ ์ผ๋ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์ ์๋ค์ ์๋ณธ T2I ๋ชจ๋ธ์ ์์ ํ์ง ์๊ณ ์ด๋ฏธ์ง ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ ์ ์๋์ง์ ๋ํด ๊ด์ฌ์ ๊ฐ์ก๋ค.
ControlNet๊ณผ T2I-adapter์์๋ ์ด๋ฏธ์ง ์์ฑ์ ๊ฐ์ด๋ํ๊ธฐ ์ํด ๊ธฐ์กด T2I diffusion model์ ์ถ๊ฐ ๋คํธ์ํฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฐ๊ฒฐํ ์ ์์์ด ์ ์ฆ๋์๋ค.
์ด๋ฅผ ์ํด CLIP ์ด๋ฏธ์ง ์ธ์ฝ๋์์ ์ถ์ถ๋ ์ด๋ฏธ์ง Feature๋ ํ์ต์ด ๊ฐ๋ฅํ ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ก์ด Feature์ ๋งคํ๋๊ณ ๋ค์ ํ ์คํธ Feature์ concatenate๋๋ค.
์๋ณธ ํ ์คํธ Feature๋ฅผ ๋์ฒดํจ์ผ๋ก์จ concatenate๋ Feature๊ฐ diffusion model์ UNet์ ๊ณต๊ธ๋์ด ์ด๋ฏธ์ง ์์ฑ์ ๊ฐ์ด๋ํ๋ค.
์ด๋ฌํ adapter๋ ์ด๋ฏธ์ง ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ณผ ์ ์์ง๋ง ์์ฑ๋ ์ด๋ฏธ์ง๋ ํ๋กฌํํ ๋ ์ด๋ฏธ์ง์ ๋ถ๋ถ์ ์ผ๋ก๋ง ์ถฉ์คํ๊ณ , ๊ฒฐ๊ณผ๊ฐ ์ฒ์๋ถํฐ ํ์ต๋ ๋ชจ๋ธ, fine-tuning๋ ์ด๋ฏธ์ง ํ๋กฌํํธ ๋ชจ๋ธ๋ณด๋ค ๋ ์์ข์ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์ ์๋ค์ ์ด ๋ฌธ์ ์ ์ด T2I Diffusion model์ cross-attention ๋ชจ๋์ ์๋ค๊ณ ์ฃผ์ฅํ๋ค.
- ์ฌ์ ํ์ต diffusion model์์ cross-attention layer์ key, value projection ๊ฐ์ค์น๋ ํ ์คํธ feature์ ๋ง๊ฒ ํ์ต๋จ.
- ์ด๋ฏธ์ง feature์ ํ ์คํธ feature๋ฅผ cross-attention layer์ ๋ณํฉ ์ ์ด๋ฏธ์ง feature๋ฅผ ํ ์คํธ feature์ ์ ๋ ฌํ๋ ๊ฒ๋ง ๋ฌ์ฑ.
- ์ด๋ฌํ ์ด์ ๋๋ฌธ์ ์ผ๋ถ ์ด๋ฏธ์ง ๊ด๋ จ ์ ๋ถ ๋๋ฝ -> ๋ ํผ๋ฐ์ค ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ์ ์ด ๊ฐ๋ฅํ ๋๋ต์ ์ธ ์์ฑ๋ง ๊ฐ๋ฅ.
์ด๋ฌํ ๋จ์ ์ ํผํ๊ธฐ ์ํด IP-Adapter๋ผ๋ ๋ณด๋ค ํจ๊ณผ์ ์ธ ์ด๋ฏธ์ง ์ด๋ํฐ๋ฅผ ์ ์ํ๋ค.
- ์ด๋ฏธ์ง feature์ ํ ์คํธ feature์ ๋ํด decoupled cross-attention ๋ฉ์ปค๋์ฆ์ ์ฑํํจ.
- UNet diffusion model์ ๋ชจ๋ cross-attention layer์ ๋ํด ์ด๋ฏธ์ง feature์ ๋ํด์๋ง ์ถ๊ฐ cross-attention ๋ ์ด์ด๋ฅผ ์ถ๊ฐ
- ํ์ต ๋จ๊ณ์์๋ ์๋ก์ด cross-attention layer์ ํ๋ผ๋ฏธํฐ๋ง ํ์ต๋๊ณ ์๋ UNet ๋ชจ๋ธ์ ์ ์ง๋๋ค.
โญ๏ธ IP-Adapter๋ ๊ฐ๋ณ๊ณ ํจ์จ์ ์ด๋ค.
- 2200๋ง ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ง์ ๊ฐ์ง IP-Adapter์ ์์ฑ ์ฑ๋ฅ์ T2I diffusion model์์ ์์ ํ fine-tuing๋ ๋ชจ๋ธ๊ณผ ๋น์ทํ๋ค.
- ๋ฐ์ด๋ ์ผ๋ฐํ ๋ฅ๋ ฅ
- ํ ์คํธ ํ๋กฌํํธ์ ํธํ
IP-Adapter๋ ๋ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ์ด๋ฏธ์ง ํ๋กฌํํธ์์ ์ด๋ฏธ์ง feature๋ฅผ ์ถ์ถํ๋ ์ด๋ฏธ์ง ์ธ์ฝ๋
- ์ด๋ฏธ์ง feature๋ฅผ ์ฌ์ ํ์ต๋ T2I diffusion model์ ์ฝ์ ํ๊ธฐ ์ํด decoupled cross-attention์ด ์๋ ์ ์ํ ๋ชจ๋
Image Encoder
๋๋ถ๋ถ์ ๋ฐฉ๋ฒ๋ค์ ๋ฐ๋ผ ์ฌ์ ํ์ต๋ CLIP Image Encoder ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ํ๋กฌํํธ์์ ์ด๋ฏธ์ง feature ์ถ์ถํ๋ค.
CLIP ๋ชจ๋ธ์ ์ด๋ฏธ์ง-ํ ์คํธ ์์ด ํฌํจ๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์ ๋ํ contrastive learning์ ํตํด ํ์ต๋ Multi Modal Model์ด๋ค.
์ด๋ฏธ์ง ์บก์ ๊ณผ ์ ์ ๋ ฌ๋๊ณ ์ด๋ฏธ์ง์ ํ๋ถํ ์ฝํ ์ธ ์ ์คํ์ผ์ ํํํ ์ ์๋ CLIP Image Encoder์ ๊ธ๋ก๋ฒ ์ด๋ฏธ์ง ์๋ฒ ๋ฉ์ ํ์ฉํ๋ค. ํ์ต ๋จ๊ณ์์ CLIP Image Encoder๊ฐ ๊ณ ์ ๋๋ค.
๊ธ๋ก๋ฒ ์ด๋ฏธ์ง ์๋ฒ ๋ฉ์ ํจ๊ณผ์ ์ผ๋ก ๋ถํดํ๊ธฐ ์ํด ํ์ต ๊ฐ๋ฅํ ์์ Projection Network๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ์๋ฒ ๋ฉ์ ๊ธธ์ด N์ feature sequence๋ก projectํ๋ค. ์ด๋ฏธ์ง feature์ ์ฐจ์์ ์ฌ์ ํ์ต๋ diffusion model์ ํ ์คํธ feature ์ฐจ์๊ณผ ๋์ผํ๋ค.
์ฌ๊ธฐ์ ์ฌ์ฉ๋ Projection Network๋ Linear Layer์ Layer normalization์ผ๋ก ๊ตฌ์ฑ๋๋ค.
Decoupled Cross-Attention
์ด๋ฏธ์ง feature๋ cross-attention์ด ๋ถ๋ฆฌ๋ ์ ์ํ ๋ชจ๋์ ํตํด ํ์ต๋ UNet ๋ชจ๋ธ์ ํตํฉ๋๋ค.
์๋ณธ Stable Diffusion ๋ชจ๋ธ์์ CLIP ํ ์คํธ ์ธ์ฝ๋์ ํ ์คํธ feature๋ cross-attention layer์ ๊ณต๊ธ๋์ด UNet ๋ชจ๋ธ์ ์ฐ๊ฒฐ๋๋ค.
Query feature Z์ ํ ์คํธ feature Ct๊ฐ ์ฃผ์ด์ง๋ฉด cross-attention์ ์ถ๋ ฅ Zl์ ๋ค์ ๋ฐฉ์ ์์ผ๋ก ์ ์๋ ์ ์๋ค.
- Q,K,V : attention ์ฐ์ฐ์ query, key, value ํ๋ ฌ
- Wq, Wk, Wv : linear projection layer์ ๊ฐ์ค์น ํ๋ ฌ
์ฐ๊ตฌ์์ ํ ์คํธ feature์ ์ด๋ฏธ์ง ํน์ง์ ๋ํ cross-attention layer๊ฐ ๋ถ๋ฆฌ๋ decoupled cross-attention ๋ฉ์ปค๋์ฆ์ ์ ์ํ์๋ค.
UNet ๋ชจ๋ธ์ ๊ฐ cross-attention layer์ ๋ํด ์๋ก์ด cross-attention layer๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฏธ์ง feature๋ฅผ ์ฝ์ ํ๋ค.
์ด๋ฏธ์ง feature ci๊ฐ ์ฃผ์ด์ง๋ฉด ์๋ก์ด cross-attention์ ์ถ๋ ฅ Z'' ์ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋๋ค.
ํ ์คํธ cross-attention๊ณผ ์ด๋ฏธ์ง cross-attention์ ๋ํด ๋์ผํ query๋ฅผ ์ฌ์ฉํ๋ค.
- cross-attention layer์ ๋ํด ๋ ๊ฐ์ ํ๋ผ๋ฏธํฐ W'k, W'v ๋ง ์ถ๊ฐํ๋ฉด ๋๋ค.
- ์๋ ด ์๋๋ฅผ ๋์ด๊ธฐ ์ํด W'k, W'v์ Wk์ Wv์์ ์ด๊ธฐํ ๋๋ค.
- ์ด๊ธฐํ ํ ๋ค์ ์ด๋ฏธ์ง cross-attention ์ถ๋ ฅ์ ํ ์คํธ cross-attention ์ถ๋ ฅ์ ๋ํ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
decoupled cross-attention์ ์ต์ข ๊ณต์์ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋๋ค.
Training and Inference
ํ์ต ์ค์๋ ์ฌ์ ํ์ต๋ diffusion model์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ณ ์ ๋ ์ํ๋ก ์ ์งํ๋ฉด์ IP-Adapter๋ง ์ต์ ํํ๋ค.
๋ํ IP-Adapter๋ ์๋ณธ Stable Diffusion๊ณผ ๋์ผํ ํ์ต ๋ชฉ์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง-ํ ์คํธ ์์ด ํฌํจ๋ ๋ฐ์ดํฐ์ ์ ๋ํด ํ์ต๋๋ค.
๋ํ inference ๋จ๊ณ์์ classifier-free guidance๋ฅผ ํ์ฑํํ๊ธฐ ์ํด ํ์ต ๋จ๊ณ์์ ์ด๋ฏธ์ง ์กฐ๊ฑด์ ๋ฌด์์๋ก ์ ๊ฑฐํ๋ค.
์ด๋ฏธ์ง ์กฐ๊ฑด ์ ๊ฑฐ ํ CLIP ์ด๋ฏธ์ง ์๋ฒ ๋ฉ์ 0์ผ๋ก ์ค์ ํ๋ค.
ํ ์คํธ cross-attention๊ณผ ์ด๋ฏธ์ง cross-attention์ด ๋ถ๋ฆฌ๋์ด ์์ผ๋ฏ๋ก inference ๋จ๊ณ์์ ์ด๋ฏธ์ง ์กฐ๊ฑด์ ๊ฐ์ค์น๋ฅผ ์กฐ์ ํ ์ ์๋ค.
λ๋ ๊ฐ์ค์น์ด๊ณ ์ธ ๊ฒฝ์ฐ ๋ชจ๋ธ์ ์๋ณธ T2I diffusion model์ด ๋๋ค.
DEMO ๋ฒ์
ip_adapter_demo.ipynb
Run, share, and edit Python notebooks
colab.research.google.com
'AI > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Computer Vision] Inpainting (0) | 2024.03.25 |
---|---|
[Computer Vision] DreamBooth (0) | 2024.03.11 |
[Computer Vision] LoRA(Low-Rank Adaptation) (0) | 2024.03.10 |
[Computer Vision] Control Net (0) | 2024.03.09 |
[Computer Vision] Image Segmentation (0) | 2024.03.09 |