先聊聊为什么一定要让ComfyUI先输出提示词,而不是直接生成图像——本质上是为了避免显存被白白浪费。你很可能也遇到过这种情况:参数调了半天,最后跑出来的画面里,孩子的手搭在积木塔顶上,积木塔却比孩子还高,整个空间关系完全错乱。因此,让模型先把“骨架”理清楚,再进行渲染,这才是最高效的做法。

具体该怎么操作?核心思路如下:利用真实照片反推空间结构,采用三段式结构锚定法撰写提示词初稿,再通过模块化拼接变量输出结构草稿,最后借助PreviewImage节点预览文本而非图像。
用ClipInterrogator反推原图空间结构
第一步,挑选一张真实的儿童玩具使用场景照片——比如孩子蹲在地板上拼乐高、毛绒熊斜靠在沙发边、积木散落在木地板缝隙中。关键是画面中必须有明确的主体、环境和互动痕迹。千万不要使用AI生成图或电商白底图作为输入,否则反推出来的全是通用模板词,与真实空间关系毫无关联。
操作非常简单:在ComfyUI中拖入LoadImage节点,上传照片,连接到ClipInterrogator节点,然后点击【添加提示词队列】运行。等待几秒后,它会输出3~5组英文描述。重点提取那些包含空间关系的短语——比如“child sitting cross-legged on hardwood floor, plastic bricks scattered within arm’s reach”就比“a child playing with toys”更精准地锁定了构图层级。如果出现“toy box in background, slightly out of focus”,说明模型已经识别了景深结构,这样的短语可以直接作为后续提示词的骨架句。
套用“三段式结构锚定法”撰写初稿
接下来,在CLIP Text Encode节点前插入一个「Structured Prompt Builder」节点(需要提前安装Easy-Use扩展)。然后按照三段式填写:
第一步,Role栏填写“你是一名早教中心视觉设计师,专为0–6岁儿童安全玩具拍摄生活化场景图”。这个角色设定会激活模型对低矮视角、圆角处理、无尖锐边缘等安全要素的隐式响应。
第二步,Task栏严格按空间顺序书写——例如“镜头俯拍角度→孩子手部特写正在搭第三块积木→积木堆高度不超过孩子胸口→右侧露出半截毛绒兔耳朵→地板有两道自然划痕延伸至画外”。这里的→符号不是装饰,而是强制模型按照这个物理顺序渲染,防止“毛绒兔”突然飘到孩子头顶。
第三步,Constraint栏输入“must show floor texture, no small parts detached, no glass reflection, no electrical cord visible”。所有以must开头的句子会被自动转为强排除项,比手动编写negative prompt更加稳定可靠。
用JSON脚本注入变量生成结构草稿
方法一:启用ComfyUI内置的“Text Concat”节点进行模块拼接。拖入四个String节点,分别命名为【主体动作】【地面材质】【道具状态】【安全约束】;右键每个节点,选择“Convert to Input”,将它们变成外部可修改字段。
举例来说:【主体动作】填写“toddler crouching, left hand pressing blue brick into stack”;【地面材质】填写“light oak floor with faint scuff marks near baseboard”;【道具状态】填写“two LEGO pieces snapped together, one yellow, one red”;【安全约束】填写“no loose bricks under 2cm diameter, no sharp corners visible”。
将这四段文本依次接入Text Concat节点,输出结果喂给CLIP Text Encode。注意,此时不要连接KSampler,只连接PreviewImage节点。运行后,你会看到纯文本输出框里跳出完整的结构化提示词,而不是图像。这就是我们想要的“先给结构”效果——可以逐段检查角色位置、道具逻辑、安全边界,确认无误后再连回KSampler正式渲染,避免反复重跑浪费显存。
