AI 视频不是会动的图片:用 Shot Contract、时间码与音画质检构建可交付流水线
一次 45 秒的产品短片项目里团队生成了 18 个看起来都不错的镜头。单独暂停检查每个画面都能用产品材质清楚、人物五官完整、光线也符合品牌调性。真正放进剪辑时间线后问题同时暴露出来主角在相邻镜头里换了耳饰产品旋钮从左侧跳到右侧24 fps 的素材被当作 25 fps 解释台词比口型早了四帧环境声在每个切点重新起奏。画面质量并不差但它不是一条能够交付的视频。返工过程更说明问题。创作者不断修改提示词希望模型“更一致”却没有记录镜头使用的时间基准、首尾锚点、角色状态、场景轴线和音频入点。一个镜头重生成后后续三个镜头都需要跟着调整剪辑师只能靠文件名猜版本客户在审片单上写下“人物不太像”团队却无法判断是身份漂移、表情变化、镜头焦段还是色彩空间造成的观感差异。AI 视频工业化的核心并不是批量调用文生视频或图生视频接口而是把不可控生成过程装进一个可测量的媒资系统。每个镜头先定义 Shot Contract明确画幅、帧率、时长、角色、动作、空间方向、首尾锚点与声音职责生成任务产出带血缘的候选版本连续性检查比较身份、场景、运动与色彩音频按照统一时间码对齐最后由确定性工具完成转码、拼接和交付验证。本文选择的参数属于多模态资产工业化方向但与静态图局部重绘、扩图和超分不同主线集中在时间维度。关键词包括 Kling 视频、首尾帧控制、时间码、恒定帧率、角色身份漂移、光流、镜头连续性、FFmpeg、音画同步、响度和交付清单。创源AIGC仅作为可以替换的模型联调节点成片规格、素材血缘、审片结论和发布责任仍由本地媒资平台维护。一、先定义“能交付”镜头漂亮只是视频质量的一部分静态图的质量判断主要发生在单张画面内部视频质量还包含跨帧、跨镜头和跨声道关系。同一人物在一帧中五官正常不代表三秒内不会逐渐变脸一段运镜本身流畅不代表切到下一个镜头时轴线正确配音音质清晰不代表爆破音和口型在同一时间点发生。只用“画面好不好看”做验收会遗漏真正消耗后期时间的问题。可以把可交付质量拆成五个维度。画面内质量关注构图、纹理、手部、文字和物理错误时序质量关注闪烁、形变、速度突变和物体生命周期连续性质量关注身份、服装、道具、空间方位与光照声音质量关注同步、底噪、响度、声像和混音余量技术质量关注编码、帧率、色彩、采样率、字幕与容器。五个维度任何一个失控最终文件都可能无法使用。因此项目开始时要先写 Delivery Profile而不是先选模型。Profile 至少确定分辨率、显示宽高比、帧率、扫描方式、像素格式、色彩原色、传递函数、矩阵系数、音频采样率、声道布局、目标响度、字幕格式和最大码率。社交平台竖屏、影院预演、电视播出和网页背景对这些参数的要求并不相同不能等生成结束再统一“导出成 MP4”。时间基准尤其容易被忽略。23.976 fps 实际常写作 24000/100129.97 fps 常写作 30000/100124、25 和 30 则是整数帧率。把 24000/1001 的素材误解释成 24会在长片中逐渐产生声画偏移。Drop-frame timecode 只是特定非整数帧率下的编号规则不会真正删除视频帧也不应被误用于所有项目。技术规格之外还要定义叙事验收。一个镜头的职责可能是“建立空间”“展示操作”“表达反应”或“完成转场”。若模型生成了更华丽的动作却破坏了下一个镜头需要的手势和视线它仍然不合格。Shot 的通过条件应包含必须出现的叙事事实、禁止出现的元素、允许变化的范围和与前后镜头的接口。真实项目可以先做 8 到 12 秒的 Continuity Probe。用两三个相邻镜头测试角色身份、道具方向、动作接续和声画同步再决定是否扩大生成规模。若连短探针都无法稳定通过就应调整美术方案、减少动作复杂度或改用可控的三维、实拍和合成方式。直接生成几十个镜头只会把同一种不确定性复制得更昂贵。质量指标也不能脱离用途。背景氛围视频可以容忍局部纹理漂移但产品结构演示不能改变按钮位置快速蒙太奇可以利用跳切连续对话则对视线、口型和环境声更敏感。验收阈值应跟随镜头职责而不是全片使用一个相似度分数。所谓“高质量”最终是满足确定用途而不是在单一模型评分上达到最高值。二、Shot Contract把画幅、动作、时间和声音写进同一份契约Shot Contract 是镜头进入生成队列前的结构化约定。它不是更长的提示词而是连接编剧、分镜、美术、模型、剪辑和质检的接口。提示词描述模型应该生成什么Contract 还描述素材如何解释、如何与相邻镜头连接、哪些字段可以变化以及失败后如何定位。一份 Contract 至少包含 shot_id、sequence_id、duration、frame_rate、resolution、timecode_in、narrative_intent、characters、props、location、screen_direction、camera、action_beats、start_anchor、end_anchor、audio_cues、negative_constraints 和 acceptance_checks。每个字段使用稳定枚举或引用避免不同人员用“右边”“画面右侧”“人物的右手边”表达三种不同概念。下面是一份简化示例{shot_id:SQ03-SH070,duration_frames:96,frame_rate:{num:24,den:1},resolution:[1920,1080],timecode_in:01:00:18:12,narrative_intent:show the operator locking the safety latch,characters:[operator-v4],props:[device-blue-v7],screen_direction:operator_moves_left_to_right,camera:{shot_size:medium_close_up,movement:slow_push_in,lens_equivalent_mm:50},action_beats:[{frame:18,event:hand_contacts_latch},{frame:62,event:latch_clicks_closed}],start_anchor:asset://anchors/SQ03-SH070-A,end_anchor:asset://anchors/SQ03-SH070-B,audio_cues:[{frame:62,event:metal_click,tolerance_frames:1}]}时长建议以帧数保存以秒数作为显示值。duration_frames96在 24 fps 下是四秒在 24000/1001 下则略有差异。所有动作节拍、字幕入点和音效标记都引用同一时间基准避免一个系统使用毫秒、另一个系统使用浮点秒、剪辑软件又使用时间码字符串。转换函数集中维护不允许业务脚本各自四舍五入。角色、道具和场景不直接复制描述文本而是引用版本化资产。operator-v4可以关联角色多视图、服装层、发型、允许表情和禁止特征device-blue-v7关联结构图、材质、标识位置和左右方向。模型提示词由这些资产编译生成但审片记录仍回到稳定 ID。角色换装时创建新版本不能静默覆盖旧定义。Start Anchor 与 End Anchor 是相邻镜头之间的接口。前一个镜头结束时人物的姿态、视线、手中物体和运动方向应能映射到后一个镜头开始状态。锚点可以是真实帧、姿态骨架、深度图、分割图或结构化状态不必全部交给生成模型但必须保存。没有端点约束的独立生成往往会在剪辑点产生最明显的跳变。Contract 还需要显式记录不确定性。模型可能不支持精确焦段、绝对帧动作或可靠的尾帧控制此时 capability 字段标记 exact、approximate 或 unsupported。调度器只能把硬约束镜头交给能力满足的工具若没有任何候选满足就应返回 needs_manual_plan而不是生成一个看似接近的版本后把问题留给剪辑。契约修改必须产生 revision。改变帧率、镜头时长或动作节拍会影响音频、字幕和相邻镜头属于破坏性变更调整提示词中的纹理形容词可能只是局部变更。系统根据字段差异计算影响范围决定重生成当前镜头、重新做声音还是重新验证整个序列。这样返工从“凭经验重做”变成可追踪的依赖更新。三、连续性账本角色、道具、空间与光照如何跨镜头保持一致连续性不是一句“保持人物一致”能够解决的要求。人物可能在身份上相同却在年龄、脸宽、发色、服装纹理或惯用手上漂移道具可能颜色相同却在按钮数量和朝向上改变空间可能陈设一致却违反了人物移动方向和视线轴。需要把“相同”拆成可观察的状态。Continuity Ledger 为每个序列保存角色状态、道具状态、场景状态和摄影状态。角色状态包括身份版本、服装层、发型、妆容、受伤或污渍、手持物与屏幕位置道具状态包括版本、完整性、开关状态和所属角色场景状态包括时间、天气、主要光源、门窗状态和可移动物摄影状态包括轴线、镜头高度、运动方向和色彩意图。Ledger 采用事件追加而不是覆盖当前值。镜头 SH050 中角色拿起杯子记录prop_acquiredSH080 放下杯子记录prop_released。若 SH060 生成结果里杯子消失质检器可以定位为生命周期断裂而不是泛化地说“画面不一致”。审片人员确认某个跳切是有意设计时写入 approved_discontinuity并说明范围和原因。角色身份可以结合人脸嵌入、局部特征、服装分割和人工参考图比较但任何单一相似度都不等于身份正确。表情、侧脸、遮挡、强光和焦段会改变嵌入距离同一模型还可能对不同人产生过高相似度。项目应在真实候选帧上校准阈值并保留 uncertain 区间高于通过阈值自动标记稳定低于失败阈值进入返工中间区域交给人工。产品和道具更适合结构检查。对有固定几何的设备可以比较关键点、边缘、Logo 区域和部件数量对软性物体可以比较颜色、纹理和拓扑。生成模型常把文字和接口位置改掉因此高风险产品镜头应采用实拍、三维渲染或后期合成把生成模型限制在背景、光效或非结构区域。空间连续性需要维护 screen direction 和 eyeline。人物连续向画面右侧移动时未经建立镜头切到反方向会产生轴线跳跃对话双方的视线方向必须互补开门前后门轴和把手位置不能互换。二维相似度很难发现这些叙事错误因此 Contract 中要保留角色屏幕位置、面朝方向、运动向量和场景拓扑。光照连续性既有物理层也有风格层。主光方向突然翻转会改变脸部阴影白平衡漂移会让相邻镜头看起来像不同场景。可以从锚点估计亮度直方图、色温、主光方向和高光比例生成后再比较。自动指标只用于发现异常最终调色仍应在统一色彩管理下完成不能让每个镜头单独套一层“看起来相近”的滤镜。连续性还需要预算。快速动作镜头允许较大的局部形变产品特写则几乎不允许结构漂移梦境转场可以有意改变光照对话反打则需要严格保持。每个 Shot 为 identity、geometry、motion、color 和 prop_state 分配 tolerance质检器按职责选择阈值。预算超限不一定立即报废也可以触发局部修复、缩短镜头或改变剪辑点。最重要的是保留人工裁决。自动系统能发现“与前镜头差异很大”却不知道这种差异是错误还是叙事意图。人工接受一次不连续时必须关联镜头、指标和理由不能直接关闭整类检查。否则为了通过一个创意转场而降低全项目阈值会让真正的身份漂移一起漏过。四、从关键帧到运动段把视频生成拆成可回退的时序流水线直接用一段长提示词生成十几秒视频失败后往往只能整段重来。更可控的方式是把 Shot 分解为外观锚定、运动规划、时序生成、局部修复和确定性封装。每一层产生独立资产和证据下一层失败时可以回退到最近的稳定节点而不是从提示词重新抽取一次随机结果。外观锚定阶段先确定 Start Anchor 和 End Anchor。人物身份、服装、道具结构、场景构图和光照在静态条件下通过审核再进入运动生成。若模型支持首尾帧约束可以同时提交两个锚点只支持首帧时End Anchor 仍可作为生成后的验收目标。复杂转身、物体交接和镜头遮挡不适合只靠两帧约束还需要中间动作节拍。运动规划不必等同于自然语言。可以使用姿态序列、相机轨迹、深度变化、遮罩区域或简化的 Motion Script。Script 描述主体在第几帧开始动作、速度曲线、屏幕方向、相机是否跟随以及必须静止的区域。模型不支持精确帧控制时调度器将这些要求转换成近似提示与多候选策略并在结果中标记控制精度。生成段不宜无限加长。持续时间越长身份、结构和运动误差越容易累积。项目可以根据动作复杂度设置最大生成段例如稳定景别允许四到六秒复杂手部交互缩短到一到三秒。长镜头通过多个重叠段拼接重叠区保留足够帧用于选择切点或过渡。拆段会增加编排成本但能显著降低整段报废的代价。帧插值只能解决采样密度不能修复错误运动。若原始关键帧中手臂穿过物体光流插值只会生成更平滑的穿模过程。插值前先验证物体轨迹、遮挡顺序和边界稳定插值后检查重复帧、局部撕裂和速度突变。需要慢动作时优先在生成计划中预留高帧率或动作阶段而不是在成片后无条件放慢。局部修复也要理解时间。单帧重绘可能让问题帧看起来正确却在前后帧中形成闪烁。时序修复应使用连续遮罩、相邻帧上下文和跟踪结果在一个短窗口内共同处理。修复资产保存 mask_track、source_range、reference_asset 和 repair_model防止后续重生成覆盖已经批准的区域。运动质量可以分解为速度连续、加速度连续、轨迹偏差、形变稳定和遮挡合理。光流用于估计相邻帧运动场但在运动模糊、透明物体和大遮挡下并不可靠姿态关键点适合人物骨架却无法判断手指和服装分割跟踪适合物体生命周期却可能随背景相似而漂移。多个弱信号组合后仍需保留人工抽检。每个候选片段都携带 lineage输入锚点、模型版本、参数、随机种子、生成时间、后处理步骤和父资产。剪辑师选择候选 B 后系统冻结该版本的 content hash后续调色、插值和音频对齐都引用同一哈希。文件名可以给人阅读但不能承担版本身份否则final_v7_really_final.mp4迟早会重新出现。确定性工具负责最后封装。裁切、缩放、颜色转换、补帧标记、音频重采样和容器复用由固定版本的 FFmpeg 或媒体服务执行并保存完整参数。模型生成的素材可能带可变帧率、错误旋转元数据或不一致色彩标签进入时间线前必须规范化。生成与封装分离后模型升级不会改变已批准的交付语义。五、声音不是最后贴上去台词、口型、音效与时间码共用一条轴许多 AI 视频流程先做完整画面最后才考虑声音。这会产生两个问题台词长度决定不了镜头时长动作节拍也没有给音效留下准确入点。更合理的方式是先建立 Dialogue Sheet 和 Cue Sheet把台词、呼吸、动作声、环境声和音乐段落映射到 Shot Contract 的帧坐标。对白驱动镜头通常先锁定可接受的语音节奏。配音生成或真人录音完成后得到词级或音素级时间戳再规划口型镜头的持续时间和切点。若视频先生成四秒而自然台词需要五秒强行加速音频或重复画面都会降低质量。对于关键对白应让声音约束画面而不是让台词迁就一次随机生成结果。口型同步不能只比较音频波峰。不同音素具有不同嘴形闭唇音、齿唇音和元音的视觉特征不同人物侧脸、遮挡和快速剪辑也会影响可见度。自动检查可以比较音素时间戳与嘴部开合、关键嘴形和静音段但评分需要按景别校准。远景中一两帧误差可能不可见特写中的同样误差会非常明显。动作音效以事件帧为中心。Contract 中latch_clicks_closed发生在第 62 帧音效允许误差一帧剪辑变速或镜头缩短时Cue 随事件重映射而不是保持原毫秒位置。脚步、碰撞和开关声都适合这种事件绑定。环境声则跨镜头维护连续 Bed避免每次切换都从静音重新淡入。音乐需要区分叙事节拍和技术长度。节拍点可以用于切镜但不能为了贴合音乐而破坏动作连续生成式音乐的段落边界、和声变化和尾奏应以 Stem 或可编辑结构交付。对白、音乐、环境和音效分轨保存最终混音后仍保留可回溯关系。只交付一条混合音轨会让后续版本无法单独修复口型或响度。音频技术规格通常采用 48 kHz 作为视频制作采样率但位深、声道布局和目标响度要按交付渠道确定。不同播出与平台规范可能采用不同 LUFS 和 True Peak 阈值不能把一个网络短片预设当作通用标准。项目在 Delivery Profile 中固定目标质检同时报告 integrated loudness、loudness range、true peak、静音区间和削波。视频与音频使用同一主时钟。音频以采样点计数视频以有理数帧率计数二者转换时避免浮点累计。对长序列定期检查 clap、口型事件或已知同步标记的偏移趋势。如果偏移随时间线性增长通常是采样率或帧率解释错误如果只在某个剪辑点跳变则更可能是局部重定时没有同步更新音频。字幕也是时序资产。字幕入点、出点、每行长度、安全区域和阅读速度需要单独验证烧录字幕与外挂字幕使用不同流程。台词修改后字幕、口型和配音共同失效依赖图应提示重新处理范围。模型可以辅助断句与翻译但专有名词、数字、单位和合规文本必须由确定性词表或人工复核。声音质检不能只在耳机上完成。除了波形和响度检查还要抽检手机扬声器、普通笔记本和目标播放环境。立体声相位抵消可能在单声道设备上丢失元素过低的低频会在小设备上消失高噪声环境会掩盖轻声台词。技术指标提供边界真实设备负责确认使用效果。六、模型接入只是一个工位任务协议、中继节点与数据边界视频流水线可能同时调用文生图、图生视频、插帧、口型、配音和音乐模型。若每个环节直接绑定厂商字段模型升级或切换后Shot Contract 很快会被各种私有参数污染。更稳妥的方式是定义内部 Job Protocol再由适配器把任务转换为 Kling、其他云端模型、本地开源项目或统一中继所需格式。Job Protocol 描述 task_id、asset_inputs、capability_requirements、duration_frames、frame_rate、anchors、motion_constraints、content_policy、delivery_preview 和 callback。模型特有参数放在 namespaced_options 中不能反向覆盖硬性 Contract。调度前先做能力匹配不支持尾帧约束的模型不能接收必须精确落在 End Anchor 的镜头。联调环境可以这样配置可替换节点video_generation_node:protocol:openai-compatiblebase_url:https://178.nz/yinc/v1api_key_env:VIDEO_PIPELINE_TOKENroute_alias:temporal-video-previewaccepted_context:approved-anchors-onlycallback_mode:signed-webhooktool_calls:disabledtimeout_seconds:180这里的创源AIGC或其他中继负责协议适配、任务转发和调用记录不拥有镜头状态也不决定候选是否通过。Shot Contract、Continuity Ledger、审批结果和交付资产保存在团队自己的媒资系统。中继失败时可以更换节点已经批准的锚点、时间码和审片意见不需要重建。提交给外部模型的素材必须按最小必要原则选择。角色锚点可以只包含当前服装和角度不必发送整套未发布素材产品参考图去除序列号、客户信息和无关背景语音任务只提交对应台词不上传完整采访录音。每次任务记录 input_manifest、脱敏规则和授权用途方便后续删除与审计。回调结果不能被直接信任。接收端校验签名、task_id、content length、媒体类型和文件哈希再把文件放入隔离区。随后使用媒体解析器读取轨道、帧率、分辨率、时长和编码信息不符合协议的结果标记 invalid_artifact。模型返回的文件名、元数据和预览地址都不能直接成为内部路径或执行参数。异步任务需要幂等键。一次网络超时不代表生成失败盲目重试可能产生多个计费任务和多个不同结果。idempotency_key由 Shot revision、输入资产哈希、能力需求和请求参数生成状态机区分 submitted、accepted、running、succeeded、failed、unknown 和 canceled。unknown 状态先查询远端不立即创建新任务。模型比较要使用相同 Contract 和审片标准。评测记录首个可用候选率、身份通过率、端点匹配、运动异常、人工修复分钟数、生成延迟和单位有效秒成本。一次生成价格低但需要大量局部修复的模型真实成本可能更高。相反最昂贵的候选也不一定适合所有镜头简单背景段落可能不需要最高控制能力。系统还必须允许模型缺席。确定性剪辑、素材管理、音频对齐、媒体质检和交付封装不能依赖模型服务在线。模型不可用时队列暂停新生成但现有素材仍能审片、修复和交付。把媒资事实与生成服务分开才有真正的迁移能力。七、自动质检不替代审片用 FFprobe、光流和参考指标筛出高风险片段视频审片成本高逐帧人工检查又容易疲劳。自动质检的合理目标不是宣布“视频好看”而是把技术错误和高风险时间段提前标出来让审片人员把注意力放在可能出问题的位置。质检分为容器与轨道、帧级异常、时序连续、跨镜头连续、音频与字幕六层每层输出证据和时间范围。第一层使用 FFprobe 读取容器不依赖文件扩展名。检查视频流数量、编码、宽高、显示比例、像素格式、平均帧率、真实帧率、时基、总帧数、色彩标签和旋转元数据音频检查采样率、声道布局、时长和起始时间。轨道时长差超过容差、帧率与 Delivery Profile 不符或色彩字段缺失时素材先进入规范化流程不直接送入剪辑。ffprobe-verror\-show_entriesstreamindex,codec_type,codec_name,width,height,pix_fmt,r_frame_rate,avg_frame_rate,time_base,sample_rate,channel_layout,color_space,color_transfer,color_primaries\-show_entriesformatduration,format_name\-ofjson candidate.mp4r_frame_rate和avg_frame_rate不能只看其中一个。可变帧率素材可能在平均值上接近目标却无法保证每帧时间间隔一致。流水线可以读取每帧 PTS计算相邻时间差分布若项目要求 CFR则在规范化时按照明确策略重复或丢弃帧并保存变换报告。不能只修改容器帧率标签因为那会改变播放速度而不修复时间戳。帧级异常包括黑帧、冻结帧、重复帧、纯色闪烁、解码错误和边界破损。FFmpeg 的 blackdetect、freezedetect、signalstats 等过滤器能提供初筛但阈值要按内容校准夜景不等于黑帧静止产品镜头不等于冻结闪光灯也可能是叙事设计。检测结果保留 start_frame、end_frame、metric、threshold 和 detector_version供人工确认。时序连续检查可以结合光流残差、相邻帧感知距离、分割面积变化和关键点速度。正常运动会产生连贯的向量场局部结构突然重绘、人物五官跳变或背景纹理闪烁会形成异常残差。LPIPS 等感知距离可用于寻找突变却不能直接衡量视频质量快速切镜本就应该产生大差异因此必须先读取编辑点或进行场景切分。参考指标也有适用边界。VMAF、PSNR 和 SSIM 更适合比较编码或处理前后的参考视频无法判断一个无参考生成镜头是否符合美术意图。若存在批准锚点可以比较端点结构与色彩若存在低分辨率原始生成可用参考指标检查超分或转码是否过度损坏。没有参考时应报告具体异常而不是伪造一个综合“质量分”。跨镜头检查读取 Continuity Ledger。系统在切点前后各取若干帧比较角色身份区间、道具状态、运动方向、视线、主色和曝光。发现产品按钮位置变化时报告对应 keypoint发现角色疑似变脸时给出相似度、遮挡比例和参考帧。提示越具体返工越容易一句“连续性得分 63”几乎没有操作价值。音频检查包括响度、True Peak、削波、静音、底噪、相位和声画偏移。字幕检查时间重叠、显示时长、安全区域、非法字符和台词覆盖。对白口型检测只在嘴部可见且景别足够时启用避免远景和背影制造大量假警报。各检测器都保存适用条件不适用时返回 skipped_with_reason而不是默认通过。自动质检结果进入 Review Timeline。审片人员点击异常即可跳到具体帧段选择 confirmed、false_positive、intentional 或 needs_context。反馈用于校准阈值和镜头类别但不能让模型自动学习后立即修改门禁。阈值变更先在历史项目回放确认没有显著增加漏检后再发布新版本。八、生成昂贵返工更昂贵队列、断点恢复与单位有效秒成本视频生成的成本不能只看单次调用价格。一次任务还会占用上传、排队、下载、存储、转码、质检、审片和修复资源失败镜头可能牵连配音、字幕与后续镜头。更有意义的指标是“单位有效秒成本”最终被批准并进入成片的一秒视频累计消耗了多少生成、计算和人工时间。流水线把每个 Shot revision 编译成有向任务图。锚点批准后才能生成运动段运动段通过基础质检后才能插值画面时长冻结后才能做最终口型和混音。互不依赖的镜头可以并行同一角色和场景的镜头则可以共享已批准资产。任务图明确依赖后失败只会使后继节点失效不必重跑已经冻结的上游。每个任务包含 idempotency_key、input_hashes、executor_version、attempt、resource_budget、lease_until 和 output_expectation。Worker 获得有限租约超时后任务可以被其他节点接管原 Worker 晚到的结果只有在 lease 与 revision 仍匹配时才被接收。这样可以避免网络抖动后两个 Worker 同时把不同候选写成“最终版本”。断点恢复依赖内容寻址存储。上传完成的锚点、模型返回的原始视频、规范化中间件、检测报告和审片代理文件分别保存任务状态只引用哈希。转码节点失败时从原始视频继续字幕修改时不重新生成画面模型切换时保留此前通过的锚点。中间资产按项目策略保留交付后再分层归档或清理。重试必须按错误类别处理。429、队列满和临时网络错误适合带抖动的退避参数不支持、内容策略拒绝和输出结构错误需要修改任务盲目重试没有意义远端状态 unknown 先查询再决定同一输入连续产生运动崩坏应该升级为 plan_revision而不是继续抽取随机种子。每类错误设置最大尝试次数和人工接管条件。容量规划按任务类型而不是统一并发数。视频生成占远端额度插帧和超分占 GPUFFprobe 解析占 CPU代理文件占网络与存储审片占人工队列。某一阶段积压时系统实施背压暂停低优先级预览保留已批准交付任务。无限制地接收新 Shot 只会拉长尾延迟并产生更多过期候选。预览与母版需要分级。早期审片可以使用低分辨率、低码率代理文件验证动作、连续性和剪辑节奏画面通过后再生成或处理高质量版本。若模型的高低质量模式语义并不一致预览只能用于构图参考不能假设母版必然复制运动。系统在 capability 中标注 preview_fidelity避免把廉价预览当作可靠预演。成本账本按 shot_id 和 revision 聚合模型调用、失败尝试、GPU 分钟、存储、人工审片与修复分钟。被废弃的版本仍计入探索成本因 Contract 变更导致的重做与模型自身失败分开统计。这样团队才能判断成本来自需求漂移、生成不稳定、质检误报还是后期流程而不是笼统地认为“AI 视频太贵”。预算门禁可以设置最大候选数、最大生成分钟、最大人工修复时长和最高单位有效秒成本。达到预算时系统返回已有候选、失败分布和可选动作降低动作复杂度、缩短镜头、改用合成、调整剪辑或申请追加预算。自动继续生成通常是最不透明的选择也最容易形成沉没成本。缓存只复用确定性相同的结果。输入哈希、Contract revision、模型版本和完整参数一致时可以复用远端结果随机探索即使参数相同也可能有意需要新候选必须显式声明 cache_policy。规范化、代理转码和质检在工具版本相同时可以稳定缓存减少重复计算。九、交付不是一个 MP4母版、代理、清单与不适用边界一个可维护的视频项目不能只交付final.mp4。最小交付包应包含母版视频、平台分发版本、音频分轨、字幕、封面或关键帧、Shot Manifest、字体与许可说明、第三方素材清单、自动质检报告和人工批准记录。项目是否需要源锚点、模型参数和中间资产则由合同、保密与复现要求决定。Master Manifest 记录成片哈希、总时长、起始时间码、帧率、分辨率、色彩与音频规格、每个 Shot 的帧范围和来源资产。剪辑点变化后重新生成 Manifest不能手工维护两份互相矛盾的表格。任何分发版本都指向同一母版 revision并保存裁切、字幕、安全区和码率变换。交付前做一次从空环境开始的重建演练。系统读取冻结的 Manifest验证所有素材存在、哈希匹配、工具版本可用、时间线可解析并输出与批准母版一致的技术结果。生成模型不一定能重现相同像素因此已批准的原始生成资产必须归档可重建的是后处理和封装流程不应虚假承诺随机生成本身完全确定。版权和授权信息与资产血缘一起保存。角色参考、音乐、声音、字体、Logo 和客户素材分别记录来源、用途、地域、期限和是否允许进入模型。模型服务的输入保留与训练政策需要按实际合同核验不能从“接口兼容”推断。授权到期时媒资系统能够定位受影响的镜头与分发版本。并非所有视频都适合生成式流水线。产品结构必须完全准确、医学或法律信息不能形变、人物肖像授权有限、动作需要严格物理可控、长镜头必须多次修改或项目要求逐帧可复现时实拍、三维动画、动作捕捉和传统合成通常更可靠。生成模型可以参与概念预演和背景探索但不必承担最终画面。小型一次性内容也未必需要完整平台。只有两三个镜头、没有长期复用、失败代价很低时人工文件管理加一份清晰 Shot 表可能已经足够。引入任务图、内容寻址存储和多层质检会增加学习与维护成本。工程化程度应随镜头数量、版本频率、团队规模和交付风险增长。停止条件必须在开工前写清楚角色身份连续多轮无法达标、产品结构反复变形、单位有效秒成本超过预算、人工修复时间接近传统制作、授权无法确认、模型输出无法满足技术规格或者关键镜头缺乏可靠控制时及时切换制作方式。继续抽取候选不是技术坚持而是延迟面对方案不适配。团队职责也要清楚。导演或内容负责人批准叙事与表演美术维护角色和场景资产技术导演维护 Contract 与连续性规则声音团队维护 Cue 和混音平台团队维护调度与存储质检人员维护检测器与交付 Profile法务或版权负责人确认授权。模型没有批准权也不承担最终发布责任。模型升级先从 Continuity Probe 和历史镜头回放开始。比较首个可用候选率、身份漂移、运动异常、端点匹配、声画同步、人工修复时间和单位有效秒成本。新版本画面更锐利如果连续性更差或无法读取旧锚点未必值得迁移。迁移结论应来自同一 Contract 下的对照数据。AI 视频真正成熟的标志不是能生成更长、更炫的片段而是镜头状态能够被描述失败能够被定位返工能够限制在局部声音和画面共享时间轴交付文件能够被验证。当模型只是流水线中的一个可替换工位团队才不会把项目成败押在一次随机输出上。单帧负责吸引目光时间关系负责让观众相信它是一段完整叙事。Shot Contract 固定镜头接口Continuity Ledger 维护跨镜头事实自动质检筛选高风险片段人工审片决定创作意图确定性媒体工具保证技术交付。把这些环节连起来AI 视频才从“会动的图片”变成真正能够修改、复盘和长期维护的数字资产。