ComfyUI 场景生成:6 个节点出 1 张稳定建筑效果图
ComfyUI 场景生成:6 个节点出 1 张稳定建筑效果图
6 个节点拼出 1 张 1280×960 的建筑效果图,是 ComfyUI 场景生成里最短的一条链路。这篇从成品效果图倒推每一根连线,采样步数、CFG、尺寸这些参数怎么设,全部按"为什么"来讲,照着接一遍就能复现。
从一张成品效果图倒推节点链路
先说目标成品:一张 1280×960 的现代办公楼黄昏效果图,玻璃幕墙有反射,体块干净,透视没有歪。做到这一点只需要六个节点,链路如下,仓库里的示意图标得很清楚:
读法是从右往左:最右边 SaveImage 把像素图写进 output 目录,往前 VAEDecode 负责把采样器吐出的 latent 变成像素;latent 由 KSampler 去噪而来,KSampler 又依赖三个上游——EmptyLatentImage 提供空白画布,两个 CLIPTextEncode 提供正负提示词,CheckpointLoaderSimple 提供模型、CLIP、VAE。每个节点只解决一件事,接错一根线,整条链路立刻断掉。
解码与保存:画面最后两站
从输出端往回拆。VAEDecode 的两个输入:samples 接 KSampler 输出的 latent,vae 接模型加载器的 VAE 口,它把压缩在潜在空间的噪声张量还原成可见像素。为什么必须有这一步:采样全程在 latent 空间进行,省算力但人眼看不见,没有解码就没有画面。
SaveImage 接住像素,写进 output 目录。文件名前缀支持 %date:yyyy-MM-dd% 这类格式化变量,批量出图不用手改名。
⚠️ 预览图正常但保存出来偏色、闪烁,多半是 VAE 接错了。VAEDecode 的 VAE 口保持连回 CheckpointLoaderSimple 的那根线,别误接成单独加载的 VAE。
采样器:步数与 CFG 怎么定不翻车
KSampler 是整条链路的发动机,吃六样东西:模型、正负条件、latent、种子、步数、CFG,输出去噪后的 latent。建筑效果图的参数这样定:
| 参数 | 推荐值 | 为什么选这个值 |
|---|---|---|
| steps | 20~30 | 20 步以下建筑细节发糊,30 步左右轮廓和材质趋于稳定,再往上收益变小 |
| cfg | 7~8 | 平衡提示词服从度与画面干净度,超过 10 容易过饱和、边缘发脆 |
| sampler / scheduler | DPM++ 2M + Karras | 20~30 步区间内出图稳定,少出"塑料感" |
| seed | 固定一个数 | 同一提示词复现同一张图,方便单独对比某个参数的影响 |
| denoise | 1.0 | 纯文生图拉满;小于 1.0 会保留原图结构,属于图生图玩法 |
⚠️ denoise 小于 1.0 时画面会带上一部分旧图信息,纯文字起稿阶段先保持 1.0,不然上一张的残留会干扰判断。
空 latent 的尺寸:建筑出图参数怎么选
KSampler 要画的"东西"本身来自 EmptyLatentImage。它生成的 latent 张量分辨率是像素值除以 8,所以 1280×960 的图对应 160×120 的 latent。尺寸直接决定构图比例:
| 参数 | 推荐值 | 为什么选这个值 |
|---|---|---|
| width / height | 1280×960 | 建筑需要横向留白放体量和透视,横版比方图舒展 |
| width / height(室内) | 1024×1024 或 1216×832 | 室内空间更接近方图或竖构图 |
| batch_size | 2~4 | 一次出多张挑构图,比反复重掷 seed 快得多 |
尺寸记得保持 8 的倍数,这是 latent 8 倍压缩率的硬性要求,不符合的数值会被拒绝。
模型加载:一个节点带出三条线
链路的起点 CheckpointLoaderSimple 只有一个输入:models/checkpoints/ 目录下的模型文件名,但一次返回 MODEL、CLIP、VAE 三路输出。CLIP 这一路接两个 CLIPTextEncode:正面提示词写"现代主义办公楼,玻璃幕墙,几何体块,黄昏光影,写实渲染";负面提示词挡掉"透视错误,比例失调,模糊,低细节"这类缺陷。MODEL 进 KSampler,VAE 接 VAEDecode。
三条线各干各的事:文本编码器只管把描述变向量,不参与画;模型管去噪;VAE 管像素转换。checkpoint 选建筑专用模型时出图风格更贴,通用大模型出建筑容易"塑料感",拿同一提示词在两个 checkpoint 上各跑一次对比再定,比凭感觉选模型省事。
换个节点,画面会怎么变
变体 A:KSampler 换成 KSamplerAdvanced
KSamplerAdvanced 多了 start_at_step 和 end_at_step。设成 15 和 20,就只重绘第 15~20 步区间:建筑轮廓在前期步骤已定,后段步骤决定材质和光影,所以换一张图只改玻璃反光质感,整体构图纹丝不动。这是"保留构图、只改材质"的常用手法。
变体 B:只动 EmptyLatentImage 的尺寸
节点一个不替换,把 width 和 height 从 1280×960 调到 1536×896,同一组种子下画面变成超宽全景,建筑体量被拉得更开,天空占比变大,适合做封面横幅。batch_size 提到 4,就能一次出 4 张不同构图挑选。
新手高频踩坑速查表
参数组合速查,出图前对照一遍:
| 场景 | 尺寸 | steps | cfg | 采样器/调度器 | batch_size |
|---|---|---|---|---|---|
| 建筑出图 | 1280×960 | 30 | 7.5 | DPM++ 2M + Karras | 2 |
| 快速看构图 | 1024×1024 | 12 | 7 | Euler a + Normal | 4 |
| 室内空间 | 1216×832 | 30 | 7 | DPM++ 2M + Karras | 2 |
高频坑点对照:
| 现象 | 原因 | 处理 |
|---|---|---|
| 出图偏色、色块闪烁 | VAE 与模型不匹配 | VAEDecode 的 VAE 口接回 checkpoint 那根 |
| 画面过饱和、边缘发脆 | CFG 过高 | 从 8 往下收到 6~7 |
| 建筑细节糊成一片 | 步数不足 | 提到 30,调度器换 Karras |
| 节点报尺寸错误 | width/height 不是 8 的倍数 | 改成 8 的整数倍 |
| 改参数后结果复现不了 | seed 每轮在跳 | 固定 seed 后再逐个变量对比 |
想再推进一步,把 steps 从 30 提到 40 再出一组,玻璃幕墙的高光细节提升非常明显,建议第一组正式出图就试。
基于 v0.7.0 编写
更多推荐

所有评论(0)