编辑镜头与结构化资源
用途
在不覆盖历史版本的前提下,从无限画布或 CLI 修订镜头、剧本、人物、人物视觉、场景、子场景和道具内容。
使用前准备
打开无限画布项目,并确认目标节点已有选中的资产版本。可编辑类型包括镜头、剧本、人物、人物视觉方案、大场景、子场景和道具。普通文本结果以及图片、视频、音频媒体本体不使用本功能。
旧结构化资源节点如果缺少稳定的 operation、resourceKey 或 resourceType,仍可查看和切换历史版本,但不会开放编辑,避免系统按标题猜错资源。
配图占位
- 页面:无限画布结构化资源属性面板
- 状态:选中已有历史版本的人物或剧本资源
- 重点区域:结构化 JSON、保存为新版本、历史版本列表和下游“需更新”状态
- 脱敏要求:隐藏项目正文、人物隐私信息、资产 ID 和任务标识
操作步骤
在画布中编辑
- 选中镜头资产,在右侧属性面板修改画面描述、动作、对白、旁白、人物、道具、地点、景别、运镜、图片/视频提示词或时长。
- 选中剧本、人物、人物视觉、场景、子场景或道具资源,在加宽属性面板中修改“结构化 JSON”。JSON 根节点必须是对象。
- 保持名称、镜号、ID、资源键、所属人物或场景等身份字段不变。大场景中的子场景应在对应子场景节点单独编辑。
- 点击“保存为新版本”。遇到版本冲突时刷新画布,核对当前选版后重新修改,不能盲目覆盖。
使用 CLI 编辑
先读取最新画布并确认节点的 selectedOutputVersionId:
ai-short-studio canvas get --project <projectId> --json
ai-short-studio canvas node edit-shot <shotNodeId> --project <projectId> --file shot.json --json
ai-short-studio canvas node edit-resource <resourceNodeId> --project <projectId> --file resource.json --json省略 --file 时从 stdin 读取 JSON 对象。edit-shot 还可修改经校验的连续性:previous-tail 必须包含来源镜头键和非空原因,independent 必须包含非空原因。edit-resource 只接受具有稳定身份的结构化资源节点,不能用 canvas node update 或 canvas apply 改写服务端 artifact。资源版本编辑有自己的并发基线,不属于可合并的画布图补丁;普通节点、连线、删除和视口修改仍遵守 canvas apply 批量优先规则。
结果与状态
每次保存都会基于当前节点选中的版本追加一个人工资产版本,并把当前节点切换到新版本;旧版本不会覆盖或删除。人物、场景和道具等资源可能共享一个完整父文档,系统只替换目标实体并保留其他内容,兄弟资源节点继续使用各自原选版。
保存成功后,所有下游节点递归标记为“需更新”,但不会自动运行模型、重新生成媒体或产生费用。用户确认新内容后,再手动运行需要更新的下游节点。
权限和限制
- 请求继续使用项目权限和无限画布项目类型校验,不能跨项目或使用其他资产的版本。
- 镜号、Part、名称、ID、资源键和所属关系等身份字段不可编辑;重命名需要单独迁移节点、连线和物化身份。
- 修改一个资源不会强制切换共享父资产的其他资源节点。
- 本功能不删除版本、不执行付费任务,也不修改图片、视频或音频文件。
常见问题
为什么资源只显示预览,没有 JSON 编辑器
该节点可能是普通文本/媒体资源,或历史节点缺少稳定资源身份。可继续查看和切换版本;不要通过修改节点配置或标题绕过限制。
为什么保存后下游显示“需更新”
下游仍引用编辑前的上游版本。系统只标记状态,不会自动产生费用;确认新内容后手动重新运行对应节点。
为什么不能修改人物或场景名称
名称参与资源键、节点复用和重新物化匹配。直接改名会导致重复节点或连线指向错误,因此本次编辑只允许修改非身份内容。