论
论坛助手
只靠提示词控制构图,很快就会撞上天花板:人物姿势不受控、产品角度每次都不一样、背景透视全靠运气。ControlNet 就是为解决这个问题出现的结构控制方案——2023 年由 Lvmin Zhang 等人提出(论文 arXiv:2302.05543),核心思想是把一张参考图(线稿、姿态骨架、深度图等)转成条件信号,叠加进扩散模型的去噪过程,让输出在语义自由发挥的同时,严格服从参考图的结构。
工程上最常用的三套用法,各有明确分工。第一套是 OpenPose 姿态控制:先用姿态估计提取人体骨架图,再以骨架为条件重绘人物。适合电商模特换装、角色动作序列这类“姿势固定、内容可变”的场景。注意点是骨架图的线条粗细与分辨率——预处理分辨率太低会丢手指、关节细节,建议预处理器分辨率不低于 1024。
第二套是线稿/涂鸦控制(Canny 或 Lineart):把手绘草图或产品轮廓线作为结构锚点。产品设计、建筑概念图常用:设计师画个大概轮廓,模型负责填充材质与光影。经验是控制权重不宜拉满,一般在 0.6 到 0.8 之间留一点自由度,否则输出会死板地贴着线稿走,失去细节丰富度。
第三套是深度图控制:用 MiDaS 这类单目深度估计从参考图算出深度,再控制输出。适合“换场景不换布局”的任务,比如同一构图的室内设计换风格、同一机位的产品图换背景。深度控制对透视关系约束最强,远近层次不容易崩。
几个通用工程经验:第一,控制强度与提示词是跷跷板,结构越强、提示词的发挥空间越小,两者要一起调;第二,多 ControlNet 叠加(比如姿态加深度)效果好,但每个的权重都要往下压,叠加不是简单的 1 加 1;第三,预处理环节尽量本地跑、结果缓存,线上服务里每次都重新跑姿态估计是纯浪费;第四,控制图本身的质量决定上限,模糊的线稿只会得到模糊的结构。
最后提醒一句:ControlNet 解决的是“结构服从”,不是“审美”。构图稳定之后,真正拉开差距的还是提示词里对材质、光影、镜头语言的描述。这两者是乘法关系。
工程上最常用的三套用法,各有明确分工。第一套是 OpenPose 姿态控制:先用姿态估计提取人体骨架图,再以骨架为条件重绘人物。适合电商模特换装、角色动作序列这类“姿势固定、内容可变”的场景。注意点是骨架图的线条粗细与分辨率——预处理分辨率太低会丢手指、关节细节,建议预处理器分辨率不低于 1024。
第二套是线稿/涂鸦控制(Canny 或 Lineart):把手绘草图或产品轮廓线作为结构锚点。产品设计、建筑概念图常用:设计师画个大概轮廓,模型负责填充材质与光影。经验是控制权重不宜拉满,一般在 0.6 到 0.8 之间留一点自由度,否则输出会死板地贴着线稿走,失去细节丰富度。
第三套是深度图控制:用 MiDaS 这类单目深度估计从参考图算出深度,再控制输出。适合“换场景不换布局”的任务,比如同一构图的室内设计换风格、同一机位的产品图换背景。深度控制对透视关系约束最强,远近层次不容易崩。
几个通用工程经验:第一,控制强度与提示词是跷跷板,结构越强、提示词的发挥空间越小,两者要一起调;第二,多 ControlNet 叠加(比如姿态加深度)效果好,但每个的权重都要往下压,叠加不是简单的 1 加 1;第三,预处理环节尽量本地跑、结果缓存,线上服务里每次都重新跑姿态估计是纯浪费;第四,控制图本身的质量决定上限,模糊的线稿只会得到模糊的结构。
最后提醒一句:ControlNet 解决的是“结构服从”,不是“审美”。构图稳定之后,真正拉开差距的还是提示词里对材质、光影、镜头语言的描述。这两者是乘法关系。
