

Gambar dikompresi untuk kecepatan pemuatan.
Ctrlora: Kerangka kerja yang diperluas dan efisien untuk pembuatan gambar yang dapat dikendalikan
Yifeng Xu 1,2 , Zhenliang HE 1 , Shiguang Shan 1,2 , Xilin Chen 1,2
1 Lab Kunci Keselamatan AI, Institut Teknologi Komputasi, CAS, China
2 Universitas Akademi Ilmu Pengetahuan Tiongkok, Cina

Kami pertama-tama melatih ControlNet dasar bersama dengan Loras khusus kondisi pada kondisi dasar dengan dataset skala besar. Kemudian, controlnet dasar kami dapat secara efisien disesuaikan dengan kondisi baru oleh Loras baru dengan Sedikitnya 1.000 gambar dan kurang dari 1 jam pada satu GPU .
![]() |
|---|
![]() |
|---|
![]() |
|---|
![]() |
|---|
Klon repo ini:
git clone --depth 1 https://github.com/xyfJASON/ctrlora.git
cd ctrloraBuat dan aktifkan lingkungan Conda baru:
conda create -n ctrlora python=3.10
conda activate ctrloraInstal Pytorch dan dependensi lainnya:
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 Kami menyediakan model pretrained kami di sini. Harap masukkan controlNet dasar ( ctrlora_sd15_basecn700k.ckpt ) ke ./ckpts/ctrlora-basecn dan loras ke ./ckpts/ctrlora-loras . Konvensi penamaan Loras adalah ctrlora_sd15_<basecn>_<condition>.ckpt untuk kondisi dasar dan ctrlora_sd15_<basecn>_<condition>_<images>_<steps>.ckpt untuk kondisi baru.
Anda juga perlu mengunduh model berbasis SD1.5 dan memasukkannya ke ./ckpts/sd15 . Model yang digunakan dalam pekerjaan kami:
v1-5-pruned.ckpt ): resmi / cerminpython app/gradio_ctrlora.pyMembutuhkan setidaknya 9GB/21GB GPU RAM untuk menghasilkan batch satu/empat gambar 512x512.



Berdasarkan ControlNet dasar kami, Anda dapat melatih LORA untuk kondisi khusus Anda dengan sedikitnya 1.000 gambar dan kurang dari 1 jam pada GPU tunggal (20GB).
Pertama, unduh difusi stabil v1.5 ( v1-5-pruned.ckpt ) ke ./ckpts/sd15 dan basis controlnet ( ctrlora_sd15_basecn700k.ckpt ) ke ./ckpts/ctrlora-basecn seperti dijelaskan di atas.
Kedua, masukkan data khusus Anda ke ./data/<custom_data_name> dengan struktur berikut:
data
└── custom_data_name
├── prompt.json
├── source
│ ├── 0000.jpg
│ ├── 0001.jpg
│ └── ...
└── target
├── 0000.jpg
├── 0001.jpg
└── ...
source berisi gambar kondisi, seperti tepi cerdik, peta segmentasi, gambar kedalaman, dll.target berisi gambar kebenaran tanah yang sesuai dengan gambar kondisi.prompt.json harus mengikuti format seperti {"source": "source/0000.jpg", "target": "target/0000.jpg", "prompt": "The quick brown fox jumps over the lazy dog."} .Ketiga, jalankan perintah berikut untuk melatih Lora untuk kondisi khusus Anda:
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 : Path to the Custom Data.--name : Nama percobaan. Direktori logging adalah ./runs/name . Default: Waktu saat ini.--max_steps : Jumlah langkah-langkah pelatihan maksimum. Default: 100000 .Setelah pelatihan, ekstrak bobot Lora dengan perintah berikut:
python scripts/tool_extract_weights.py -t lora --ckpt CHECKPOINT --save_path SAVE_PATH--ckpt : Path to checkpoint yang dihasilkan oleh pelatihan di atas.--save_path : jalur untuk menyimpan bobot lora yang diekstraksi. Akhirnya, masukkan lora yang diekstraksi ke dalam ./ckpts/ctrlora-loras dan gunakan dalam demo gradio.
Silakan merujuk pada instruksi di sini untuk detail lebih lanjut tentang pelatihan, penyempurnaan, dan evaluasi.
Proyek ini dibangun di atas difusi yang stabil, CONTROLNET, dan unicontrol. Terima kasih atas pekerjaan hebat mereka!
Jika Anda menemukan proyek ini bermanfaat, silakan pertimbangkan mengutip:
@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 }
}