想在 Stable Diffusion 3.5 里用线稿定构图、同时让人物姿势不跑偏,关键不在于提示词写得多长,而在于三件事:线稿本身能不能当控制图用、控制链路有没有真的接通、权重和介入区间给到什么程度。下面按这个顺序拆,每一段都给出可观察的现象,方便对照自己的节点图排查。
线稿上色且要求姿势稳定的场景,通常把白底黑线、与出图分辨率同长宽比的线稿接进控制链路,权重先从 0.5 附近起试,结束步收在 0.7~0.8,给后期留出上色空间。验证方式是固定随机种子,只换提示词看姿势是否跟着变。权重过高会锁死画面、颜色铺不进去,过低或链路没接对则等于没有控制;不同 SD3.5 环境对控制权重的支持范围需要自行确认。
把线稿处理成白底黑线且尺寸对齐的输入图
控制图的质量直接决定上色结果的下限。线稿要求是白底黑线:背景接近纯白,线条是实心深色,灰阶过渡越少越好。如果线稿是黑底白线,需要先反相;如果是带透明度或水印的 PNG,建议先合并到底层白色上,再导出。半透明的灰线容易被预处理器当成纹理,出图时线条附近会出现脏边或糊块。
尺寸方面,控制图的长宽比要和最终出图分辨率一致。常见问题是线稿是竖构图 1:2,出图设成 1:1,此时控制图会被缩放填充,人物被横向压扁或纵向拉长,姿势看着像歪的、手脚比例不对,但提示词完全没变,很容易误判成模型问题。这一项可以直接量:在图片查看器里看线稿的像素长宽,与采样节点里的宽高做个比对。粗剪时可以稍有差异,但不要跨比例。
在工作流里挂上控制节点并把线稿接进输入端
控制链路的连接顺序通常是:线稿图 → 预处理器 → 控制应用节点(同时加载对应的控制模型)→ 采样器。三者的关系可以这样理解:预处理器负责把线稿整理成控制信号,控制模型决定这个信号如何影响去噪,采样器是最终消费方。预处理器类型要和线稿风格匹配,纯线条线稿用线条类预处理器,带明暗的速写可能更适合边缘类,选错时输出会偏灰、丢失线条细节。
接错的表现比较有特征:控制图接到了负向输入端,或控制节点没有连进采样器,结果就是画面完全没有控制,姿势随提示词随机漂移;控制模型与预处理器类型对不上,常见是出图整体发灰、边缘像被描了一遍、颜色铺不开。上传后建议先单独跑一次预处理,预览预处理器的输出图,确认线条还在、背景干净,再往下接。
调整控制权重与起止步数,观察贴合程度变化
权重由小到大变化时,跟随程度大致是线性上升的。可以先从 0.5 左右起,出图后看人物轮廓与线稿的偏差;贴合不够就往上加,画面开始发硬、颜色铺不进去、细节像描线,说明给高了,往回收。上色任务通常不需要把权重压到极限,因为颜色需要一个相对自由的后期阶段才能自然融合。
起止步数控制的是控制介入的时间窗口。结束步调早(比如 0.7~0.8),后期去噪由提示词主导,颜色和质感更自然,但姿势在后期有小幅跑偏的风险;结束步拉到 1.0 是全程介入,锁得最死,代价是画面发僵。起始步一般不用太晚,早期不介入容易让构图在第一步就偏掉。建议固定随机种子,一次只动一个参数,观察变化来自权重还是来自区间。
{
"prompt": "flat color, soft shading, clean lineart",
"control": {
"image": "lineart.png (白底黑线, 长宽比与出图一致)",
"preprocessor": "lineart / softedge (与线稿风格匹配)",
"control_model": "<对应 SD3.5 的控制权重文件>",
"strength": 0.5,
"start_percent": 0.0,
"end_percent": 0.8
},
"seed": 12345
}上面的字段名只是通用骨架,不同节点包或接口的命名不一定相同,替换成自己环境里的对应项即可;能验证的点是:改 strength 和 end_percent 之后,出图贴合度的变化方向是否符合预期。
用同一张线稿换不同提示词,验证控制是否仍生效
这一节是判断控制有没有真正起作用的对照实验。保持线稿、种子、权重、起止步不变,只替换提示词中的颜色、材质、风格描述,比如从「蓝色外套、暖色光」换成「红色外套、冷色光」。如果人物轮廓和姿势基本稳定、只换了颜色和氛围,说明控制链路在工作。
提示词与线稿冲突时(线稿是站姿,提示词写「坐着」),可以观察哪一方占上风。若姿势随提示词明显改变,通常意味着控制权重偏低、结束步偏早,或者控制节点根本没接进采样器;若姿势很稳但颜色怎么改都改不动,说明控制压得太死,需要降权重或把结束步收早一点,让后期有空间响应提示词。判断冲突结果时固定种子很重要,否则无法区分是提示词还是随机噪声带来的差异。
姿势仍跑偏时按控制图、权重、步数的顺序回查
下次遇到跑偏,按下面顺序查一遍,基本能定位到环节:
- 先看控制图本身。确认是白底黑线、没有反相、没有透明底残留;把线稿像素长宽比与采样节点的宽高对一下,不一致就先解决这一项。
- 看预处理器的输出预览。线条是否清晰、背景是否干净,预处理类型和线稿是否匹配;这里糊了,后面怎么调权重都救不回来。
- 看链路连接。控制节点是否连进采样器的正向控制输入,加载的控制模型文件是否与预处理器类型配套,是否存在被另一个控制节点覆盖的情况。
- 看权重与起始步。权重是否被压得接近 0,起始步是否过晚导致早期构图就偏;先把权重抬到中间值、起始步回到 0 附近再看。
- 看结束步。姿势在后期才跑偏的,通常是结束步偏早,往 1.0 方向调一点;画面僵硬的再往回收。
这套顺序的价值在于每次只动一个变量,跑偏的原因能被逐个排除,而不是同时改权重、提示词和分辨率,最后说不清是哪一项起了作用。不同 SD3.5 环境对控制权重的支持程度和可用模型种类需要按自己的安装情况确认,节点名称和文件命名也可能有差异。