
仓库:https://github.com/lllyasviel/ControlNet 论文:https://arxiv.org/abs/2302.05543 权重:https://huggingface.co/lllyasviel/ControlNet 运行形态:conda 环境 + Gradio 脚本
1. 项目简介
ControlNet 是论文《Adding Conditional Control to Text-to-Image Diffusion Models》的官方实现:一种给扩散模型加额外条件的神经网络结构。它把神经网络块权重复制成"锁定"副本与"可训练"副本——可训练副本学条件,锁定副本保留原模型,配合 zero convolution,使小数据集图像对训练也不会破坏生产级扩散模型。
1.1 核心信息一览
| 项目 | 内容 |
|---|---|
| 仓库 | lllyasviel/ControlNet |
| 定位 | 给文生图扩散模型加条件控制 |
| 环境 | conda(environment.yaml) |
| 权重 | HF lllyasviel/ControlNet |
| 入口 | gradio_canny2image.py 等 Gradio 脚本 |
| 1.1 nightly | https://github.com/lllyasviel/ControlNet-v1-1-nightly |
1.2 适用场景
- 想给 Stable Diffusion 加边缘 / 深度 / 姿态 / 涂鸦等条件控制;
- 想在小数据集上微调而不破坏原模型;
- 研究可控生成结构。
1.3 能力边界(官方口径)
- 主仓库为 ControlNet 1.0;1.1 在 nightly 仓库,稳定后再合并;
- 需自备 SD 模型与各检测器权重;
- 更常见的实际使用是通过 ComfyUI / WebUI 等集成,而非本仓库脚本。
2. 功能特性
- 锁定 + 可训练双副本:小数据训练不破坏原模型;
- Zero Convolution:1×1 卷积权重偏置初始化为 0,训练前不引入畸变;
- 复用 SD encoder backbone:计算高效,显存增幅不大;
- 多种条件:canny、hough、hed、scribble、pose、seg、depth、normal 等 Gradio 入口。
3. 官方界面预览

上图为官方 README 的结构示意(README 官方素材)。
4. 官方跳转链接汇总
- 仓库主页:https://github.com/lllyasviel/ControlNet
- 论文:https://arxiv.org/abs/2302.05543
- 权重:https://huggingface.co/lllyasviel/ControlNet
- 1.1 nightly:https://github.com/lllyasviel/ControlNet-v1-1-nightly
- FAQ:https://github.com/lllyasviel/ControlNet/blob/main/docs/faq.md
- 检测器说明:https://github.com/lllyasviel/ControlNet/blob/main/docs/annotator.md
5. 前置要求与服务器配置
- conda 环境;
- GPU 与 SD 模型权重;
- 从 HF 下载 SD 模型到
ControlNet/models、检测器到ControlNet/annotator/ckpts(含 HED、Midas depth、Openpose 等)。
6. 方式一:conda 环境 + Gradio 脚本(官方)
git clone https://github.com/lllyasviel/ControlNet.git
cd ControlNet
conda env create -f environment.yaml
conda activate control按 README 从 https://huggingface.co/lllyasviel/ControlNet
下载权重与检测器,放到 ControlNet/models 与
ControlNet/annotator/ckpts。
跑一个 Gradio 入口:
python gradio_canny2image.py7. 方式二:常用入口脚本
python gradio_hough2image.py
python gradio_hed2image.py
python gradio_scribble2image.py
python gradio_pose2image.py
python gradio_seg2image.py
python gradio_depth2image.py
python gradio_normal2image.py实际生产中更多通过 ComfyUI / WebUI 的 ControlNet 节点集成使用。
8. 配置项说明
| 配置 | 说明 |
|---|---|
ControlNet/models |
SD 模型权重目录 |
ControlNet/annotator/ckpts |
HED / Midas / Openpose 等检测器 |
| 各 gradio_*.py | 对应一种条件控制入口 |
| 1.1 nightly | 更新模型见 nightly 仓库 |
9. 常用运维命令
# 建环境
conda env create -f environment.yaml
conda activate control
# 启动条件入口
python gradio_canny2image.py
# 关闭
# Ctrl+C10. 常见故障排查
- 缺检测器权重:按 HF 页下载 HED / Midas / Openpose 等;
- 显存不足:本仓库结构对显存增幅较小,仍需够跑 SD;
- 想用最新模型:切到 ControlNet-v1-1-nightly 仓库;
- 实际集成:优先用 ComfyUI / WebUI 的 ControlNet 节点。
11. 风险与合规说明
- 许可证以仓库 LICENSE 为准;
- SD 模型与权重遵守各自许可;
- GPU 成本由使用者承担;
- 本文为社区部署笔记,命令以官方 README 最新版本为准。