

يتم ضغط الصور لتحميل سرعة.
Ctrlora: إطار عمل قابل للتمديد وفعال لتوليد الصور يمكن التحكم فيه
Yifeng Xu 1،2 ، Zhenliang He 1 ، Shiguang Shan 1،2 ، Xilin Chen 1،2
1 مختبر رئيسي لسلامة الذكاء الاصطناعي ، معهد تكنولوجيا الحوسبة ، CAS ، الصين
2 جامعة أكاديمية العلوم الصينية ، الصين

نقوم أولاً بتدريب ControlNet إلى جانب LORAs الخاصة بالظروف على ظروف قاعدة مع مجموعة بيانات واسعة النطاق. بعد ذلك ، يمكن تكييف ControlNet القاعدة لدينا بكفاءة مع ظروف جديدة من قبل Loras New أقل من 1000 صورة وأقل من ساعة واحدة على وحدة معالجة الرسومات الواحدة .
![]() |
|---|
![]() |
|---|
![]() |
|---|
![]() |
|---|
استنساخ هذا الريبو:
git clone --depth 1 https://github.com/xyfJASON/ctrlora.git
cd ctrloraإنشاء وتفعيل بيئة كوندا جديدة:
conda create -n ctrlora python=3.10
conda activate ctrloraتثبيت Pytorch والتبعيات الأخرى:
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt نحن نقدم نماذجنا المسبقة هنا. يرجى وضع ControlNet ( ctrlora_sd15_basecn700k.ckpt ) في ./ckpts/ctrlora-basecn و loras في ./ckpts/ctrlora-loras . اتفاقية التسمية لـ LORAs هي ctrlora_sd15_<basecn>_<condition>.ckpt ctrlora_sd15_<basecn>_<condition>_<images>_<steps>.ckpt
تحتاج أيضًا إلى تنزيل النماذج المستندة إلى SD1.5 ووضعها في ./ckpts/sd15 . النماذج المستخدمة في عملنا:
v1-5-pruned.ckpt ): الرسمية / المرآةpython app/gradio_ctrlora.pyيتطلب ذاكرة الوصول العشوائي (GPU) على الأقل 9 جيجابايت/21 جيجابايت لإنشاء مجموعة من صور واحدة/أربعة صور 512 × 512.



استنادًا إلى ControlNet القاعدة لدينا ، يمكنك تدريب Lora لحالتك المخصصة مع ما لا يقل عن 1000 صورة وأقل من ساعة واحدة على وحدة معالجة الرسومات (20 جيجابايت).
أولاً ، قم بتنزيل Diffusion V1.5 ( v1-5-pruned.ckpt ) إلى ./ckpts/sd15 و ControlNet الأساسية ( ctrlora_sd15_basecn700k.ckpt ) إلى ./ckpts/ctrlora-basecn كما هو موضح أعلاه.
ثانياً ، ضع بياناتك المخصصة في ./data/<custom_data_name> مع الهيكل التالي:
data
└── custom_data_name
├── prompt.json
├── source
│ ├── 0000.jpg
│ ├── 0001.jpg
│ └── ...
└── target
├── 0000.jpg
├── 0001.jpg
└── ...
source على صور الحالة ، مثل حواف Canny ، وخرائط التجزئة ، وصور العمق ، إلخ.target على صور الحقيقة الأرضية المقابلة لصور الشرط.prompt.json التنسيق مثل {"source": "source/0000.jpg", "target": "target/0000.jpg", "prompt": "The quick brown fox jumps over the lazy dog."} .ثالثًا ، قم بتشغيل الأمر التالي لتدريب Lora لحالتك المخصصة:
python scripts/train_ctrlora_finetune.py
--dataroot ./data/ < custom_data_name >
--config ./configs/ctrlora_finetune_sd15_rank128.yaml
--sd_ckpt ./ckpts/sd15/v1-5-pruned.ckpt
--cn_ckpt ./ckpts/ctrlora-basecn/ctrlora_sd15_basecn700k.ckpt
[--name NAME]
[--max_steps MAX_STEPS]--dataroot : مسار إلى البيانات المخصصة.--name : اسم التجربة. سيكون دليل التسجيل ./runs/name . الافتراضي: الوقت الحالي.--max_steps : الحد الأقصى لعدد خطوات التدريب. الافتراضي: 100000 .بعد التدريب ، استخراج أوزان لورا مع الأمر التالي:
python scripts/tool_extract_weights.py -t lora --ckpt CHECKPOINT --save_path SAVE_PATH--ckpt : المسار إلى نقطة التفتيش التي تنتجها التدريب أعلاه.--save_path : مسار لحفظ أوزان Lora المستخرجة. أخيرًا ، ضع Lora المستخرجة في ./ckpts/ctrlora-loras واستخدمها في عرض Gradio.
يرجى الرجوع إلى التعليمات هنا للحصول على مزيد من تفاصيل التدريب ، والضبط ، والتقييم.
هذا المشروع مبني على الانتشار المستقر ، ControlNet ، والحيوانات أحادية اللون. شكرا لعملهم العظيم!
إذا وجدت هذا المشروع مفيدًا ، فيرجى التفكير في:
@article { xu2024ctrlora ,
title = { CtrLoRA: An Extensible and Efficient Framework for Controllable Image Generation } ,
author = { Xu, Yifeng and He, Zhenliang and Shan, Shiguang and Chen, Xilin } ,
journal = { arXiv preprint arXiv:2410.09400 } ,
year = { 2024 }
}