想让改动既有效又能说清楚是哪一项起的作用,通常的做法是把这次的修改分成两栏:描述侧包括主体、动作这类决定画面"有什么、在做什么"的内容,一次改完并固定成基线;参数侧包括画幅、尺寸、时长、seed 这类只影响呈现的设置,一次只动一项,每动一项就写下原值、新值和一句话结果差异。之后用同一份描述文本复跑,看差异是否落在同一类问题上,再判断这一项改动是否值得保留。描述定了又没记录时,宁可退回上一版基线重来,也不要在一堆同时变化的改动里猜原因。
描述侧与参数侧要分开处理:主体、动作这类语义内容一次改完,存成固定的描述文本作为基线;画幅、尺寸、时长、seed 这类设置一次只动一项,并在改动记录里写下改动项、原值、新值和一句话结果差异。一项改动是否有效,用同一份描述复跑两次,看两次差异是否落在同一类问题上。记录不全或复跑结果分散时,先固定 seed,不要同时改描述。
把这次要改的东西列成两栏
在动手之前,先把这次要改的东西写成两栏清单。归属判断只有一条:改动会不会改变画面里"有什么、在做什么"——会,就归描述侧;只改变呈现形式(画幅比例、输出尺寸、时长或帧数、seed、输出张数),归参数侧。主体从"一只猫"细化为"一只橘猫"属于描述侧;把画幅从 1:1 换成 16:9 属于参数侧。这条分界不依赖具体版本的界面,通常都成立。
描述侧(改语义,一次改完)
- 主体:一只猫 → 一只橘猫(品种与毛色写死,之后不再换)
- 动作:趴着 → 从窗台跃向木桌(动作写死)
- 环境与光线:午后侧光,浅景深,木地板
- 固定项:不出现人物,不出现文字水印
参数侧(改呈现,一次只动一项)
- 画幅比例:1:1 → 16:9
- 输出尺寸:默认 → 1440 级别
- 时长或帧数:默认 → 5 秒
- seed:未固定 → 固定为 12345
- 步数 / guidance:默认 → 待定,最后再试
填写这份两栏清单时,每一行只放一个能单独回退的项。如果某一项没法单独回退(例如"画幅和构图一起调"),就拆成两行,否则记录表里会出现一行对应多个变量的情况,归因就又断了。参数的准确名称在不同界面和接入方式下不完全一样,具体字段需要结合你实际使用的界面确认,这里只给通用的归属方式。
描述侧一次性改完再跑
描述可以一起改,原因是它是一段互相关联的文字:主体、动作、环境共用同一组词,分几次改容易出现"动作换了、环境里还留着旧词"的不一致,而这种不一致本身又会被误当成参数效果。描述改动的意图通常也很明确——就是重写这一段,所以一次改完、跑通一次,比拆成三次更有意义。参数改动不同,参数改动多数时候只是试一个值,所以必须隔离。
下面是一份把主体和动作写死的描述示例,替换掉你自己要用的主体和动作即可:
主体:一只橘猫(全程固定,不换品种与毛色)
动作:从窗台跃向木桌,四肢舒展
环境:午后侧光,浅景深,木地板
风格:写实摄影,35mm 视角
固定项:不出现人物,不出现文字水印
改完不要只留在对话框里,先把这一版落成一个文件,作为基线:
description_v1.txt
---
主体:一只橘猫(全程固定,不换品种与毛色)
动作:从窗台跃向木桌,四肢舒展
环境:午后侧光,浅景深,木地板
风格:写实摄影,35mm 视角
固定项:不出现人物,不出现文字水印
# 通用骨架,变量的引用方式按你的环境替换
PROMPT_BASE=$(cat description_v1.txt)
echo "${PROMPT_BASE}" # 跑之前先打印,确认引用的是哪一版
基线定下来后约定两件事:之后每组参数实验都从 description_v1.txt 出发,描述不允许随手改;确实要改描述,就另存为 v2,并把 v1 时期做过的参数实验视为与 v2 不可比,不要在 v2 上继续沿用旧结论。
参数侧一次只动一项并记录结果
参数侧的目标是建立可对照的样本,所以一次只动一项,跑完立刻写一行记录,不要攒到最后补。记录表至少包含四个字段:改动项、原值、新值、结果差异一句话。结果差异只写一处能看见的变化,例如主体是否完整、动作是否还在、构图是否被裁切,不要写成"好多了"这种无法复查的话。
描述版本:v1(不变)
| 改动项 | 原值 | 新值 | 结果差异一句话 |
| 画幅比例 | 1:1 | 16:9 | (待填,只写一处可见差异) |
| seed | 未固定 | 12345 | (待填,先看复跑是否一致) |
| 时长帧数 | 默认 | 5 秒 | (待填,动作是否完整执行) |
上表是填写格式示意,结果列的内容需要你跑完再写,不要照抄。建议的试验顺序是:先固定 seed,再动画幅或输出尺寸,最后才动时长、步数这类影响细节的量。seed 没固定时,其它参数引起的差异很容易和随机波动混在一起,记录表里那一行也就失去意义。
用同一描述复跑一次确认不是偶然
同一份描述文本、同一组参数,至少跑两次,条件允许就跑三次。判断标准不是"看起来差不多",而是把两次结果的差异归到类别上:主体是否出现并保持同一外观、动作是否执行、构图是否被裁切、水印或多余元素是否出现。如果两次差异落在同一类问题上,说明这一现象与当前描述或参数稳定相关,可以继续归因;如果两次差异分散在不同类别,说明这次结果本身在波动,这一行记录先不要用来下结论,固定 seed 或减少随机项后再复跑,描述保持不动。
复跑检查(同一描述 + 同一参数)
1. 两次的主体是否保持同一外观 □ 是 □ 否
2. 两次的动作是否都执行 □ 是 □ 否
3. 两次的构图裁切是否一致 □ 是 □ 否
4. 差异是否集中在同一类问题上 □ 是 □ 否
第 4 项为"是":该行改动记录可用于归因
第 4 项为"否":先固定 seed 再复跑,不要改描述
这套做法的用处是把"改好了但不知道为什么"变成一条能对得上的记录,它不保证每动一项都会变好,也不代表换个模型或换套参数名还能照搬。参数名和各字段的取值区间在不同界面、不同接入方式下可能不同,需要结合你的环境确认;描述侧与参数侧分开、参数侧一次一项,这两条原则是通行的,其余细节按实际界面调整。