Files
TrueGrowth/openspec/changes/update-video-character-asset-reuse/design.md

2.5 KiB
Raw Blame History

Context

现有 MV 与视频分析器脚本页都存在角色设定编辑能力,且生成流程依赖名称、描述和参考图保持人物或物品一致。素材库已能承载生成上下文资产,但视频复用需要一个更通用的“主体素材”语义,并且需要在两个工作流中保持同一套选择和回填规则。

Goals / Non-Goals

  • Goals:
    • 让素材库可区分主体素材,并在脚本编辑场景优先展示
    • 让用户可在素材库把图片设为主体,并填写独立于素材标题的主体名
    • 让 MV 与视频分析器脚本页使用同一套主体素材选择与字段回填规则
    • 让第 3 步明确反显最终会参与生成的主体参考图
    • 允许普通图片作为兜底,避免历史图片资产无法复用
  • Non-Goals:
    • 不新增独立角色管理系统
    • 不迁移或重写现有 MV/视频分析器记录结构
    • 不把素材图片转存为 base64 或大文本字段

Decisions

主体素材引用

脚本编辑数据继续以现有角色条目为落点,选中主体素材后只写入轻量字段:

  • name: 来自主体素材名称;普通图片兜底时可由素材标题/文件名推导
  • description: 来自主体素材描述;普通图片兜底时不强制覆盖
  • referenceImageUrl: 来自素材的可访问图片 URL

实现应避免把图片二进制、base64 或完整素材对象写入脚本记录,降低高并发文件处理场景下的内存和持久化压力。

选择器过滤与兜底

素材库详情面板提供“设为主体”入口,点击后弹出命名表单。主体名必填,并与素材标题分离;主体提示词可选,默认可沿用已有生成提示词,保存失败不影响素材标题和原图。

脚本编辑入口默认优先展示“主体”类别素材,并允许切换/搜索普通图片素材作为兜底。普通图片被选中时,只能保证 referenceImageUrl 存在;名称可从标题或文件名推导,描述为空时保留用户已有输入。

第 3 步反显

第 3 步展示的主体图必须来自当前角色条目的 referenceImageUrl。若用户在脚本页选择或替换主体素材,进入第 3 步时应立即看到一致的主体参考图;若图片 URL 不可用,应显示可恢复的空态,而不是阻断页面渲染。

Risks

  • 历史图片素材元数据不完整,可能无法提供 description普通图片兜底必须保留用户手写描述。
  • 不同工作流角色字段命名可能存在差异;实现时应先收敛到共享映射函数,避免 MV 与视频分析器行为分叉。