CtrLoRA项目使用与启动教程

CtrLoRA项目使用与启动教程

ctrlora [ICLR 2025] Codebase for "CtrLoRA: An Extensible and Efficient Framework for Controllable Image Generation" ctrlora 项目地址: https://gitcode.com/gh_mirrors/ct/ctrlora

1. 项目介绍

CtrLoRA是一个开源的、可扩展且高效的框架,用于控制图像生成。它通过训练基础控制网(Base ControlNet)和特定条件下的LoRA(Low-Rank Adaptation)模型,能够在保持低参数量的同时,快速适应新条件下的图像生成任务。项目基于大规模数据集进行训练,能够在单个GPU上,使用最少1000张图像,不到1小时的时间内完成LoRA的训练。

2. 项目快速启动

环境准备

首先,需要克隆项目仓库:

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/
  • 将LoRA模型放入./ckpts/ctrlora-loras/

运行Gradio Demo

运行以下命令来启动Gradio Demo进行图像生成:

python app/gradio_ctrlora.py

确保你的GPU至少有9GB/21GB的内存来批量生成512x512的图像。

3. 应用案例和最佳实践

单条件生成

通过以下Python代码可以完成单条件生成:

from api import CtrLoRA
ctrlora = CtrLoRA(num_loras=1)
ctrlora.create_model(
    sd_file='ckpts/sd15/v1-5-pruned.ckpt',
    basecn_file='ckpts/ctrlora-basecn/ctrlora_sd15_basecn700k.ckpt',
    lora_files='ckpts/ctrlora-loras/novel-conditions/ctrlora_sd15_basecn700k_inpainting_brush_rank128_1kimgs_1ksteps.ckpt'
)
samples = ctrlora.sample(
    cond_image_paths='assets/test_images/inpaint_cat.png',
    prompt='A cat wearing a brown cowboy hat, best quality',
    n_prompt='worst quality',
    num_samples=1
)
samples[0].show()

多条件生成

对于多条件生成,可以使用以下代码:

from api import CtrLoRA
ctrlora = CtrLoRA(num_loras=2)
ctrlora.create_model(
    sd_file='ckpts/sd15/v1-5-pruned.ckpt',
    basecn_file='ckpts/ctrlora-basecn/ctrlora_sd15_basecn700k.ckpt',
    lora_files=(
        'ckpts/ctrlora-loras/novel-conditions/ctrlora_sd15_basecn700k_lineart_rank128_1kimgs_1ksteps.ckpt',
        'ckpts/ctrlora-loras/novel-conditions/ctrlora_sd15_basecn700k_palette_rank128_100kimgs_100ksteps.ckpt'
    )
)
samples = ctrlora.sample(
    cond_image_paths=('assets/test_images/lineart_bird.png', 'assets/test_images/palette_bird.png'),
    prompt='Photo of a parrot, best quality',
    n_prompt='worst quality',
    num_samples=1,
    lora_weights=(1.0, 1.0)
)
samples[0].show()

4. 典型生态项目

目前,CtrLoRA已经在多个生态项目中得到应用,例如:

  • CtrLoRA-Canny:结合Canny边缘检测的图像生成。
  • CtrLoRA-Style-Transfer:风格迁移应用。
  • CtrLoRA-AnimateDiff-Lineart:结合AnimateDiff的线稿生成。
  • CtrLoRA-AnimateDiff-Style-Transfer:结合AnimateDiff的风格迁移。

通过这些生态项目,用户可以探索更多基于CtrLoRA的图像生成可能性。

ctrlora [ICLR 2025] Codebase for "CtrLoRA: An Extensible and Efficient Framework for Controllable Image Generation" ctrlora 项目地址: https://gitcode.com/gh_mirrors/ct/ctrlora

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石乾银

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值