ARTICLE READING
权重与顺序:同一句话换个位置结果就变
提示词权重不是最先该调的东西。我逐条对过手上那批 70 张图的提示词文件:它们能保持一致,靠的是字段顺序固定,不是括号。这篇讲清位置效应与权重语法的边界。
位置效应:靠前的词,本来就被抓得更牢
写提示词的人容易有个错觉,觉得词和词是平等的,谁重要就给谁加括号。扩散模型的文本编码器不这么读。一条提示词在编码时,靠前的 token 拿到的注意力比靠后的更完整,越往后越稀。有些实现还会把长提示词按固定长度切段,段与段之间的分量也不一样。
这一点在实际生成里能感觉到。把「油画」写在最前面,画面就更像油画;写在最后,模型可能先抓住后面的「女人」「微笑」,画风就往照片方向跑。
我核对过的那批图,靠的是字段顺序
我把手上一批东方题材图的提示词文件逐条对过。70 张,正提示词用的是同一套 13 个字段,顺序一模一样:
- Use case(用途)
- Asset type(素材类型)
- Primary request(主体要求)
- Scene/backdrop
- Subject
- Style/medium
- Composition/framing
- Lighting/mood
- Color palette
- Materials/textures
- Narrative cue
- Constraints
- Avoid
一行没变。70 张画面各自独立,摆在一起却像一套。起作用的不是哪个词写得漂亮,是每个字段都有固定位置、职责单一。
注意 Style/medium 这一行排得挺靠后,在 Subject 和 Composition 之后。按「重要的往前放」的说法,风格该往前挪。可实际结果风格很稳。原因不难猜:那一行每次写的内容几乎一样、位置又固定,模型早把它当成了这条提示词的底色。
顺序一变,画面会换脾气
同一批素材里还有另外两批,写法完全不同。第二批是两段结构——「Use case」加「Primary request」,把类型、比例、材质全塞进主要求那一段里。第三批收敛成五段:Use case / Asset type / Primary request / Style / Avoid。
两批的画面气质确实不一样。第二批场景具体、叙述细节多,读起来像一句句在描述一个地方;第三批留白大、物件少,画面更硬。
这里得留个口子:三批的题材、交付尺寸、生成渠道都不完全相同,把差别全算到顺序头上不成立。我能说的是——字段顺序和字段数量改掉之后,语感确实跟着变了。想要多稳、写多细,跟这个有关。
那套 13 个字段里还有一处安排是有意的:Constraints 和 Avoid 都排在最后。它们写的是不许出现什么、要避开什么,这种信息留在末尾,不去抢前面主体的注意力。要是把这两行挪到开头,模型先记住的是一堆「不要」,画面会变得缩手缩脚。
权重语法:括号改的是「抓多牢」
显式权重是 `(词:1.2)` 这种写法。嵌套括号是乘法,`((词))` 约等于 1.1×1.1,叠到三层以上就开始失真。方括号 `[词]` 是往下减。具体倍率和范围各家实现有出入,用之前先确认自己那个工具支不支持。
更要紧的是:这套语法不通用。有的平台用双冒号做相对权重(`日落::2 山::1`),括号写进去只当普通标点;有的工具压根不认负面词和权重语法。同一段括号搬到别的工具里,可能什么都没发生,你还以为是「权重没用」。这条我是联网查过才敢写的——不同实现差别很大,别凭记忆套。
权重能做的事其实很窄:它只在几个词之间分配注意力。整条提示词的骨架乱着,调权重只是把乱的顺序换一种乱法。
拆字段时最容易踩的一个坑,是把参数和内容混在一行。「16:9,高质量,8k,一个撑伞的人走过石桥」——比例、质量词、主体挤在一起,模型分不清哪部分是画面内容、哪部分是输出规格。更极端的写法是整条提示词一句两百字的长句,读起来信息很全,跑出来每次差得都远。
我的取法:先顺序,后权重,一次只动一个
按代价从低到高排:
- 先把提示词拆成字段,一行一个职责。主体、风格、光、色、材质分开写,别全揉在一句里。字段怎么切,可以看 提示词的结构:谁先谁后,为什么影响结果。
- 顺序定下来就尽量别动。要比较效果,也只改一行。
- 权重只在个别词上用,范围压在 1.1–1.3。我见过一条提示词里七八个词都挂 1.5 以上,画面会糊成一团,元素互相挤。
- 换工具要重试一遍。语法不通用,别默认它会生效。
不确定的也说一句:不同模型对词序的敏感度不一样。偏自然语言那类模型更吃整句描述,靠前靠后的差别没那么大。所以别把上面当公式抄。
正面词、负面词、材质词各自在管什么,可以接着看 负面提示词的真正用法 和 材质词的颗粒度:写「丝绸」还是写反光,几篇放在一起看,提示词这块的分工就清楚了。同类文章都在 提示词 分类下。
下次改提示词之前,先把现在这条按字段拆成一行一行的,看哪一行在替别的行干活。多数时候你会删掉两行,画面反而更清楚。