เรานำเสนออะแดปเตอร์ IP ซึ่งเป็นอะแดปเตอร์ที่มีประสิทธิภาพและมีน้ำหนักเบาเพื่อให้ได้ความสามารถในการพรอมต์ของภาพสำหรับรุ่นการแพร่กระจายข้อความไปยังภาพที่ผ่านการฝึกอบรมมาก่อน เครื่องปรับอากาศ IP ที่มีพารามิเตอร์เพียง 22 เมตรสามารถบรรลุประสิทธิภาพที่เทียบเคียงได้หรือดียิ่งขึ้นกับโมเดลพรอมต์ภาพที่ปรับแต่งได้ IP-ADAPTER สามารถสรุปได้ไม่เพียง แต่กับโมเดลที่กำหนดเองอื่น ๆ ที่ปรับแต่งจากรุ่นพื้นฐานเดียวกัน แต่ยังรวมถึงรุ่นควบคุมได้โดยใช้เครื่องมือควบคุมที่มีอยู่ ยิ่งกว่านั้นพรอมต์ภาพยังสามารถทำงานได้ดีกับข้อความแจ้งเตือนเพื่อสร้างภาพหลายรูปแบบให้สำเร็จ
# 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-ADAPTER สำหรับภาพที่ไม่ใช่สแควร์
เนื่องจากภาพเป็นศูนย์ที่ถูกครอบตัดในตัวประมวลผลภาพเริ่มต้นของคลิป Adapter IP ทำงานได้ดีที่สุดสำหรับภาพสี่เหลี่ยมจัตุรัส สำหรับภาพที่ไม่ใช่สแควร์มันจะพลาดข้อมูลนอกศูนย์ แต่คุณสามารถปรับขนาดเป็น 224x224 สำหรับภาพที่ไม่ใช่สี่เหลี่ยมจัตุรัสการเปรียบเทียบมีดังนี้:
การเปรียบเทียบ IP-ADAPTER_XL กับ Reimagine XL จะแสดงดังนี้:
การปรับปรุงในเวอร์ชันใหม่ (2023.9.8) :
สำหรับการฝึกอบรมคุณควรติดตั้งเร่งความเร็วและสร้างชุดข้อมูลของคุณเองลงในไฟล์ 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 }
}