四个节点一条直线:开始、优化提示词、图像生成、结束。这条链比第 9 章短一半。 短是因为字段在入口就定死了,中间不用再抽一遍。入口窄,链路就简单。 这一节真正有技术含量的只有一件事:把「北欧」两个字变成八个具体描述。
书上这一节拆成九个小节:添加、创建、基础信息、开始节点、大模型节点、配置大模型、图像生成、 结束、完整结构。这里按「配什么」归成九段。 本沙箱没有出图模型,图像生成节点只讲参数、不出图。 提示词那一段是真跑的——词库拼接、字数统计、分句数,都是实算。 这一节的重点不在节点怎么填,在提示词怎么写。前八段都是为第九段服务的。
一、先添加,再创建
平台里这两步是分开的:先在智能体的资源里「添加工作流」,再进去「创建工作流」。 第一步只是占个位,第二步才画图。为什么要分? 因为一个智能体可以挂多条工作流,添加的时候得先起个名字、说明它是干什么的。 起名和说明不是形式。 智能体判断该调哪条工作流,看的就是这两个字段。
名字写「室内设计工作流」,说明写「根据房间、面积、风格生成一张室内效果图」。两句话都要有具体动作。
二、四个节点,一条直线
| 节点 | 类型 | 吐什么 |
|---|---|---|
| 开始 | 开始 | 七个需求字段 |
| 优化提示词 | 大模型 | 一段出图提示词 |
| 图像生成 | 图像生成 | 图片地址 |
| 结束 | 结束 | — |
和第 9 章那条六节点链比,这条少了一半。少的不是功能,是「转换」——不需要提取、不需要翻译。 因为输入本来就是结构化的。 用户按字段说,就不用再抽一遍。 这是设计上的一个取舍:入口多填几个框,中间少两个节点。哪种好?看谁在填——人填得多,就用入口; 机器抽得多,就用中间节点。
三、开始节点七个参数,三个必填
| 参数 | 类型 | 必填 | 填什么 |
|---|---|---|---|
| room | string | 是 | 客厅 / 卧室 / 书房 |
| area | number | 是 | 平米数 |
| style | string | 是 | 北欧 / 日式 / 侘寂 |
| budget | number | 否 | 万元 |
| light | string | 否 | 朝南 / 朝北 |
| family | string | 否 | 几口人、有没有宠物 |
| extra | string | 否 | 特别要求 |
三个必填正好对上 11.1 节「不问就出不了图」的那三个:空间、面积、风格。 其余四个缺了也出图,只是粗一点。必填项越少,用户越愿意填。 类型要注意:area 和 budget 用 number,不用 string。 用 string 的话,「二十」和「20」是两个不同的值,后面算不了。
四、大模型节点:两个词变八个
用户说「北欧」,提示词里得是「浅色橡木地板,白墙,棉麻沙发,简洁线条,绿植点缀」。 这五个词用户一个都没说。它们是词库补的,不是用户说的。 这一步就是「优化提示词」节点的全部价值:把一个人的模糊印象,翻译成模型能听懂的具体描述。
演示里三个需求各拼出一段。第一段八十六字、十四句、五个风格词; 第三段九十一字、十六句——多了采光和居住人。 字数不是越多越好。八十字左右刚好:再短模型自由发挥,再长重点被稀释。
五、口语直出和拼好的差多少
| 喂什么 | 具体描述词 | 结果 |
|---|---|---|
| 客厅 20 平北欧风 | 2 | 模型自由发挥,两次出图风格不一样 |
| 拼好的那段 | 8 | 两次出图风格接近 |
具体描述词从 2 个涨到 8 个。这个词数是能数的,风格稳不稳定跟它正相关。 「稳不稳定」为什么重要?因为客户会拿两次出图对比。 第一次是浅色木头,第二次是深色木头,他会觉得这工具不靠谱。 写提示词的顺序:先定风格词,再定光线,最后定构图。风格错了全错,光线错了只是不好看。
六、负面词必须写
提示词最后要加一句:「不要:杂乱,过曝,畸变,水印,文字」。 不加会怎样?模型很喜欢往图上加字——尤其是带「北欧风」这种词的时候,它会给你画一块写着北欧的牌子。 负面词是成本最低的一行。 五个词,省掉一半废图。
哪几个词最该写?跟你的场景强相关的。室内设计要防「文字、水印、畸变」;做人物图要防「多余的手指」。
七、图像生成节点三个参数
| 参数 | 填什么 | 怎么选 |
|---|---|---|
| 提示词 | 上一步的输出 | 整段粘进去,别只粘前几个词 |
| 尺寸 | 16:9 横图 / 1:1 方图 | 横图适合客厅,方图适合发朋友圈 |
| 生成张数 | 1 ~ 4 | 四张挑一张,成本翻四倍 |
尺寸这一步容易被忽略。客厅是横向空间,用 1:1 出图会把两边切掉,看着像个小房间。 生成张数按需要给。演示用的是一张——先把流程跑通,调好了再出四张挑。 同一段提示词出四张会得到四个不同结果。 挑的那一步还是人, 和 10.4 节的「最后一道是人」是一个意思。
八、结束节点交两个字段
image_url(图片地址)和 prompt_used(实际用的提示词)。
第二个字段看着多余,其实是给自己留的账:用户不满意的时候,你得知道当时喂了什么。
不存提示词,出了问题只能重跑一遍猜。存了,一眼看出是「风格词不够」还是「需求本身没说清」。
这一条在第 8.7 节没讲,但对这种「一次出图、多次返工」的场景特别重要。 返工的成本高,留账的价值就高。
九、完整结构回头看
四个节点:开始(七个参数)、优化提示词(词库补全)、图像生成(三个参数)、结束(两个字段)。 跑一遍的顺序是:用户填三个必填 → 词库补成八十字 → 出图 → 交地址和提示词。 这条链最脆弱的地方不是节点,是词库。 词库不全,出图就不稳;词库是人工维护的,会过时。
所以词库要单独放一张表,别写死在提示词里。加一个新风格只改表,不改链。 这是 11.4 节「换零件」的思路在提示词上的版本。
十、动手 Demo:四步出图:从口语到提示词
三个需求各拼一段提示词,数一下字数、分句数、风格词个数。 再比一次「口语直出」和「拼好的」差多少——差别在具体描述词的个数。
STYLE = {u'北欧': [u'浅色橡木地板', u'白墙', u'棉麻沙发', u'简洁线条', u'绿植点缀'],
u'日式': [...], u'侘寂': [...]}
NEG = u'杂乱,过曝,畸变,水印,文字'
def compose(req): # 结构化需求 -> 一段出图提示词
return u'%s,%d 平米,%s风格:%s,%s。不要:%s' % (...)
实跑输出:
--------------------------------------------------------------------
四步出图:从口语到提示词
--------------------------------------------------------------------
① 四个节点,一条直线
--------------------------------------------------------------------
| 节点 | 类型 | 吐什么 |
|---|---|---|
| 开始 | start | 七个需求字段 |
| 优化提示词 | llm | 一段出图提示词 |
| 图像生成 | gen | 图片地址 |
| 结束 | end | — |
和第 9 章那条链比,这条更短:没有提取、没有翻译,因为输入本来就是结构化的。
字段在入口就定死了,中间就不用再抽一遍。 这是「入口窄」换来的简单。
② 开始节点七个参数,三个必填
--------------------------------------------------------------------
| 参数 | 类型 | 必填 | 填什么 |
|---|---|---|---|
| room | string | 是 | 客厅 / 卧室 / 书房 |
| area | number | 是 | 平米数 |
| style | string | 是 | 北欧 / 日式 / 侘寂 |
| budget | number | 否 | 万元 |
| light | string | 否 | 朝南 / 朝北 / 采光一般 |
| family | string | 否 | 几口人、有没有宠物 |
| extra | string | 否 | 特别要求,一句话 |
三个必填正好对上 11.1 节「不问就出不了图」的那三个:空间、面积、风格。
其余四个缺了也出图,只是粗一点。
③ 同一句话,三个完整度,三段提示词
--------------------------------------------------------------------
客厅,20 平米,北欧风格:浅色橡木地板,白墙,棉麻沙发,简洁线条,绿植点缀,采光一般,
自然光从侧面进来。
摄影级室内效果图,广角,正视角。不要:杂乱,过曝,畸变,水印,文字
客厅,20 平米,北欧风格:浅色橡木地板,白墙,棉麻沙发,简洁线条,绿植点缀,朝南,
自然光从侧面进来。
摄影级室内效果图,广角,正视角。不要:杂乱,过曝,畸变,水印,文字
卧室,14 平米,侘寂风格:微水泥墙面,粗陶器皿,原木旧料,单色,留白,朝北,自然光从侧面进来,
两口人,养了一只猫。
摄影级室内效果图,广角,正视角。不要:杂乱,过曝,畸变,水印,文字
| 需求 | 提示词字数 | 分句数 | 风格词几个 |
|---|---:|---:|---:|
| 客厅 20 平 北欧 | 86 | 14 | 5 |
| 客厅 20 平 北欧 | 84 | 14 | 5 |
| 卧室 14 平 侘寂 | 91 | 16 | 5 |
三段提示词,风格词都是五个——词库补的,不是用户说的。
用户只说了「北欧」两个字,提示词里变成五个具体描述。这一步就是「优化提示词」节点的价值。
④ 口语直出和拼好的差多少
--------------------------------------------------------------------
| 喂什么 | 提示词长度 | 具体描述词 | 结果 |
|---|---|---|---|
| 口语直出 | 客厅 20 平北欧风 | 2 | 模型自由发挥,两次出图风格不一样 |
| 拼好的 | …浅色橡木地板,白墙,棉麻沙发… | 8 | 两次出图风格接近 |
具体描述词从 2 个涨到 8 个。这个词数是能数的,风格稳不稳定跟它正相关。
! 负面词也要写。「不要:杂乱,过曝,畸变,水印,文字」——不写这几项,模型很喜欢往图上加字。
⑤ 图像生成节点三个参数
--------------------------------------------------------------------
| 参数 | 填什么 | 怎么选 |
|---|---|---|
| 提示词 | 上一步的输出 | 整段粘进去,别只粘前几个词 |
| 尺寸 | 16:9 横图 / 1:1 方图 | 横图适合客厅,方图适合发朋友圈 |
| 生成张数 | 1 ~ 4 | 四张挑一张,成本翻四倍 |
同一段提示词,出四张会得到四个不同结果。
挑的那一步还是人——和 10.4 节的「最后一道是人」是一个意思。
⑥ 结束节点交什么
--------------------------------------------------------------------
交两个字段:image_url(图片地址)、prompt_used(实际用的提示词)。
第二个字段看着多余,其实是给自己留的账:用户不满意的时候,你得知道当时喂了什么。
不存提示词,出了问题只能重跑一遍猜。存了,一眼看出是「风格词不够」还是「需求本身没说清」。
①第一张表四个节点,比第 9 章那条链少一半——因为输入本来就结构化。 ②第二张表七个参数,三个必填。必填项越少,用户越愿意填。 ③第三段打印三段提示词:八十六字、八十四字、九十一字,风格词都是五个。 ④风格词是词库补的,不是用户说的。这就是「优化提示词」节点的价值。 ⑤第四张表:口语直出 2 个描述词,拼好的 8 个。风格稳不稳定跟这个词数正相关。
30 秒实验
- 给你的场景写一份风格词库:三个风格,每个五个具体描述词。写完数一下够不够。
- 拿同一段提示词出两次图,看两张像不像。不像就是描述词太少。
- 给你的提示词补一句负面词。最常见的三个废图原因是什么,就写哪三个。
常见误区
- 「提示词越长越好。」八十字左右刚好。再长重点被稀释,模型抓不住。
- 「负面词没必要。」不写负面词,模型很喜欢往图上加字。五个词省一半废图。
- 「词库写死在提示词里。」加一个新风格就要改链。放表里,改表不改链。
自测三问(点开对答案)
1. 这条链为什么只有四个节点? —— 因为字段在入口就定死了,中间不用再抽。入口窄,链路就简单。 2. 「优化提示词」节点做了什么? —— 把「北欧」两个字补成五个具体描述词。用户说两个词,提示词里是八个。 3. 结束节点为什么交 prompt_used? —— 返工时要知道当时喂了什么。不存只能重跑猜,存了一眼看出问题在哪。链建好了,下一节测试、发布、挂到智能体上。不发布,智能体看不见它。
- ☐ (本篇完,下一篇 11.4 工作流测试与发布)
相关笔记
- 扣子工作流的常见节点:图像生成节点怎么用
- 编写有效提示词的技巧:提示词里的负向约束
- 配置工作流节点:上一章那条更长的链
- 🐦 扣子开发 AI Agent · 索引