<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>潘锦的空间 &#187; SD</title>
	<atom:link href="https://www.phppan.com/tag/sd/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.phppan.com</link>
	<description>SaaS SaaS架构 团队管理 技术管理 技术架构 PHP 内核 扩展 项目管理</description>
	<lastBuildDate>Sat, 04 Apr 2026 01:19:58 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>一文了解文生图中 ControlNet 的实现原理和生态发展</title>
		<link>https://www.phppan.com/2024/07/the-implementation-principle-and-ecological-development-of-controlnet-aigc/</link>
		<comments>https://www.phppan.com/2024/07/the-implementation-principle-and-ecological-development-of-controlnet-aigc/#comments</comments>
		<pubDate>Sun, 07 Jul 2024 09:06:05 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[架构和远方]]></category>
		<category><![CDATA[AIGC]]></category>
		<category><![CDATA[ControlNet]]></category>
		<category><![CDATA[SD]]></category>
		<category><![CDATA[SDXL]]></category>
		<category><![CDATA[Stable Diffusion]]></category>
		<category><![CDATA[文生图]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=2253</guid>
		<description><![CDATA[在聊 ControlNet 的之前，先了解一下 ControlNet 的基础模型 Stable Diffusi [&#8230;]]]></description>
				<content:encoded><![CDATA[<section id="nice" data-tool="mdnice编辑器" data-website="https://www.mdnice.com">
<p data-tool="mdnice编辑器">在聊 ControlNet 的之前，先了解一下 ControlNet 的基础模型 Stable Diffusion 的生成过程。</p>
<p data-tool="mdnice编辑器">Stable Diffusion (SD) 是一种基于扩散模型的文本到图像生成技术，它可以根据输入的文字描述，生成与之语义相符的高质量图片。整个 SD 模型的架构包含了多个关键组件，它们分工协作、相互配合，共同完成了这一令人惊叹的创意生成任务。</p>
<h1 data-tool="mdnice编辑器"><span class="content">Stable Diffusion 的实现原理</span></h1>
<p data-tool="mdnice编辑器">SD 的核心思路源自扩散模型。扩散模型是一类生成式模型，它的基本原理是：<strong>先将原始数据加入大量随机噪声，然后学习如何一步步去除噪声、恢复数据。</strong> SD 正是利用了这一思路来生成图像。它先将原始图片加入高斯噪声，得到一张几乎全是噪点的图。然后，使用一个名为 UNet 的神经网络，通过多轮迭代去噪，最终生成干净、清晰的图像。</p>
<p data-tool="mdnice编辑器">在训练阶段，SD 模型接受三个输入：<strong>原始图片、加噪后的图片、以及对原始图片的文本描述</strong>。其中，UNet 学习建立起加噪图片和原始图片之间的映射关系。通过最小化预测噪声与真实噪声的差异，UNet 掌握了去噪的能力。同时，由于训练数据中包含了图像-文本对，UNet 也学会了如何根据文本线索对图像去噪，这是后续根据文字生图的基础。</p>
<p data-tool="mdnice编辑器">但是，直接对原始图片进行去噪训练会带来巨大的计算开销。为了提高效率，SD 先使用<strong>变分自编码器(VAE)将高维图像压缩到低维隐空间</strong>，然后在隐空间中进行去噪操作。VAE 不仅大幅降低了数据维度，它学习到的隐空间还具有良好的语义结构，使得相似图像在隐空间中更紧邻、更易融合。</p>
<p data-tool="mdnice编辑器">为了让输入的文本 Prompt 有效地指引图像生成，SD 使用 <strong>CLIP 模型对文本进行编码</strong>。CLIP 模型擅长捕捉图像和文本的对齐关系，它生成的文本特征向量与图像视觉特征的分布更加一致。在生成阶段，文本编码和初始噪声图像一起输入 UNet，共同决定去噪的方向和结果，使得最终图像在语义上与文本描述相匹配。</p>
<p data-tool="mdnice编辑器">但是，扩散模型通常需要上千步去噪迭代才能生成好的图像，这非常耗时。为了加速生成过程，SD <strong>借鉴了 DDIM 等快速采样方法</strong>。它们通过跳过一些中间去噪步骤，在保证质量的同时大幅提升了生成速度。</p>
<p data-tool="mdnice编辑器">SD 模型的生成流程可以概括为：<strong>输入的文本描述先被 CLIP 编码为语义向量，同时在隐空间中随机生成一张噪声图像。二者一同输入 UNet 进行多步去噪，并使用 DDIM 等采样加速。最终，去噪得到的隐空间图像通过 VAE 解码，还原为高清的 RGB 图片输出。</strong></p>
<p data-tool="mdnice编辑器">SD 的一大亮点是其开源、模块化的设计。得益于此，各个组件都可以灵活地替换升级，社区还发明了ControlNet、LoRA 等参数高效微调技术，使得 SD 模型可以快速适应各种新的应用场景。这极大地激发了开发者和艺术家们的创造力，SD 已成为当前 AIGC 领域的一大热点。</p>
<p data-tool="mdnice编辑器">虽然 SD 已经很优秀了，超出了人们的想象，但是 SD 模型本身有一些问题需要解决，如<strong>无条件的生成，生成过程难以控制，无法根据用户的特定意图或要求来生成或编辑图像</strong>等。</p>
<p data-tool="mdnice编辑器">这导致SD模型在实际应用中面临一些局限性，如缺乏可控性、灵活性不足、难以进行精细的图像编辑等。</p>
<p data-tool="mdnice编辑器">2023 年年初 ControlNet 横空出世，通过引入额外的控制信号和可学习的控制器网络，解决了 SD 模型在可控图像生成方面的这些问题，使其能够根据用户提供的边缘、关键点、分割掩码等条件，生成满足特定约束的高质量图像，大大扩展了 SD 模型的应用场景和实用性。</p>
<h1 data-tool="mdnice编辑器"><span class="content">ControlNet 的原理</span></h1>
<p data-tool="mdnice编辑器">ControlNet 是一种用于可控图像生成的扩散模型。它通过接受额外的控制信号(如边缘、关键点、分割掩码等)来指导图像生成过程，使生成的图像符合给定的控制约束。</p>
<p data-tool="mdnice编辑器">ControlNet 解决的主要问题是如何在图像生成过程中引入更多的控制和约束，使生成的图像符合用户的特定要求。具体来说，ControlNet 解决了以下几个问题：</p>
<ol data-tool="mdnice编辑器">
<li>
<section><strong>可控性问题</strong>：传统的扩散模型通常是无条件的，生成的图像无法根据用户的意图进行控制。ControlNet通过引入额外的控制信号，如边缘、关键点、分割掩码等，使得生成的图像能够满足特定的约束条件，提高了图像生成的可控性。</section>
</li>
<li>
<section><strong>灵活性问题</strong>：以往的图像生成方法通常针对特定的任务或控制类型设计，泛化能力有限。ControlNet 提出了一种通用的控制器网络设计，可以适应不同类型的控制信号，无需为每种控制任务重新训练整个模型，大大提高了模型的灵活性和适用性。</section>
</li>
<li>
<section><strong>图像编辑问题</strong>：传统的图像编辑方法通常需要复杂的人工操作或专门设计的算法。ControlNet 允许用户通过提供简单的控制信号(如涂鸦、关键点等)来指导图像的编辑过程，使得图像编辑更加直观和便捷。</section>
</li>
<li>
<section><strong>多模态融合问题</strong>：在许多应用场景中，需要将不同模态的信息(如文本、语音、图像等)融合生成图像。ControlNet提 供了一种将不同模态信息编码为控制信号的方法，使得扩散模型能够根据多模态输入生成相应的图像。</section>
</li>
<li>
<section><strong>数据效率问题</strong>：训练高质量的图像生成模型通常需要大量的数据和计算资源。ControlNet 通过固定预训练的扩散模型，只训练控制器网络，大大减少了训练所需的数据和计算量，提高了数据利用效率。</section>
</li>
</ol>
<p data-tool="mdnice编辑器">ControlNet 的核心思路是<strong>通过引入额外的控制信号，在扩散模型的生成过程中引导图像的合成使其符合预定的约束条件</strong>。其主要思路简单来说如下:</p>
<ol data-tool="mdnice编辑器">
<li>
<section>利用预训练的扩散模型作为图像生成的基础，保持其参数不变。</section>
</li>
<li>
<section>设计一个控制器网络，将其插入到扩散模型的每个去噪步骤中，使得扩散模型的每一步与对应的控制信号相结合，这个控制网络是 ControlNet 的核心。</section>
</li>
<li>
<section>控制器网络接受图像的潜在表示和对应步骤的控制信号表示，学习如何将它们融合以调制扩散过程。</section>
</li>
<li>
<section>通过控制器网络的调制，使扩散模型的去噪过程朝着满足控制约束的方向进行，最终生成符合要求的图像。ControlNet 支持多种类型的控制信号，如边缘、关键点、分割掩码、深度图等。针对不同类型的控制，控制器网络的结构可能有所不同，但基本原理类似。</section>
</li>
</ol>
<p data-tool="mdnice编辑器">ControlNet 通过引入可学习的控制器网络，有效解决了扩散模型在可控图像生成领域面临的局限性。</p>
<p data-tool="mdnice编辑器">它支持多种类型的控制信号，如边缘、关键点、分割掩码等，使得用户能够根据特定意图对生成图像进行精细控制。ControlNet 生成的图像在满足控制约束的同时，保持了高质量和逼真性。</p>
<p data-tool="mdnice编辑器">此外，ControlNet采用了固定预训练扩散模型、仅训练控制器网络的策略，大大提高了数据和计算效率。ControlNet 为图像生成和编辑任务带来了新的可能性，在创意设计、虚拟内容生成等领域展现出广泛的应用前景。</p>
<p data-tool="mdnice编辑器">ControlNet 的性能在一定程度上依赖于控制信号的质量，噪声或不完整的控制信号可能导致生成图像的缺陷。</p>
<p data-tool="mdnice编辑器">目前，ControlNet 主要针对低级视觉控制进行设计，对高层语义控制的支持有限。此外，ControlNet在生成高分辨率、细节丰富图像时，可能面临计算开销大、推理速度慢的挑战，在实时交互场景中的应用受到一定限制。</p>
<p data-tool="mdnice编辑器">未来，提高 ControlNet 在语义理解、鲁棒性和计算效率方面的表现，将是其进一步发展的重点方向。同时，探索 ControlNet 与其他生成模型、编辑工具的结合，有望进一步拓展其应用范围和功能。</p>
<h1 data-tool="mdnice编辑器"><span class="content">ControlNet 的生态</span></h1>
<p data-tool="mdnice编辑器">从 SD 模型版本支持来看，ControlNet 可以分为 SD1.5 和 SDXL 两个常用版本。其中 SD1.5 在生态方面更完善一些，SDXL 发展过程中，大家不约而同选择了闭源自己玩多一些。</p>
<p data-tool="mdnice编辑器">从发行机构来看，分为官方模型和第三方模型。</p>
<p data-tool="mdnice编辑器">官方模型多分支 SD1.5 和 SD2.0 模型，<strong>没有 SDXL 的模型</strong>，SDXL 的模型多来源于社区，大概的生态情况如下：</p>
<p data-tool="mdnice编辑器"><strong>ControlNet 1.1 包括 14 个模型（10 个生产就绪模型、2 个实验模型、2 个融合版本）：</strong></p>
<p data-tool="mdnice编辑器"><strong>10 个生产模型：</strong></p>
<ul data-tool="mdnice编辑器">
<li>
<section>control_v11p_sd15_canny.pth <strong>Canny边缘检测模型</strong>：使用 Canny 算法提取图像主体轮廓的边缘线条，再进行填色。1.1 版本相对于之前的版本，消除训练数据缺陷，并通过大规模训练提升了模型性能和输出质量。</section>
</li>
<li>
<section>control_v11p_sd15_inpaint.pth <strong>Inpaint 修补模型</strong>：对图像局部重绘修饰,保留其他部分。用于小范围创意设计。</section>
</li>
<li>
<section>control_v11p_sd15_lineart.pth <strong>Lineart 线性检测模型</strong>：提取精细丰富的线稿，适用于产品设计等。</section>
</li>
<li>
<section>control_v11p_sd15_mlsd.pth <strong>MLSD 模型</strong>：善于提取直线线段，如建筑线条结构，适合建筑/室内设计风格。1.1 版本相对于之前的版本，扩充训练集并增加训练量，使直线检测能力得到进一步提高。</section>
</li>
<li>
<section>control_v11p_sd15_normalbae.pth <strong>Normal 法线贴图模型</strong>：检测像素的 RGB 值和表面法线方向，分离主体和背景，用于整体色彩调整。1.1 版本相对于之前的版本，采用更准确的法线贴图估计方法，增强了模型的鲁棒性和实用性。</section>
</li>
<li>
<section>control_v11p_sd15_openpose.pth <strong>Openpose 人体姿态检测模型</strong>：识别人体关键点和运动轨迹，用于调整人物姿态、表情等。1.1 版本相对于之前的版本，对 Openpose 实现细节进行改进，提高了人体姿态估计，尤其是手部的准确度。</section>
</li>
<li>
<section>control_v11p_sd15_scribble.pth <strong>Scribble 涂鸦模型</strong>：可以基于用户手绘的线条、涂鸦等输入生成相关图像。1.1 版本相对于之前的版本，适应更粗的涂鸦输入，同时通过修正数据和延长训练改善效果。</section>
</li>
<li>
<section>control_v11p_sd15_seg.pth <strong>Segmentation 语义分割网络</strong>：将图像分割为约 150 种颜色代表的物体，可单独处理天空、建筑、树木等要素。1.1 版本相对于之前的版本，扩展了对COCO数据集的支持,向下兼容旧版输入。</section>
</li>
<li>
<section>control_v11p_sd15_softedge.pth <strong>Softedge 软线性检测模型</strong>：一种边缘检测模型，生成更柔和自然的线条。1.1 版本相对于之前的版本，新的预处理方法和针对性数据筛选，使模型的边缘处理能力大幅提升，实用性与depth相当。</section>
</li>
<li>
<section>control_v11p_sd15s2_lineart_anime.pth <strong>Anime Lineart动漫线稿检测模型</strong>：Lineart的升级版，专门用于动漫线稿上色，效果更自然流畅。</section>
</li>
</ul>
<p data-tool="mdnice编辑器"><strong>2 个实验版本：</strong></p>
<ul data-tool="mdnice编辑器">
<li>
<section>control_v11e_sd15_ip2p.pth <strong>IP2P 直接编辑模型</strong>：根据文本描述直接编辑图像，如&#8221;让房子着火&#8221;。需要用户有创意和想象力。</section>
</li>
<li>
<section>control_v11e_sd15_shuffle.pth <strong>Shuffle 随机处理模型</strong>：随机组合图像要素,生成风格化图像。可用于风格迁移。</section>
</li>
</ul>
<p data-tool="mdnice编辑器"><strong>2 个融合版本</strong>：</p>
<ul data-tool="mdnice编辑器">
<li>
<section>control_v11f1e_sd15_tile.pth <strong>Tile 模型</strong>：将图像分割成小块处理,用于放大图像细节或图像修复。</section>
</li>
<li>
<section>control_v11f1p_sd15_depth.pth <strong>Depth 深度图模型</strong>：分析图像中物体的空间位置关系，常用于人物换背景，调整手臂位置等创意设计。1.1 版本相对于之前的版本，通过修复训练数据和采用无偏方法，使模型在更多场景下表现出色。</section>
</li>
</ul>
<p data-tool="mdnice编辑器">官方的文件名看起来是有规律的，其规则如下：</p>
<ol data-tool="mdnice编辑器">
<li>
<section>版本号(v11)：表示 ControlNet 的版本号，如 v11 代表 1.1 版本，v10 代表 1.0 版本。版本号升级通常意味着模型性能和功能的优化和扩展。</section>
</li>
<li>
<section>模型状态(p):表示模型所处的状态，其中:</p>
<ul>
<li>
<section>p表示正式版(production)，该模型已经比较稳定，适合新手使用。</section>
</li>
<li>
<section>e表示实验版本(experimental)，该模型仍在实验阶段，结果可能不太稳定，更适合研究者探索。</section>
</li>
<li>
<section>u表示未完成版本(unfinished)，表示模型尚未完成。</section>
</li>
</ul>
</section>
</li>
<li>
<section>Stable Diffusion版本(sd15):表示该ControlNet模型所基于的Stable Diffusion版本，如sd15代表Stable Diffusion 1.5，sd21 代表Stable Diffusion 2.1。不同版本的Stable Diffusion在模型结构和训练数据上可能有所差异，因此 ControlNet 模型需要指定兼容的 SD 版本。</section>
</li>
<li>
<section>模型类型(canny)：表示该 ControlNet 模型的主要功能和用途,如 canny 代表 Canny边缘检测，openpose 代表人体姿态估计，hed 代表 Holistically-Nested Edge Detection 用于提取软边缘，scribble 代表涂鸦等。不同类型的 ControlNet 模型在控制方式和生成效果上各有特点。</section>
</li>
</ol>
<p data-tool="mdnice编辑器">举个例子：control_v11p_sd15_canny 这个模型名称表示：这是一个 ControlNet 1.1 版本的模型，已经发布为正式版，基于 Stable Diffusion 1.5 训练，主要用于 Canny 边缘检测任务。</p>
<p data-tool="mdnice编辑器">模型下载地址：https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main</p>
<p data-tool="mdnice编辑器">第三方模型相对无序一些，并且以在 SDXL 表现较多，大概有如下的一些：</p>
<ul data-tool="mdnice编辑器">
<li>
<section>Lvmin 的模型集合：包括diffusers ControlNet、Controllllite、Stability AI Control LoRA、T2I Adapter等。</section>
</li>
<li>
<section>Qinglong的Controllllite SDXL模型：包括Normal Dsine、Tile realistic、Tile anime、MLSD、DW pose、Normal、Recolor Luminance、Softedge、Segment animeface等。</section>
</li>
<li>
<section>TTPLanet Tile Realistic：由社区为SDXL训练的逼真瓷砖模型。</section>
</li>
<li>
<section>2vXpSwA7 cnllliteL：grey2color和anystyle模型。</section>
</li>
<li>
<section>MistoLine:SDXL softedge模型。</section>
</li>
<li>
<section>Kataragi的SDXL模型：包括 Inpaint、Recolor、Lineart、Line2Color 等，提供半精度模型和rank128 LoRA。</section>
</li>
<li>
<section>Xinsir的SDXL模型：包括Canny、Openpose、Scribble、Scribble-Anime等。</section>
</li>
</ul>
<h1 data-tool="mdnice编辑器"><span class="content">一些应用场景</span></h1>
<p data-tool="mdnice编辑器">ControlNet 目前在多个领域展现出了广阔的应用前景，主要有以下几个方面:</p>
<ol data-tool="mdnice编辑器">
<li>
<section><strong>设计辅助</strong>：通过输入简单的线稿、轮廓或布局，ControlNet 可以帮助平面设计、工业设计、服装设计等领域快速生成多样的设计方案，提高设计效率和创意。</section>
</li>
<li>
<section><strong>影视动漫创作</strong>：ControlNet 能够根据故事板或概念草图等粗略输入，生成细致的场景、人物、道具等素材，辅助影视、动画、游戏等视觉创意行业的前期创作。甚至是后期的合成及剪辑。</section>
</li>
<li>
<section><strong>虚拟试衣/试妆</strong>：基于 ControlNet 的姿态估计和人像生成能力，可实现虚拟试衣、试妆等功能，应用于电商、社交、美妆等领域，提供沉浸式的交互体验。</section>
</li>
<li>
<section><strong>建筑与室内设计</strong>：通过点线面等简单输入，ControlNet 可以辅助建筑外观、室内布局、家居陈设等设计任务，提供多种风格选择，用于方案展示和评估。</section>
</li>
<li>
<section><strong>医疗影像分析</strong>：ControlNet 能够根据医学影像的轮廓或标注，生成更清晰、更符合诊断需求的医学图像，辅助医生进行疾病诊断和手术规划等。</section>
</li>
<li>
<section><strong>教育与培训</strong>：基于ControlNet生成各种教学演示素材，如解剖图、示意图等，提高学习效率。在VR/AR场景中自动生成训练环境。</section>
</li>
<li>
<section><strong>文旅与数字展览</strong>：通过简单的场景布局输入，ControlNet可快速生成丰富多样的游览场景、数字藏品，应用于文旅推广、虚拟展览等。</section>
</li>
<li>
<section><strong>智能图像编辑</strong>：ControlNet可以实现图像修复、抠图、换背景、图像风格转换等常见图像编辑功能，提供更智能、更简便的图像处理工具。</section>
</li>
</ol>
<h1 data-tool="mdnice编辑器"><span class="content">小结</span></h1>
<p data-tool="mdnice编辑器">在 ControlNet 没有出来之前，很多时候能不能出来一个好看的画面，只能通过大量的 Prompt 测试实现，以数量去对冲概率。</p>
<p data-tool="mdnice编辑器">在当下，如果能用好控制出图的三个最关键因素：提示词、Lora、ControlNet，能让「出图与我们想象的画面一致」概率更高。</p>
<p data-tool="mdnice编辑器">通过前面的几个小节，我们可以看到:</p>
<ol data-tool="mdnice编辑器">
<li>
<section>ControlNet 通过使用额外的条件控制输入，如语义分割图、边缘检测图等，让文本到图像生成更加可控。这大大提升了生成图像与用户期望相符的概率。</section>
</li>
<li>
<section>ControlNet 的一大优势在于它的通用性和灵活性。通过使用不同类型的控制条件，可以引导模型生成各种不同风格和内容的图像。而且这些控制条件可以通过现有的 CV 模型自动获取，方便集成。</section>
</li>
<li>
<section>围绕 ControlNet 已经形成了活跃的生态。各种开源实现和 web 应用让普通用户也能轻松使用，专业的 GUI 让艺术创作者可以更高效地把控细节。社区也在不断贡献新的模型权重，扩展 ControlNet 的应用边界。</section>
</li>
<li>
<section>但 ControlNet 并非万能，提示词的设计、LoRA 模型的选择仍然是影响效果的关键因素。掌握并灵活组合这三者，才能最大限度提升「如我所愿」出图的成功率。</section>
</li>
<li>
<section>展望未来，ControlNet 为可控文生图开辟了新的方向，但仍有很多挑战亟待解决，如更精细的空间控制、更强的全局一致性等。相信随着研究的深入，ControlNet 会带来更多惊喜。</section>
</li>
</ol>
<p data-tool="mdnice编辑器">以上</p>
</section>
]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2024/07/the-implementation-principle-and-ecological-development-of-controlnet-aigc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
