우리는 미리 훈련 된 텍스트-이미지 확산 모델에 대한 이미지 프롬프트 기능을 달성하기 위해 효과적이고 경량 어댑터 인 IP-Adapter를 제시합니다. 22m 파라미터 만있는 IP 어드데이터는 미세 조정 된 이미지 프롬프트 모델과 비슷하거나 더 나은 성능을 달성 할 수 있습니다. IP 어래지는 동일한 기본 모델에서 미세 조정 된 다른 사용자 정의 모델뿐만 아니라 기존 제어 가능한 도구를 사용하여 제어 가능한 생성으로 일반화 할 수 있습니다. 또한 이미지 프롬프트는 텍스트 프롬프트와 함께 잘 작동하여 멀티 모달 이미지 생성을 달성 할 수 있습니다.
# install latest diffusers
pip install diffusers==0.22.1
# install ip-adapter
pip install git+https://github.com/tencent-ailab/IP-Adapter.git
# download the models
cd IP-Adapter
git lfs install
git clone https://huggingface.co/h94/IP-Adapter
mv IP-Adapter/models models
mv IP-Adapter/sdxl_models sdxl_models
# then you can use the notebook
여기에서 모델을 다운로드 할 수 있습니다. 데모를 실행하려면 다음 모델도 다운로드해야합니다.
모범 사례
scale=1.0
및 text_prompt=""
(또는 일부 일반 텍스트 프롬프트, 예를 들어 "최상의 품질"을 설정할 수 있습니다). scale
낮추면 더 다양한 이미지를 생성 할 수 있지만 이미지 프롬프트와 일치하지 않을 수 있습니다.scale
조정하여 최상의 결과를 얻을 수 있습니다. 대부분의 경우 scale=0.5
설정하면 좋은 결과를 얻을 수 있습니다. SD 1.5 버전의 경우 커뮤니티 모델을 사용하여 좋은 이미지를 생성하는 것이 좋습니다.비 선명 이미지의 IP 어드카터
클립의 기본 이미지 프로세서에서 이미지가 중앙에 자르기 때문에 IP-Adapter는 정사각형 이미지에 가장 적합합니다. 비 광장 이미지의 경우 중앙 외부의 정보를 놓칠 것입니다. 그러나 비-제곱 이미지의 경우 224x224로 크기를 조정할 수 있습니다. 비교는 다음과 같습니다.
Reimagine XL과 IP-Adapter_XL 을 비교하면 다음과 같습니다.
새 버전의 개선 (2023.9.8) :
교육을 위해 Accelerate를 설치하고 자신의 데이터 세트를 JSON 파일로 만들어야합니다.
accelerate launch --num_processes 8 --multi_gpu --mixed_precision "fp16"
tutorial_train.py
--pretrained_model_name_or_path="runwayml/stable-diffusion-v1-5/"
--image_encoder_path="{image_encoder_path}"
--data_json_file="{data.json}"
--data_root_path="{image_path}"
--mixed_precision="fp16"
--resolution=512
--train_batch_size=8
--dataloader_num_workers=4
--learning_rate=1e-04
--weight_decay=0.01
--output_dir="{output_dir}"
--save_steps=10000
훈련이 완료되면 다음 코드로 가중치를 변환 할 수 있습니다.
import torch
ckpt = "checkpoint-50000/pytorch_model.bin"
sd = torch . load ( ckpt , map_location = "cpu" )
image_proj_sd = {}
ip_sd = {}
for k in sd :
if k . startswith ( "unet" ):
pass
elif k . startswith ( "image_proj_model" ):
image_proj_sd [ k . replace ( "image_proj_model." , "" )] = sd [ k ]
elif k . startswith ( "adapter_modules" ):
ip_sd [ k . replace ( "adapter_modules." , "" )] = sd [ k ]
torch . save ({ "image_proj" : image_proj_sd , "ip_adapter" : ip_sd }, "ip_adapter.bin" )
이 프로젝트는 AI 중심 이미지 생성 도메인에 긍정적 인 영향을 미치기 위해 노력합니다. 사용자는이 도구를 사용하여 이미지를 자유롭게 만들 수 있지만 현지 법률을 준수하여 책임있는 방식으로 활용해야합니다. 개발자는 사용자의 잠재적 오용에 대한 책임을지지 않습니다.
연구 및 응용 프로그램에 유용한 IP 어래지가 발견되면이 Bibtex를 사용하여 인용하십시오.
@article { ye2023ip-adapter ,
title = { IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models } ,
author = { Ye, Hu and Zhang, Jun and Liu, Sibo and Han, Xiao and Yang, Wei } ,
booktitle = { arXiv preprint arxiv:2308.06721 } ,
year = { 2023 }
}