

图像被压缩以进行加载速度。
Ctrlora:可控制图像生成的可扩展有效框架
Yifeng Xu 1,2 ,Zhenliang He 1 ,Shiguang Shan 1,2 ,Xilin Chen 1,2
1个AI安全的关键实验室,计算技术研究所,CAS,中国
2中国科学院,中国

我们首先在具有大规模数据集的基本条件下训练基本控制网以及条件特定的洛拉斯。然后,我们的基本控制网络可以有效地适应新的洛拉斯的新条件单个GPU上只有1,000张图像,不到1小时。
![]() |
|---|
![]() |
|---|
![]() |
|---|
![]() |
|---|
克隆这个仓库:
git clone --depth 1 https://github.com/xyfJASON/ctrlora.git
cd ctrlora创建并激活新的Conda环境:
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我们在这里提供验证的模型。请将基本控制网( ctrlora_sd15_basecn700k.ckpt )放入./ckpts/ctrlora-basecn和loras和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至少需要9GB/21GB GPU RAM来生成一批/四个512x512图像。



根据我们的基本控制网络,您可以在单个GPU(20GB)上训练Lora的自定义状况,少于1,000张图像,少于1小时。
首先,将稳定的扩散v1.5( v1-5-pruned.ckpt )下载到./ckpts/sd15中,然后将基本控制网( 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包含条件图像,例如浓缩边缘,分割图,深度图像等。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放入./ckpts/ctrlora-loras中,并将其用于Gradio演示中。
请参阅此处的说明,以获取更多培训,微调和评估的详细信息。
该项目建立在稳定的扩散,控制网和Unicontrol之上。感谢他们的出色工作!
如果您发现此项目有帮助,请考虑引用:
@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 }
}