## 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 与视频分析器行为分叉。