


إعداد بيئة كوندا
conda create -n ezigen python=3.10 -y && conda activate ezigen
تثبيت Pytorch
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
تثبيت الناشرين
wget https://github.com/huggingface/diffusers/archive/refs/tags/v0.30.1.zip
cd diffusers-0.30.1
pip install -e ".[torch]" && cd .. && rm v0.30.1.zip
تثبيت التبعيات المتبقية
pip install -r requirements.txt
قم بتنزيل نقطة التفتيش ( checkpoint-200000.zip ، ~ 6.5 جيجابايت) من Google Drive ، قم بفك ضغطها إلى المجلد المحلي.
نحن نقدم رمز الاستدلال لكل من مهام التوليد التي تعتمد على الموضوع وتحرير الصور القائم على الموضوع. يمكن العثور على نتائج مثالية في مجلد outputs .
يرجى الانتقال أولاً إلى config/infer_config.yaml لتعيين مسار مجلد نقطة التفتيش (على سبيل المثال checkpoint-200000/ ).
يتم توفير البرنامج النصي للجيل القائم على الموضوع وتوليد المحتوى البشري في infer_generation.sh :
# infer_generation.sh
python infer.py
--config configs/infer_config.yaml
--guidance_scale 7.5
--seed 3154
--split_ratio 0.4
--infer_steps 50
--sim_threshold 0.99
--tar_prompt "a dog in police outfit"
--sub_prompt "a dog"
--sub_img_path "example_images/subjects/dog6.png"
--output_root "outputs/"
# --num_interations 6
بعض التفسيرات على الحجج:
split_ratio=0.4 يعني أننا نترك آخر 40 ٪ من الأوقات الزمنية لنقل المظهر ، أول 60 ٪ خطوات لتوليد التخطيط. تتراوح القيمة من 0 إلى 1 حيث تشير القيمة الكبيرة إلى المزيد من نقل المظهر.
sim_threshold هي عتبة تشابه المقطع لـ Autostop. sub_prompt بمثابة حامل مكان ، ومع ذلك ، يوصى دائمًا بكتابة اسم الفئة الصحيح لصورة الموضوع لأفضل استخراج ميزة الموضوع.
# --num_interations 6 تم تعيينه افتراضيًا إلى -1 لإفساح المجال أمام Machanism Autostop (مع ما لا يقل عن 3 تكرارات بحد أقصى 10) ، ومع ذلك يمكنك إلغاء تحديد هذا الخط وتعيين رقم التكرار المطلوب.
يتم تقديم بعض الموضوعات في example_images/subjects .
# infer_editing.sh
python infer.py
--config configs/infer_config.yaml
--guidance_scale 7.5
--seed 3154
--split_ratio 0.4
--infer_steps 50
--sim_threshold 0.99
--tar_prompt "a woman"
--sub_prompt "a woman"
--sub_img_path "example_images/subjects/lifeifei.png"
--output_root "outputs/"
--foreground_mask_path example_images/source_images_with_masks/woman_mask.png
--source_image_path example_images/source_images_with_masks/woman.png
--do_editing
# --num_interations 6
بعض التفسيرات للحجج:
على غرار --sub_prompt ، --tar_prompt هو أيضًا صاحب نائب الآن لأن عملية التحرير لا تتطلب موجه نص.
source_image_path : المسار إلى صورة RGB المصدر للتحرير.
foreground_mask_path : يجب أن يكون المسار إلى قناع من 3 قنوات مع مقدمة مثل (255 ، 255 ، 255) والخلفية مثل (0 ، 0 ، 0) ، مما يشير إلى منطقة الصورة المصدر للتحرير ، بنفس الارتفاع وعرض الصورة المصدر.
يتم تقديم بعض أمثلة الإدخال في example_images/source_images_with_masks .
يحيل هذا المشروع بعض الرمز من أيلوور ، يصرخ إلى هذا العمل الرائع!
إذا وجدت قاعدة الشفرة هذه مفيدة لبحثك ، فيرجى الاستشهاد على النحو التالي:
@article{duan2024ezigen,
title={EZIGen: Enhancing zero-shot subject-driven image generation with precise subject encoding and decoupled guidance},
author={Duan, Zicheng and Ding, Yuxuan and Gou, Chenhui and Zhou, Ziqin and Smith, Ethan and Liu, Lingqiao},
journal={arXiv preprint arXiv:2409.08091},
year={2024}
}