想象你是一位大厨,今天要挑战一道“风味复合”的招牌菜。光靠盐,你只能做出咸味;想要酸甜麻辣层层递进,你得同时排开好几只调料罐——盐罐定咸淡、醋瓶给酸香、花椒提麻劲。AI绘画里的 ControlNet 多条件组合,正是同样的道理:单个 ControlNet 控制器只约束画面的一个维度(边缘、深度或姿态),而把多个控制器叠在一起,AI 才能在构图、空间、动作上同时“听懂”你的要求。 本文会带你从“只会撒盐”进阶到“调和百味”:先用厨房备料解释怎么同时挂载多个 ControlNet,再分别讲 Canny+OpenPose、Canny+Depth 两组经典搭配,接着手把手教你调权重、选控制模式和避让信号冲突,最后附上真实项目中的组合方案。

岗位关联

学会多条件组合,等于把画面控制力从“指个方向”提升到“精确布景”,这是 AI 绘画从业者从 60 分走到 95 分的必由之路。

目录
  1. 可视化演示
  2. 组合配置基础
  3. Canny骨架组合
  4. Depth深度组合
  5. 权重与平衡
  6. 控制模式选择
  7. 多单元协同
  8. 实战调参技巧
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

通过组合流程图、权重调节面板和方案对比三个维度,动态展示多ControlNet条件叠加控制原理,直观理解Canny+Depth、OpenPose+Canny等组合方案的精细构图能力。

本节配有交互动效(进入视口后自动加载,约 3KB)。

多条件组合流程 多条件并行输入到ControlNet 加权融合后注入扩散模型 y=Σ(wi×ControlNeti(x))

组合配置基础

想象你是一位大厨,今天要做一道风味复合的招牌菜。动火之前,你必然先把调料罐备齐——盐罐、胡椒瓶、高汤壶整齐排在灶台上,哪一味缺了、哪一罐空了,都得提前看清。ControlNet 多条件组合也一样:不是随手敲几行代码就能开火,而是要先“排兵布阵”——决定用哪几个控制器、以什么顺序加载、会挤占多少显存。

在 AI 绘画的世界里,一个 ControlNet 单元就是一只“调料罐”。想让画面同时受到多重约束,就得同时打开好几只罐子。最常见的三位主角是:负责线条的 Canny、负责空间的 Depth、负责姿态的 OpenPose。它们各管一维,互不替代。

实际操作中,Stable Diffusion WebUI 的 ControlNet 扩展允许你勾选多个单元,每个单元独立选择预处理器和模型;而在代码管线 Diffusers 里,你需要把多个 ControlNetModel 实例打包成一个列表,传给 Pipeline 的 controlnet 参数。要特别注意的是,多开单元意味着显存开销成倍增加、采样速度变慢——所以组合的原则是“够用就好”,而不是“越多越好”。

摆好调料罐本身不产生味道,但后面所有火候都要依赖这排罐子。一个清晰、克制的组合方案,是整道菜成功的地基。

S总=∑i=1nwi⋅Ci\displaystyle S_{\text{总}} = \sum_{i=1}^{n} w_i \cdot C_i
总控制信号等于各路控制信号的加权和——你放了几味料,每味放多重,最终都会汇成一股“调味汁”。
  1. 总控制信号$S_{\text{总}}$表示把所有控制条件合并后得到的最终信号,它会在每一步去噪中持续影响生成方向。
    S总S_{\text{总}}
  2. 第 i 路控制器输出$C_i$是第 i 个 ControlNet 从参考图中提取到的条件信号,比如 Canny 的边缘图、Depth 的深度图。
    CiC_i
  3. 第 i 路权重$w_i$决定这一路信号在总控制中的话语权,数值越大,这味“调料”越浓。
    wiw_i
  4. 加权累加$\sum$把从第 1 路到第 n 路的所有信号各自乘上权重再求和,得到最终的控制合力。
    ∑i=1nwi⋅Ci\sum_{i=1}^{n} w_i \cdot C_i

Canny骨架组合

一罐是盐、一罐是花椒——盐负责打底味,花椒负责提辛香。在 ControlNet 的组合拳里,Canny 和 OpenPose 就是这样一对“结构双雄”:一个管“线”,一个管“人”。

Canny ControlNet 会从参考图中提取高对比度的边缘线,相当于一支素描铅笔,把物体的轮廓牢牢钉在画布上。而 OpenPose ControlNet 则提取人体的关键点与骨骼连线,像活动木偶的关节轴,规定了人的站、坐、跳、卧。前者锁住场景的骨架,后者锁住人物的骨架。

当两者叠加,效果非常直观:人物的动作被骨骼点固定,衣褶、道具和场景轮廓被边缘线固定。那些“既要角色摆出指定姿势、又要裙摆飘动方向与原图一致”的复杂需求,正是这对组合的拿手好戏。由于它们都属于结构类约束,整体呈现“结构优先”的强烈控制感,适合用来固定构图。

盐和花椒彼此不抢戏——边缘管外轮廓,骨架管内结构,各管一摊又合拢成一道完整菜品。这就是 Canny + OpenPose 的搭配哲学。

z=zbase+α⋅Eedge+β⋅Ppose\displaystyle z = z_{\text{base}} + \alpha \cdot E_{\text{edge}} + \beta \cdot P_{\text{pose}}
生成画面的内部状态 = 基础状态 + 边缘信号 + 姿态信号,两条控制流像盐与花椒一样先后融入“汤底”。
  1. 基础状态$z_{\text{base}}$是采样开始时或上一轮去噪留下的潜变量,相当于还没调味的高汤基底。
    zbasez_{\text{base}}
  2. 边缘条件信号$E_{\text{edge}}$是 Canny 从参考图里提取的边缘线信息,负责锁定物体的轮廓边界。
    EedgeE_{\text{edge}}
  3. 姿态条件信号$P_{\text{pose}}$是 OpenPose 从参考图里提取的骨骼关节点信息,负责锁定人物的动作姿态。
    PposeP_{\text{pose}}
  4. 融合系数$\alpha$ 与 $\beta$ 分别是边缘与姿态的权重,决定这两味调料在这道菜里的浓度配比。
    α⋅Eedge+β⋅Ppose\alpha \cdot E_{\text{edge}} + \beta \cdot P_{\text{pose}}

Depth深度组合

若要给菜品再添一层“回味”,就得请出高汤。盐能提味,花椒能增香,但只有高汤能让整道菜拥有纵深。Depth ControlNet 就是那碗高汤:让画面从“一张平面”变成“一个空间”。

深度图是一张灰阶图——越亮的像素代表离镜头越近,越暗的代表越远。把这张图喂给 ControlNet,AI 便学会了“谁在前、谁在后、哪里该遮挡”。加上 Canny 的边缘线,就形成了“线面结合”的组合:边缘负责勾勒轮廓,深度负责安排前后关系。这组搭配特别适合室内设计、街景摄影风——沙发挡住柜子、行人穿行楼宇前,诸如此类的空间逻辑都能被精准拿捏。

以深度阈值蒙版为例:给每个像素设定一个深度阈值 $\tau$,小于阈值判为前景,大于等于判为背景。这样,AI 在生成时就知道哪些物体必须“站在”其他物体前面,而不是糊成一团。

高汤的魅力在于“润物细无声”——你尝不出哪一口是哪一味,但层次分明、回味悠长。Depth 就是这样的背景功臣,配合 Canny 使用,画面的空间感立刻立体起来。

M(p)={1,d(p)<τ0,d(p)≥τ\displaystyle M(p) = \begin{cases} 1, & d(p) < \tau \\ 0, & d(p) \ge \tau \end{cases}
这个公式像“排队规则”:深度小于阈值的人站前排,大于等于阈值的站后排,谁前谁后一目了然。
  1. 像素位置$p$表示画面中的任意一个像素点,它有一个坐标位置,也对应一个深度数值。
    pp
  2. 深度值函数$d(p)$读取该像素点到虚拟镜头的距离,数值越大表示越远。
    d(p)d(p)
  3. 深度阈值$\tau$是一个用来划分前后景的深度界限,相当于餐厅里“前排区域”的分界线。
    τ\tau
  4. 前景蒙版$M(p)$是判定结果——条件成立取 1(前景),不成立取 0(背景),AI 据此安排遮挡关系。
    M(p)={1,d(p)<τ0,d(p)≥τM(p) = \begin{cases} 1, & d(p) < \tau \\ 0, & d(p) \ge \tau \end{cases}

权重与平衡

盐多则咸、糖多则甜,做饭最难拿捏的是“放多少”。ControlNet 的权重(Weight)就是这味调料的“克数”。如果调得太少,AI 当你在说耳边风;调得太多,画面会被“焊死”,线条生硬、色块发干。

每个 ControlNet 单元都有一个权重值,默认 1.0,实用区间通常在 0.2~1.5。权重的核心逻辑是“主次分明”:主角条件给高权重,辅助条件给低权重。比如画人物插画时,OpenPose 是主控,给 0.9;Canny 是辅助,给 0.5;Depth 只是气氛,给 0.3。总权重并不是越高越好——当各路权重的总和超过经验上限时,控制信号会压倒骨干网络的生成能力,反而诱发伪影。

为了让多路信号的总量恒定,实战中常做权重归一化:把每路权重除以所有权重之和,得到“占比式”的权重。这样三路信号加起来始终是 1,谁多谁少只取决于相对比例,而不是绝对数值。

好的厨师从不会把满瓶调料一口气倒进去,而是心里有杆秤。ControlNet 的权重,就是 AI 绘画里那杆秤:秤得准,味道就正。

wi′=wi∑j=1nwj\displaystyle w_i' = \frac{w_i}{\sum_{j=1}^{n} w_j}
归一化像是在说“这盘菜里,盐占 50%、糖占 30%、醋占 20%”,比例之和永远是 100%。
  1. 原始权重$w_i$是第 i 个 ControlNet 单元当前设置的权重值,比如 Canny 的 0.5。
    wiw_i
  2. 总权重$\sum_{j=1}^{n} w_j$是所有 n 路控制器的权重之和,相当于整桌调料的总体浓度。
    ∑j=1nwj\sum_{j=1}^{n} w_j
  3. 归一化权重$w_i'$是第 i 路信号在总控制力中的真实占比,取值在 0 到 1 之间。
    wi′w_i'

控制模式选择

同一锅菜,“先爆香再焖煮”与“先炖透再收汁”是两种截然不同的命运。ControlNet 的 Control Mode(控制模式),就是你的烹饪手法——它决定控制信号和提示词之间谁掌勺。

WebUI 提供了三种控制模式。均衡模式(Balanced)让提示词与控制条件各让一步;“提示词优先”(My prompt is more important)让控制信号只做轻推,语义由提示词主导;“结构优先”(ControlNet is more important)则让结构信号强势控场。三种模式本质上是同一个混合系数 λ 的不同取值。

选对场景比选对参数更重要:当描述词里有关键风格词(如“赛博朋克”“赛璐璐”)时,用提示词优先可以防止结构压制风格;当画面构图必须分毫不差(比如锁定镜头机位)时,用结构优先更稳。许多新手只盯着权重调,却忽略了模式切换——往往切换一下模式,比微调 0.1 的权重更能救回一张失衡的图。

火候没有绝对的对错,只有“合不合适”。玩多条件组合越久,你越会发现:控制模式往往比多调 0.1 权重更值得优先尝试。

zout=λ⋅zcontrol+(1−λ)⋅zprompt\displaystyle z_{\text{out}} = \lambda \cdot z_{\text{control}} + (1 - \lambda) \cdot z_{\text{prompt}}
最终状态 = 控制信号 × λ + 提示词信号 × (1−λ),λ 越大结构越强势,λ 越小语义越主导。
  1. 输出状态$z_{\text{out}}$是当前去噪步中融合了控制与提示词的内部状态。
    zoutz_{\text{out}}
  2. 控制信号$z_{\text{control}}$是 ControlNet 合力贡献的特征,偏向几何结构。
    zcontrolz_{\text{control}}
  3. 提示词信号$z_{\text{prompt}}$是文本描述贡献的特征,偏向语义风格。
    zpromptz_{\text{prompt}}
  4. 混合系数$\lambda$在 0 到 1 之间滑动,$\lambda$接近 1 时结构优先,接近 0 时提示词优先。
    λ⋅zcontrol+(1−λ)⋅zprompt\lambda \cdot z_{\text{control}} + (1 - \lambda) \cdot z_{\text{prompt}}

多单元协同

调料入了锅,会彼此渗透、缠绕,最终融进食材的纹理。多个 ControlNet 的真实运作方式,也像香料与食材的深度融合——不是排队等结果,而是在神经网络内部同步协作。

ControlNet 的原理是把参考图提取出的条件信号,注入到主干网络的编码器各个 block(比如 Attention 层)中。当你有多个 ControlNet 时,每个控制器都会在自己的注入点同时叠加信号,而不是等某个条件跑完流程再轮到下一个。这就是“分层注入”的并行特征。

这种并行注入带来两个结果:好处是每步去噪都能同时参考所有条件,画面整体性强;风险则是信号冲突——比如 Canny 锁定了笔直的长发边缘,OpenPose 却要求甩发的动势,两路信号会在特征图上“打架”。常用的避让手段有三种:降低冲突条件的权重、错开条件启用时机、或切换控制模式让一方主导。

香料渗透进食材需要时间,控制信号渗透进特征图也需要合适的浓度。多单元协同的默契,来自你对每一路信号的了解与尊重。

hℓ(out)=hℓ(0)+∑m=1MWm⋅hℓ(m)\displaystyle h_{\ell}^{(out)} = h_{\ell}^{(0)} + \sum_{m=1}^{M} W_m \cdot h_{\ell}^{(m)}
某一层神经网络的输出特征 = 原生特征 + 所有 ControlNet 在该层注入的特征之和,就像多种香料同时渗入同一块肉。
  1. 第 ℓ 层原生特征$h_{\ell}^{(0)}$是主干网络在某一层原本计算出的特征,相当于未调味的食材。
    hℓ(0)h_{\ell}^{(0)}
  2. 第 m 个控制器的注入$h_{\ell}^{(m)}$是第 m 个 ControlNet 在该层提供的控制特征。
    hℓ(m)h_{\ell}^{(m)}
  3. 注入权重$W_m$是第 m 路信号注入该层时的缩放系数,控制这味香料的渗透浓度。
    WmW_m
  4. 逐层累加$\sum_{m=1}^{M} W_m \cdot h_{\ell}^{(m)}$把 M 路控制特征加权求和,再与原生特征相加,得到最终融合特征。
    hℓ(out)=hℓ(0)+∑m=1MWm⋅hℓ(m)h_{\ell}^{(out)} = h_{\ell}^{(0)} + \sum_{m=1}^{M} W_m \cdot h_{\ell}^{(m)}

实战调参技巧

好菜出锅前一定要试味:咸了补糖、淡了撒盐,一勺一勺地调整。多条件 ControlNet 生成同样讲究“分步试味”,而不是一股脑把所有条件全开。

最实用的一招是“分步开启”:在采样前 30% 的步数里,只让主控条件(如 OpenPose)工作,让构图先稳住;中段 40%~70% 再逐步加入辅助条件(如 Canny、Depth),让细节跟上;尾段让权重缓慢衰减,给色彩和风格留出呼吸空间。这样做能避免控制信号在早期噪声中过度“抢跑”。

还有两个旋钮值得记住。重绘幅度(Denoising Strength)决定去噪总时长,调高则画面重绘更自由、控制相对减弱;步数分配则是指总步数内各阶段的切分节奏。实战中两个常用配方:人物插画推荐 Pose 0.8 + Canny 0.5 + Depth 0.3;室内场景推荐 Depth 0.8 + Canny 0.6 + Pose 0.3。先抄作业,再按自己的口味微调。

高手做菜从不迷信某一个死板的配方,而是在反复试味中练出手感。把这七步融会贯通,你也能随手端出一盘色香味俱全的精准画面。

wi(t)=wi,0⋅max⁡(0, 1−tT)\displaystyle w_i(t) = w_{i,0} \cdot \max\left(0,\ 1 - \frac{t}{T}\right)
权重随采样进度线性衰减:开始时全力控制,越到后期越松手,避免画面被“焊死”。
  1. 初始权重$w_{i,0}$是第 i 路条件在采样开始时设定的最大权重。
    wi,0w_{i,0}
  2. 当前步数$t$是当前已经执行的去噪步数,从 0 开始计数。
    tt
  3. 总步数$T$是本次生成设定的总采样步数,比如 30 步。
    TT
  4. 衰减因子$\max(0,\ 1 - \frac{t}{T})$从 1 逐渐降到 0,保证权重非负且平滑归零。
    max⁡(0, 1−tT)\max\left(0,\ 1 - \frac{t}{T}\right)

AI 应用场景

电商人像棚拍自动化

阶段:创意生产 / 内容生成

解决的问题:传统电商模特图需要摄影棚、模特、灯光师和后期修图,单人单款成本高、周期长。AI 多条件方案用 OpenPose 锁定模特姿态、Canny 锁服装轮廓、Depth 锁背景纵深,只需一张参考线稿,就能批量生成同构图、不同款式的商品上身图。

具体案例:某服装品牌要为 50 款 T 恤生成模特上身图。设计师先对一张模特图提取姿态骨架,再对每件 T 恤提取边缘线,组合生成后每款约 2 分钟出图,单张成本从数千元降到几毛钱。

室内设计快速出方案

阶段:设计方案生成

解决的问题:室内设计师每改一版方案都要重新建模渲染,动辄一小时起步。用 Depth + Canny 双控制,先把原始空间的深度图和边缘图提取出来,再输入不同风格提示词,就能在同一空间结构下秒出多套风格方案。

具体案例:设计师拿到一张毛坯客厅照片,用深度图稳住沙发与电视墙的前后关系,用 Canny 锁住门窗轮廓,一次生成了现代、复古、极简三个版本,客户当场就能对比挑选。

动画分镜一致性控制

阶段:分镜脚本可视化

解决的问题:动画或漫画的多集分镜经常出现“上一集角色是站姿、下一集变成蹲姿”的不一致问题。OpenPose 锁定角色动作线、Canny 锁定场景线稿、Depth 锁定镜头空间,三条件组合让每一格画面都“守规矩”。

具体案例:某动画团队制作 12 集短片,主角反复出现。团队用 Pose + Canny + Depth 三条件固定了主角动作和场景空间,成片各集之间角色姿态、镜头纵深都保持了高度一致。

Python 演示

python39 行
import torchfrom diffusers import StableDiffusionControlNetPipeline, ControlNetModelfrom PIL import Image # 1. 准备三个不同的 ControlNet 模型:Canny 边缘、Depth 深度、OpenPose 姿态canny_net = ControlNetModel.from_pretrained(    "lllyasviel/sd-controlnet-canny", torch_dtype=torch.float16)depth_net = ControlNetModel.from_pretrained(    "lllyasviel/sd-controlnet-depth", torch_dtype=torch.float16)pose_net = ControlNetModel.from_pretrained(    "lllyasviel/sd-controlnet-openpose", torch_dtype=torch.float16) # 2. 把三个控制器打包成列表,传入管线pipe = StableDiffusionControlNetPipeline.from_pretrained(    "runwayml/stable-diffusion-v1-5",    controlnet=[canny_net, depth_net, pose_net],    torch_dtype=torch.float16).to("cuda") # 3. 加载三张参考条件图,并统一尺寸edge_img = Image.open("room_edge.png").resize((512, 512))depth_img = Image.open("room_depth.png").resize((512, 512))pose_img = Image.open("room_pose.png").resize((512, 512)) # 4. 执行多条件组合生成,三路权重按主次分配images = pipe(    "a cozy bedroom, warm morning light, bookshelf and soft pillows",    image=[edge_img, depth_img, pose_img],    controlnet_conditioning_scale=[0.6, 0.8, 0.5],    num_inference_steps=30,    guidance_scale=7.5,).images # 5. 保存最终画面images[0].save("room_output.png")print("saved: room_output.png")
目的:演示如何用 Diffusers 同时加载三个 ControlNet 控制器,对一张室内图同时施加边缘、深度、姿态三重约束。
  1. controlnet=[canny_net, depth_net, pose_net]把三个控制器打包成列表,管线才知道多路信号要并行注入。
  2. image=[edge_img, depth_img, pose_img]三张条件图按顺序与控制器一一对应,顺序不能搞混。
  3. controlnet_conditioning_scale=[0.6, 0.8, 0.5]三路权重分别设为 0.6、0.8、0.5,让深度主导、边缘辅助、姿态点缀。
  4. ControlNetModel.from_pretrained("lllyasviel/sd-controlnet-canny", torch_dtype=torch.float16)从 HuggingFace 加载 Canny 专用控制器,半精度推理省显存。
  5. StableDiffusionControlNetPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", ...)以 SD1.5 为基底搭建支持多控制器的管线。
  6. num_inference_steps=30设置 30 步去噪,为分步开启和权重衰减留出调度空间。
  7. images[0].save("room_output.png")把生成的第一张(通常也是唯一一张)图像落盘保存。

常见误区

误区我把所有 ControlNet 单元权重都调到 2.0,这样每个条件都死死锁住画面,生成结果肯定最接近参考图。

正解权重一旦超过经验阈值(通常是 1.0~1.5),控制信号会反向压制骨干网络的生成能力,导致线条发黑、色块粘连、构图僵硬,甚至出现“控制过载”的伪影。合理的做法是主控 0.8~1.0、辅控 0.3~0.6。这就像盐能提味,但一整罐倒下去只会齁死人。

为何常见:初学者容易把“权重对应影响力”理解成“权重越高越无限增强”,忽略了神经网络存在动态平衡。

误区我同时挂了 Canny、Depth、OpenPose 三个控制器,生成出来的图肯定比单个控制器细节更丰富。

正解多条件的作用是“叮嘱 AI 画面该长什么样”,而不是“给 AI 额外提供绘画素材”。控制条件越多,画面与参考越贴合,但内容细节不会凭空变多。想丰富细节要靠提示词和模型本身的容量。请三位监工,不一定会多出三位工人。

为何常见:把“控制”和“生成”两个概念混为一谈,以为约束越多输出就越豪华。

误区多条件组合嘛,能开几个就开几个,条件越全面画面越完美,Canny、Depth、OpenPose、Segmentation 全挂上。

正解互相矛盾的条件会互相打架。比如 Canny 锁住了笔直的湖岸线,Depth 却要求岸边有凸起的前景,两路信号在特征图上冲突,结果出现不自然的畸变。按需选择 2~3 个条件,把冲突项降权或错峰启用,才是稳定出图的正道。花椒和糖比例不对会变成怪味,而不是两全其美。

为何常见:被“多就是好”的直觉支配,忽略了条件之间的相生相克。

误区控制模式选平衡就对了,系统会自动帮我协调提示词和控制条件,不需要手动换。

正解均衡模式只在提示词与控制条件大方向一致时表现良好。当风格词与结构约束互相拉扯时,必须切到“提示词优先”保留语义,或切到“结构优先”保证构图。大火快炒和文火慢炖各有适用的菜,一种火候做不出满汉全席。

为何常见:没有意识到控制模式是指导生成方向的“总开关”,只把它当成无关紧要的选项。

面试题

Q1. 以下哪个不是多条件组合常用的 ControlNet 控制器?

单选题 · easy

  • A.Canny边缘检测
  • B.深度图空间估计
  • C.OpenPose姿态估计
  • D.直方图均衡化← 正确答案

答案:D。直方图均衡化是图像增强算法,用于调整对比度,并不像 Canny、Depth、OpenPose 那样为生成模型提供空间结构约束,因此不属于 ControlNet 的常用条件控制器。

Q2. 在 Diffusers 中使用多个 ControlNet,应把控制器们传入哪个参数?

单选题 · easy

  • A.controlnet参数列表← 正确答案
  • B.unet特征提取器
  • C.scheduler采样器参数
  • D.vae图像解码器

答案:A。Diffusers 的 StableDiffusionControlNetPipeline 通过 controlnet 参数接收一个 ControlNetModel 列表。其他参数分别负责主干网络、采样器和变分自编码器,与多控制器加载无关。

Q3. 控制模式里选择“提示词优先”意味着什么?

单选题 · easy

  • A.控制条件完全失效
  • B.生成以提示词为主导← 正确答案
  • C.提示词权重被压缩
  • D.控制信号覆盖提示词

答案:B。提示词优先模式下,λ 较小,文本语义占据主导,ControlNet 信号只做轻推,而不是覆盖提示词。控制条件不会完全失效,只会在比例上让位。

Q4. 当 ControlNet 权重被调到 2.0 时,最可能出现的后果是?

单选题 · mid

  • A.画面生成更自由
  • B.画面僵硬并产生伪影← 正确答案
  • C.生成速度大幅提升
  • D.显存占用下降一半

答案:B。过高的权重使控制信号压倒骨干网络,画面结构被“焊死”,出现线条发黑、色块粘连等过控伪影。生成速度和显存与权重高低没有直接的比例关系。

Q5. 多条件组合中“分步开启”的最佳实践是?

单选题 · mid

  • A.所有条件全权重同时启动
  • B.前半程开主控中段加辅助← 正确答案
  • C.只在最后三成步数启动
  • D.全部条件随机切换开启

答案:B。分步开启建议前 30% 步数只让主控条件工作,中段 40%~70% 再逐步加入辅助条件。全程全开容易让早期噪声被过度约束,只在尾段启动则来不及校正构图。

Q6. Depth 深度图提供的最核心信息是什么?

单选题 · mid

  • A.锁定色彩风格与滤镜
  • B.提供前后遮挡层次关系← 正确答案
  • C.约束人物表情动作
  • D.加强画面噪点随机性

答案:B。深度图以灰阶表示像素到镜头的距离,越亮越近、越暗越远,因此能给生成模型提供前后遮挡与空间层次的先验,而不是色彩、表情或噪点这类信息。

Q7. 想要“固定人物姿态 + 锁定场景轮廓”,应该选哪些条件组合?

多选题 · mid

  • A.OpenPose姿态锁定关节点← 正确答案
  • B.Canny边缘锁定场景线稿← 正确答案
  • C.Depth深度锁定前后层次
  • D.随机种子锁定初始噪声

答案:AB。OpenPose 控制骨骼关节点,Canny 控制边缘线稿,二者正好覆盖“人物姿态”和“场景轮廓”。Depth 负责纵深,随机种子只影响初始噪声分布,都不是本题的直接答案。

Q8. 关于权重衰减策略,下列说法正确的是?

多选题 · hard

  • A.避免后期过度控制导致的僵硬← 正确答案
  • B.让构图在采样尾段恢复灵活← 正确答案
  • C.压缩模型参数使加载更轻快
  • D.彻底移除所有提示词影响

答案:AB。权重衰减让控制信号随采样步数逐渐减弱,避免尾段画面被“焊死”,给色彩和风格留出呼吸空间,属于调度策略而非模型压缩手段,也不会移除提示词影响。

Q9. 当多个 ControlNet 条件发生冲突时,哪些做法可以有效缓解?

多选题 · hard

  • A.降权冲突条件可缓解矛盾← 正确答案
  • B.将冲突条件后置启用可规避← 正确答案
  • C.冲突必然产生不可修复废图
  • D.选用合适控制模式也能调和← 正确答案

答案:ABD。冲突并非不可修复。降低冲突条件权重、把冲突条件延后注入、或切换控制模式让一方主导,都是实践中有效的避让手段。断言“必然废图”是不符合实际的。

Q10. 多个 ControlNet 在 UNet 中的注入方式是什么?

单选题 · extreme

  • A.仅在解码器的单层注入
  • B.编码器多block并行叠加← 正确答案
  • C.在VAE端直接合并特征
  • D.独立出图后再进行拼接

答案:B。ControlNet 的核心设计是在编码器多个 block 上并行注入控制条件,每个控制器都叠加自己的一路信号。它既不在解码器单层玩,也不在 VAE 端合并,更不是分头出图再拼。