同样一段描述,两次生成结果差得多,先别急着怀疑模型在随机发挥。在 ABot-World Studio 这类工具里,描述文本只是输入的一部分,素材文件、界面上的设置项、导出位置同样参与生成;这些条件中任何一项在两次之间被动过,或者根本没被记下来,结果就无法对比。可行的顺序是:先把每次生成的输入完整存成快照,再用逐字段比对排除“输入变了”,最后才讨论“结果本身有波动”。
两次生成不一样,通常不是单一原因造成的。建议先把描述原文、素材文件名与修改时间、界面关键设置、导出路径四类信息固定记录,再逐字段比对两次输入,把能填进界面的项固定下来,用同一组条件连跑两次,从场景结构、物体布局、色调倾向三个维度判断接近程度。界面未暴露的内部随机源和素材默认值通常无法固定,这部分要写进模板备注,而不是假装已经控制住。
把每次生成用的描述原文和素材版本存下来
先让每一次生成都能查得到。做法是在每次点击生成之前,手工或脚本写一条快照记录,与导出文件放在一起。下面是一个可替换字段名的通用骨架,字段值都填界面上实际显示的内容,不要凭记忆补写。
{
"run_id": "20250101-a",
"prompt_raw": "描述原文,逐字保留标点、换行、全角半角",
"assets": [
{ "file": "base_scene.png", "mtime": "界面或系统显示的修改时间", "size": "文件大小" }
],
"ui_settings": {
"resolution": "界面当前值",
"style_preset": "界面当前值",
"duration_or_ratio": "界面当前值",
"seed": "界面提供就填,未提供写 N/A"
},
"export_path": "导出目录/文件名"
}
四个字段各有用途:描述文本用于确认两次措辞是否一致;素材文件名加修改时间用于识别“同名不同内容”的替换;界面关键设置用于复现参数;导出文件位置用于把结果和输入对上号。修改时间这一项容易被省略,但它恰恰是排查素材被覆盖的主要线索。
对比两次输入到底哪里不一样
把两次快照都存成 JSON 文件后,先排序键名再比对,避免字段顺序造成假差异:
jq -S . run_a.json > a.sorted.json
jq -S . run_b.json > b.sorted.json
diff -u a.sorted.json b.sorted.json
差异通常落在三类位置:描述文本里的标点或空格变化、素材的 mtime 变化、ui_settings 里的某一项被改过或被重置。如果三项全部一致而结果仍然不同,说明问题不在输入侧,可以转到第 3 节处理。发现差异后不要只记“改过”,建议在快照旁边加一行备注,写明哪一项、原来是什么、现在是什么、是谁在什么时候改的;这条备注在后续复盘时比 diff 输出更好用。
确认哪些设置是可以固定下来的
把条件分成可控和不可控两栏,判断依据只有一条:这项在界面上能不能读到、能不能填、重跑时能不能不做人工干预。
| 类别 | 典型项 | 判断依据 |
|---|---|---|
| 可固定 | 描述原文(含标点与换行)、同一份素材文件、界面上显式可填的数值或枚举设置、导出目录与命名规则、同一工作区或账号 | 界面上有对应输入项,能写进快照并原样回填 |
| 不可固定 | 界面未暴露的内部随机源、服务端模型版本的更新、队列与并发带来的计算差异、未填写时系统自动取用的默认值 | 界面上找不到对应输入框,或填写完全相同但结果仍不同 |
不可固定项不等于放弃处理,而是要在模板里标注清楚,让后来看记录的人知道“这部分没被控制住”。如果界面提供 seed 一类字段,优先把它固定并写进快照;如果界面不提供,就在备注里写明当前版本不可控,不要用“已固定”去误导下次复现。
用固定条件连跑两次看结果是否接近
固定动作是否有效,要靠同一组条件连跑两次来验证,而不是凭印象觉得“差不多”。观察三个维度,记录时用具体描述,不要打分数:
- 场景结构:主体数量、前后层次、背景与地平线是否一致。接近的表现是同类元素出现在同一层级;不接近的表现是主体数量变化或背景被整体替换。
- 物体布局:相对位置、遮挡关系、疏密程度。接近的表现是主要物体的左右上下关系保持;不接近的表现是主要物体互换位置或遮挡关系反转。
- 色调倾向:整体冷暖、明暗分布。接近的表现是主色调落在同一区间;不接近的表现是整体偏冷偏暖发生明显偏移。
两次接近,说明固定动作起作用,可以把这组条件写成模板;两次差异集中在某一维度,说明该维度对应的输入仍有未固定项,回到第 3 节补记录;两次差异分散且无规律,通常指向不可固定项,应在模板里明确标注“结果存在波动,结构层面需人工确认”。
把稳定复现的一组条件写成模板
验证通过后,把这一组条件固化成可复用的模板,下次直接调用,不用重新摸索。模板至少包含:描述原文、素材清单(文件名加修改时间)、界面设置全部字段、导出目录规则、不可固定项备注。命名建议采用“用途-素材集-版本”的形式,例如 scene-a-base-v1,版本号在每次修改素材或描述后递增,避免旧模板被覆盖后无法回溯。
复用模板时仍有三项需要重新检查:素材是否被同名替换(对比 mtime 与大小)、界面默认值是否被改动(尤其是分辨率与风格预设)、描述文本是否存在隐性编辑(例如从文档粘贴带进的全角空格)。模板解决的是“少走弯路”,不能替代每次生成前的核对;把这三项写进模板头部作为检查清单,比事后追查更省时间。