stable diffusion的controlNet中的模型
时间: 2025-05-07 16:07:48 浏览: 37
### Stable Diffusion ControlNet 模型列表及其作用
#### 控制网络概述
ControlNet 是一种用于增强 Stable Diffusion 图像生成能力的神经网络模型。它允许用户引入额外的条件信号(如边缘检测、姿态估计等),从而更精确地控制生成图像的内容和风格[^3]。
#### 常见的 ControlNet 模型及功能描述
以下是常见的 ControlNet 模型以及它们各自的作用:
1. **Canny 边缘检测**
- Canny Edge Detection Model 使用经典的 Canny 算法提取输入图像的边缘信息作为条件信号。
- 这种模型适用于生成具有清晰轮廓线的艺术作品或插画,能够显著提高线条结构的一致性和准确性[^4]。
2. **Depth Map (深度图)**
- Depth Estimation Model 提供场景中物体距离相机远近的信息。
- 利用该模型可以创建带有强烈透视感的画面,特别适合建筑渲染或风景创作任务。
3. **Normal Map (法向量贴图)**
- Normal Mapping Model 计算表面方向数据以模拟复杂材质外观。
- 此类模型有助于实现逼真的纹理细节表现,比如金属光泽或者布料褶皱效果。
4. **Pose Estimation (人体姿态估计)**
- Human Pose Detection Model 识别并标注人物肢体关节位置关系。
- 当遇到缺少 `mmpose` 库错误时,可能是因为此部分依赖于外部工具包来进行骨骼点预测操作[^1]^。
如果希望正常运行含有人体动作捕捉需求的应用程序,则需安装相应支持库文件。
5. **Segmentation Mask (分割掩码)**
- Semantic Segmentation Model 将图片划分为不同语义区域类别标签形式表示出来。
- 用户可以根据这些分类结果指定特定区域内填充颜色或者其他视觉属性变化规则,进而指导AI按照预设意图调整最终产物样式特征.
6. **Line Art / Scribble Sketches (素描草稿)**
- Line Drawing Recognition Model 解析手绘线条图案含义,并将其转化为计算机可理解的形式参与后续计算流程当中去.
7. **Openpose Body Keypoints Extraction(开放姿势身体关键点抽取)**
- OpenPose Framework Based Module 自动定位视频流帧序列里的人物形象轮廓坐标集合, 并形成骨架连接线路展示给算法参考利用.
8. **MLSD Mid-Level Structure Description Network(Mid-level 结构描述网络)**
- MLSD Algorithm Focuses On Detecting Middle Level Features Such As Corners And Intersections Within An Image Scene Which Can Be Utilized To Guide The Generation Process More Accurately Towards Desired Outcomes.[^4]
9. **Recolorization With Color Palette Matching(Color 配色方案匹配重着色处理)**
- Recolored Version Of Original Inputs By Comparing Against Predefined Swatches Or Custom Defined Ones Provided By Users Themselves For Consistent Stylistic Choices Across Multiple Outputs Generated Sequentially Over Time Periods.
```python
from diffusers import StableDiffusionControlNetPipeline, ControlNetModel
import torch
controlnet_canny = ControlNetModel.from_pretrained("lllyasviel/sd-controlnet-canny", torch_dtype=torch.float16)
pipe_canny = StableDiffusionControlNetPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
controlnet=controlnet_canny,
safety_checker=None,
torch_dtype=torch.float16
)
image = pipe_canny(prompt="a cute cat sitting on a chair", image=input_image).images[0]
```
以上代码片段演示了如何加载基于 Canny 边缘检测技术构建而成的一个具体实例化对象,并调用了对应的方法完成一次简单的图文转换请求作业。
---
阅读全文
相关推荐


















