@aswless_854771076/ai_short_studio_cli 0.1.49 → 0.1.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -3
- package/dist/base-command.d.ts +1 -0
- package/dist/base-command.js +1 -0
- package/dist/client/api-client.d.ts +2 -0
- package/dist/client/api-client.js +4 -0
- package/dist/commands/auth/login.d.ts +1 -0
- package/dist/commands/auth/logout.d.ts +1 -0
- package/dist/commands/auth/signup.d.ts +1 -0
- package/dist/commands/auth/status.d.ts +1 -0
- package/dist/commands/canvas/apply.d.ts +1 -0
- package/dist/commands/canvas/asset/download.d.ts +1 -0
- package/dist/commands/canvas/asset/get.d.ts +1 -0
- package/dist/commands/canvas/asset/list.d.ts +1 -0
- package/dist/commands/canvas/asset/select.d.ts +1 -0
- package/dist/commands/canvas/asset/upload.d.ts +1 -0
- package/dist/commands/canvas/continuity/analyze.d.ts +1 -0
- package/dist/commands/canvas/edge/connect.d.ts +1 -0
- package/dist/commands/canvas/edge/disconnect.d.ts +1 -0
- package/dist/commands/canvas/edge/list.d.ts +1 -0
- package/dist/commands/canvas/episode/create.d.ts +14 -0
- package/dist/commands/canvas/episode/create.js +16 -0
- package/dist/commands/canvas/episode/list.d.ts +12 -0
- package/dist/commands/canvas/episode/list.js +10 -0
- package/dist/commands/canvas/folder/copy-cross-project.d.ts +25 -0
- package/dist/commands/canvas/folder/copy-cross-project.js +51 -0
- package/dist/commands/canvas/folder/create.d.ts +20 -0
- package/dist/commands/canvas/folder/create.js +28 -0
- package/dist/commands/canvas/folder/delete.d.ts +19 -0
- package/dist/commands/canvas/folder/delete.js +25 -0
- package/dist/commands/canvas/folder/list.d.ts +19 -0
- package/dist/commands/canvas/folder/list.js +26 -0
- package/dist/commands/canvas/folder/move.d.ts +21 -0
- package/dist/commands/canvas/folder/move.js +32 -0
- package/dist/commands/canvas/folder/rename.d.ts +21 -0
- package/dist/commands/canvas/folder/rename.js +27 -0
- package/dist/commands/canvas/folder/restore.d.ts +19 -0
- package/dist/commands/canvas/folder/restore.js +25 -0
- package/dist/commands/canvas/get.d.ts +1 -0
- package/dist/commands/canvas/inspect.d.ts +1 -0
- package/dist/commands/canvas/node/add.d.ts +1 -0
- package/dist/commands/canvas/node/delete.d.ts +1 -0
- package/dist/commands/canvas/node/edit-resource.d.ts +1 -0
- package/dist/commands/canvas/node/edit-shot.d.ts +1 -0
- package/dist/commands/canvas/node/get.d.ts +1 -0
- package/dist/commands/canvas/node/list.d.ts +1 -0
- package/dist/commands/canvas/node/run.d.ts +1 -0
- package/dist/commands/canvas/node/types.d.ts +1 -0
- package/dist/commands/canvas/node/update-many.d.ts +1 -0
- package/dist/commands/canvas/node/update.d.ts +1 -0
- package/dist/commands/canvas/settings/get.d.ts +1 -0
- package/dist/commands/canvas/settings/set.d.ts +1 -0
- package/dist/commands/config/get.d.ts +1 -0
- package/dist/commands/config/set.d.ts +1 -0
- package/dist/commands/preflight.d.ts +1 -0
- package/dist/commands/project/create.d.ts +1 -0
- package/dist/commands/project/delete.d.ts +1 -0
- package/dist/commands/project/get.d.ts +1 -0
- package/dist/commands/project/list.d.ts +1 -0
- package/dist/commands/project/provider/get.d.ts +1 -0
- package/dist/commands/project/provider/set.d.ts +1 -0
- package/dist/commands/project/provider/test.d.ts +1 -0
- package/dist/commands/project/update.d.ts +1 -0
- package/dist/commands/skill/install.d.ts +1 -0
- package/dist/commands/skill/path.d.ts +1 -0
- package/dist/commands/skill/status.d.ts +1 -0
- package/dist/commands/task/cancel.d.ts +1 -0
- package/dist/commands/task/get.d.ts +1 -0
- package/dist/commands/task/wait.d.ts +1 -0
- package/dist/domain/vvicat-api.d.ts +21 -0
- package/dist/domain/vvicat-api.js +42 -0
- package/dist/preflight.js +0 -4
- package/dist/runtime.d.ts +1 -0
- package/dist/runtime.js +1 -1
- package/package.json +1 -1
- package/skills/using-vvicat-ai-short-studio-cli/SKILL.md +51 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/commands.md +5 -3
|
@@ -7,7 +7,7 @@ description: Use when an agent needs to inspect or operate VVICAT infinite-canva
|
|
|
7
7
|
|
|
8
8
|
## 核心原则
|
|
9
9
|
|
|
10
|
-
把 `ai-short-studio` 当作机器可读的远程控制接口。创作全程只要目标、素材含义、平台、语言、画幅、时长、风格、人物、场景、道具、模型、节点 schema、候选版本、付费范围或覆盖影响存在未知、缺失或矛盾,就合并列出最少必要问题并询问用户;得到答复前只做只读检查,不用示例值或自行推断替用户做创作决定。本文明确规定的 `16:9`
|
|
10
|
+
把 `ai-short-studio` 当作机器可读的远程控制接口。创作全程只要目标、素材含义、平台、语言、画幅、时长、风格、人物、场景、道具、模型、节点 schema、候选版本、付费范围或覆盖影响存在未知、缺失或矛盾,就合并列出最少必要问题并询问用户;得到答复前只做只读检查,不用示例值或自行推断替用户做创作决定。本文明确规定的 `16:9` 素材画幅是标准流程默认值;视频时长必须读取当前模型的实时 `durationOptions`。只有实时模型仅提供 5、10、15 秒时,标准流程才可按目标时长向上取这三档并在执行摘要中说明;其他模型按实时合法值和用户确认选择,不得硬编码三档。新建或继续任何无限画布项目时,项目配置是创作节点之前的硬门禁:配置写入并回读验证通过前,不得创建或执行任何创作节点。
|
|
11
11
|
|
|
12
12
|
同一阶段存在两个及以上可合并的操作时,默认使用一个 CLI 进程完成批处理:项目配置用一次 `canvas settings set --file` 或 stdin,节点字段更新用 `canvas node update-many`,节点、连线、删除和视口等同一画布补丁用一次 `canvas apply --file` 或 stdin,互不依赖的节点执行用一次 `canvas node run --node … --node …`,多个任务等待用一次 `task wait --task … --task …`。批量执行与等待默认并发 4、上限 16;不要由 Agent 并发启动多个 CLI 进程。这样可复用同一会话、降低请求开销,并避免频繁触发 macOS Keychain。批量提交前读取一次最新画布与实时 schema,构造完整预期差异;`canvas apply` 同时传入已读到的 `--canvas-id` 和 `--expected-version`,避免保存前再次读取全图。成功后统一回读审计。批量命令不存在、当前服务不支持,或合法批量请求在处理批量粒度时失败,才回退到对应的单条命令,并只处理尚未生效的项。409 先重读、合并并确认后继续重试批量;401/403、参数、schema、业务门禁或付费确认错误必须停下修正,不得用单条命令绕过。
|
|
13
13
|
|
|
@@ -18,8 +18,9 @@ description: Use when an agent needs to inspect or operate VVICAT infinite-canva
|
|
|
18
18
|
创建项目或修改任何资源前,按顺序执行:
|
|
19
19
|
|
|
20
20
|
1. 运行 `ai-short-studio preflight --json`。它通过 API base URL 检查连通性和 CLI 最新稳定版,未配置地址时使用测试环境 `https://ai-short-studio.vvicat.dev`,默认发现更新就更新当前全局包;`restartRequired` 为真时必须重跑。连不上时提醒用户检查 `--base-url`、`VVICAT_BASE_URL`、profile 或默认测试环境,不猜其他地址。
|
|
21
|
-
2. 未登录且已有账号时执行 `ai-short-studio auth login --google` 或邮箱登录;没有账号且用户明确要求注册时,先核对 profile 的 `baseUrl` 确实指向目标环境,再使用 `auth signup --email <email> --password-stdin`。CLI 会从服务端取得 Supabase 公共配置,并把同域的 `/{locale}/auth/callback` 显式设为注册确认回调。注册返回 `confirmationRequired: true` 时,等待用户完成邮件验证后再登录。登录后重跑 preflight。`ready` 为 false
|
|
22
|
-
3. 运行账户级只读命令 `ai-short-studio config get --json
|
|
21
|
+
2. 未登录且已有账号时执行 `ai-short-studio auth login --google` 或邮箱登录;没有账号且用户明确要求注册时,先核对 profile 的 `baseUrl` 确实指向目标环境,再使用 `auth signup --email <email> --password-stdin`。CLI 会从服务端取得 Supabase 公共配置,并把同域的 `/{locale}/auth/callback` 显式设为注册确认回调。注册返回 `confirmationRequired: true` 时,等待用户完成邮件验证后再登录。登录后重跑 preflight。`ready` 为 false 时,把缺失的默认模型和能力选项一次性告知用户;供应商与模型目录问题交由管理员处理。
|
|
22
|
+
3. 运行账户级只读命令 `ai-short-studio config get --json`,取得账户默认模型及管理员已发布的全局模型。创建项目至少要求已配置 `defaultModels.analysisModel`;缺失时 `project create` 会在发送创建请求前停止,需先由用户在设置中心完成配置。供应商、密钥和模型目录只能由管理员维护;`config set` 只维护个人默认模型及其能力默认值和工作流并发,不得写入 `providers` 或 `models`。
|
|
23
|
+
Comfly 和 RunningHub 同样从全局目录选择;其凭据、服务地址和工作流映射由管理员或服务端维护,CLI 不要求也不接受用户配置供应商连接。
|
|
23
24
|
4. 运行 `ai-short-studio canvas node types --json`,按实时 `inputSchema`、`outputSchema`、`configSchema` 和 `defaultConfig` 确定能力与必填项。
|
|
24
25
|
5. 运行 `project list` 判断目标是新项目还是既有项目。新项目先确认账户默认分析模型已配置,再按“确认名称和用途 → `project create` → `project get` + 一次 `canvas inspect --include summary --include nodes --include edges --include assets --include settings --include node-types`”继续;未通过模型审查时不得尝试创建。既有项目同样用 `project get` 加一次聚合查询取得画布、项目配置、节点目录和资产。只有聚合结果缺少专用命令独有字段时才补充单项读取,不得把这些查询拆成一串 CLI 进程;也不得要求尚未创建的新项目先读取项目或画布。任何缺口仍按核心原则询问。
|
|
25
26
|
6. 运行 `ai-short-studio skill status --target codex --json`;非 current 时询问后更新,用户修改或非托管目录不得擅自 `--force` 覆盖。
|
|
@@ -56,14 +57,14 @@ description: Use when an agent needs to inspect or operate VVICAT infinite-canva
|
|
|
56
57
|
|
|
57
58
|
## 标准创作流程
|
|
58
59
|
|
|
59
|
-
1.
|
|
60
|
+
1. 明确原始故事或剧本、目标受众与平台、语言、成片画幅、总时长与镜头目标时长、风格参考、人物/场景/道具约束,以及交付是否包含剧本、设定、分镜图、视频和音频;除本文明确的素材画幅默认值外,缺项先问。实时 `durationOptions` 只限定合法值,不代替用户确认镜头目标时长。
|
|
60
61
|
2. 完成 preflight、账户配置读取和节点目录检查后,新项目按“project list → 确认名称/用途 → project create → project get + canvas get + canvas settings get”继续,既有项目读取相同的已有资源;再按“项目配置门禁”确认、原子写入并回读 settings。两种项目都必须在任何创作节点之前通过门禁;既有项目只修改用户确认字段,并优先复用已确认的节点与 selected version。
|
|
61
62
|
3. 原文需要改编时执行 `novel-to-script`。分镜拆解前必须先完成人物、场景、道具等本次故事涉及的素材生成。角色、道具、场景/背景、分镜图及其他视觉参考素材,用户未指定画幅时统一采用推荐值 `aspectRatio: 16:9`;用户明确指定其他画幅或平台硬性要求不同时,以用户要求为准。创建或更新节点前读取实时 `configSchema`:支持 `aspectRatio` 的节点必须显式写入最终值,不得误继承项目中的其他画幅;不支持时不得伪造字段,应说明实际继承来源并在付费生成前确认最终有效画幅。`character-visual-design` 的实时 schema 支持 `candidateCount` 时,只能按用户确认值写入 1~3,未指定时保留服务端默认值 1。人物视觉方案的每个 `appearance.descriptions` 候选必须拆成独立输入,并采用“一候选描述 → 一个三视图节点 → 一个独立图片资产”的方式生成;道具存在多个候选方案(真/假、原版/复制品、干净/破损等成对或多版本)时,**必须按“关联资产参考图门禁”先生成基础版并用户确认 selected version,再把该基础版的 image-resource 作为参考图连入派生版 turnaround/design 节点,prompt 逐条枚举允许的差异**,不得两版并行独立生成。每个三视图/设计节点只能接收一个人物形象或一个道具候选,提示词必须明确“只生成当前候选的一张三视图,不得拼接其他候选”;单张三视图内部可以包含同一对象的正面、侧面和背面,但禁止把多个候选方案纵向、横向或宫格拼成一张图。`count` 只表示同一候选的独立生成版本数,每个结果必须作为独立图片版本展示和选择,不得合并为一张长图。互不依赖的素材节点应同批执行并收集真实任务 ID,再并发 `task wait`,不得等待一个完成后才提交下一个;存在上游依赖(例如假道具依赖真道具参考图、童年形象依赖成年形象参考图)时必须按依赖顺序分批执行,参考图未选定 selected version 前不得提交下游派生节点。每个任务都必须到成功终态,并让用户确认后为每项素材设置 selected version。任一素材未生成成功、未确认或没有 selected version 时,禁止执行 `storyboard-breakdown`,先询问用户并补齐。
|
|
62
63
|
4. 按实时节点 schema,把已确认的剧本节点,以及每个人物、场景、道具等相关素材节点,逐项连接到 `storyboard-breakdown` 对应输入 handle(通常为 `script`、`characters`、`locations`、`props`)。执行前重新读取画布和连线,确认本次故事涉及的素材节点无遗漏;即使服务端把素材输入标为可选,标准创作流程也不得省略。任一对应连线缺失时禁止拆解,先补线;素材范围不清楚时先询问用户。全部门禁满足后才执行并等待。成功后刷新画布,读取服务端自动创建的 `storyboard-shot` 和 `storyboard-image`,不得重复手工创建,并通过“分镜素材连线门禁”。
|
|
63
64
|
|
|
64
65
|
用户明确要求专业 Markdown 剧本拆镜测试时,给 `storyboard-breakdown` 显式配置 `storyboardPipelineVersion: 2`、`sourceFormat: screenplay-markdown.v1`、目标集的 `targetLanguage: en|ar`、`platform: TikTok` 和 `aspectRatio: 9:16`,且只能连接一条剧本。该模式只验收分镜文本和镜头资产:声音只记录音色设定,不执行 `voice-design`;不执行 TTS、图片、音频或视频节点。任务成功后确认来源与逐字校验通过且没有新增 IMAGE/AUDIO/VIDEO 版本;任务失败时确认没有新增分镜版本或镜头。
|
|
65
66
|
5. 生成分镜图前,必须先通过“分镜素材连线门禁”。再用 `canvas asset get/list` 取得人物、场景、道具等已选版本,必要时下载,并把实际图片或可访问预览展示给用户;只提供资产 ID、文件路径或文字说明不算展示。用户明确确认素材与选版后,读取 `storyboard-image` 的实时 `configSchema`,用户未指定画幅且 schema 支持时将 `aspectRatio: 16:9` 显式写入节点,再分析每个镜头的动作阶段、运镜变化、多人调度和连续性难度,选择 schema 允许的最小够用格数:简单镜头建议 4 格,常规镜头使用默认 6 格,复杂镜头建议 9 格,16/25 格只用于用户明确需要的长动作或高密度关键帧。向用户展示逐镜建议并确认后,将各自 `gridSize` 写入对应节点;旧服务 schema 未暴露字段时不得虚假写入,应说明限制并回退到项目有效值,`gridSize` 未另行确认时为 6 格。连续叙事优先建议 `imageLayout: storyboard`,同时说明 `grid` 与 `single` 可选,最终由用户确认布局、镜头范围、参考资产、模型与费用范围。未展示、未确认或连线门禁未通过时禁止生成分镜图。
|
|
66
|
-
6. 执行分镜图后按“生成后自我审计”检查真实产物,并展示给用户确认。新分镜直接读取 `independent` / `previous-tail`,但该字段只作为建议:服务端不自动创建尾帧节点或连线,也不阻止后镜独立生成。需要严格连续性时,在用户确认后显式执行 `--apply-ready`。之后复用自动创建的 `storyboard-video-prompt`,按实际布局重写视频提示词并确认后执行 `video-generate`。镜头建议时长按正常剧情节拍、口播和动作确定,首尾保留约 1–2
|
|
67
|
+
6. 执行分镜图后按“生成后自我审计”检查真实产物,并展示给用户确认。新分镜直接读取 `independent` / `previous-tail`,但该字段只作为建议:服务端不自动创建尾帧节点或连线,也不阻止后镜独立生成。需要严格连续性时,在用户确认后显式执行 `--apply-ready`。之后复用自动创建的 `storyboard-video-prompt`,按实际布局重写视频提示词并确认后执行 `video-generate`。镜头建议时长按正常剧情节拍、口播和动作确定,首尾保留约 1–2 秒剪辑余量;不为命中全片总时长机械扩镜。执行时先读取当前模型的实时 `durationOptions`;只有实时选项仅为 5、10、15 秒时,才按目标时长向上取这三档。其他模型选用用户确认的实时合法时长,并保留原建议时长供剪辑裁切。未展示或未确认分镜图时禁止生成视频。
|
|
67
68
|
7. 配置门禁固定用一次 `canvas settings set` 写入确认字段;通过门禁后的同阶段节点与连线变更优先合并为一次 `canvas apply`。只改节点 config、标题或坐标时,单节点使用 `canvas node update --set/--unset/--title/--x/--y`,多节点使用一次 `canvas node update-many`;不能借此编辑结构化 artifact。互不依赖的节点通过一次 `canvas node run` 重复传 `--node`,需要立即等待时加 `--wait`;已经取得多个任务 ID 时通过一次 `task wait` 重复传 `--task`,不用固定 sleep。批量不可用或按“核心原则”处理后仍失败时才回退专用单条命令。
|
|
68
69
|
8. 每批图片、视频或音频生成完成后必须先通过“生成后自我审计”,才能报告成功、请求选版或进入下一付费阶段。在进入视频生成前,必须额外依次执行:(a)“镜头级素材审计”全量清单,核对 reference 集合覆盖镜中人物/场景/道具、无跨类型错边、成对资源引用正确版本、stale 清零、道具词扫 description 兜底、资源文字设定贯穿到 shot/image;(b)“上下镜连续性审计”,按时序逐对相邻镜核对人物位置、道具状态、光影色调、动势视线、景别节奏、叙事桥接,并给有动作连续关系的镜组互加 reference、给极端特写/物证镜补入必要的人物 reference;(c)“分镜逻辑审计”,对照叙事期望逐项扫掉关键词误命中、真假道具互串、跨段同名实体误连、黑场/空镜多余连线、多版本角色(成年/童年)误连、龙套角色引用主角资源等问题,输出逐镜审计表并精确删/加边直到 wired=plan;(d) 把图像模型的已知先验 bias(数字、具象动物、实体面具、中文字样等)列入视频阶段 prompt 的 negative 约束。交付前再次确认 selected version 与下载目录,记录项目、节点、任务和资产 ID、审计结论、失败项与未决项。临时项目在所有结束路径删除;既有项目绝不擅自删除。
|
|
69
70
|
|
|
@@ -80,6 +81,45 @@ description: Use when an agent needs to inspect or operate VVICAT infinite-canva
|
|
|
80
81
|
|
|
81
82
|
结构字段漏项属于上游产物或物化缺陷,不得静默绕过。能用确定映射恢复 reference 时按上述幂等流程修复;不能确定时停止并报告缺口,等待用户选择重新拆解或确认映射。
|
|
82
83
|
|
|
84
|
+
## 画布资产目录管理(canvas folder)
|
|
85
|
+
|
|
86
|
+
无限画布项目按分集隔离画布、目录和资产。用 `canvas episode list --project <projectId>` 列出分集,用 `canvas episode create --project <projectId> --number <n>` 创建分集;其他 `canvas *` 命令传 `--episode <episodeId|集数>` 选择作用域。
|
|
87
|
+
|
|
88
|
+
CLI 不提供分集删除或任务人工复核提交。遇到需要删除分集、选择一致性测试结果或提交视频人工复核的场景,转到网页端完成,不得用低层请求绕过确认。
|
|
89
|
+
|
|
90
|
+
画布资产目录是项目内"道具 / 人物 / 场景 / 配音 / 分镜"五类的物理容器,命令族 `canvas folder *` 独立于 `canvas asset *`,专管目录结构。
|
|
91
|
+
|
|
92
|
+
### 概述
|
|
93
|
+
|
|
94
|
+
- 5 个预设目录(道具、人物、场景、配音、分镜)在项目初始化时自动创建,名称固定,不可重命名、不可移动、不可删除
|
|
95
|
+
- 用户可在 5 个预设目录的任意层下创建子目录,递归层级上限 32 层
|
|
96
|
+
- 删除目录走软删逻辑:节点进入 30 天回收窗口,可恢复;窗口外返回 `FOLDER_GONE`
|
|
97
|
+
- 跨项目复制资产时不复制目录结构,仅复制资产条目与所属版本
|
|
98
|
+
|
|
99
|
+
### 强制顺序
|
|
100
|
+
|
|
101
|
+
1. 执行 `canvas folder list --project <projectId> --json` 取得活动目录树(含 5 个预设 + 用户子目录)。只有传 `--include-soft-deleted` 时才同时返回软删节点
|
|
102
|
+
2. 需要修改目录结构前必须先 list,避免对不存在的 `folderId` 操作触发 `404 / FOLDER_NOT_FOUND`
|
|
103
|
+
3. 创建子目录:`canvas folder create --project <projectId> --name "..." --parent-id <folderId>`。省略 `--parent-id` 时创建在项目根层
|
|
104
|
+
4. 重命名:`canvas folder rename --project <projectId> --folder <folderId> --name "..."`。预设目录禁止重命名,返回 `FOLDER_PRESET_IMMUTABLE`
|
|
105
|
+
5. 移动:`canvas folder move --project <projectId> --folder <folderId> --parent-id <parentId>`。预设目录禁止移动;同项目内不允许形成环(目标 `parentId` 不能是 `folderId` 的后代),返回 `FOLDER_CYCLE_DETECTED`
|
|
106
|
+
6. 删除:`canvas folder delete --project <projectId> --folder <folderId>`。预设目录禁止删除;被引用时返回 `FOLDER_IN_USE` 并附引用方列表,必须先解除引用再重试
|
|
107
|
+
7. 恢复软删目录:`canvas folder restore --project <projectId> --folder <folderId>`。超过 30 天回收窗口返回 `FOLDER_GONE`,无法恢复
|
|
108
|
+
8. 跨项目或跨分集复制资产:`canvas folder copy-cross-project --project <sourceProjectId> --asset-id <assetId> --target-project <targetProjectId> --target-episode-id <episodeId> --target-folder-id <folderId>`。`--target-episode-id` 指定目标分集;省略 `--target-folder-id` 时复制到该分集的未分类。目标目录必须属于目标项目和目标分集。该命令只复制资产及版本,不复制目录结构;目标项目无写入权限时返回 `FOLDER_FORBIDDEN`
|
|
109
|
+
|
|
110
|
+
### 批量操作原则
|
|
111
|
+
|
|
112
|
+
- 单次命令只处理一个目录;批量场景按目录循环执行
|
|
113
|
+
- 删除、移动、重命名互不依赖时可并发执行;存在依赖(先重命名再删除)必须按顺序串行
|
|
114
|
+
- 操作前后用 `canvas folder list --project <projectId>` 回读验证结果是否生效
|
|
115
|
+
- 任何 `404 / FOLDER_NOT_FOUND / FOLDER_PRESET_IMMUTABLE / FOLDER_IN_USE` 错误必须停下修正;被引用时必须先解除引用再重试
|
|
116
|
+
|
|
117
|
+
### 与现有 CLI 命令的关系
|
|
118
|
+
|
|
119
|
+
- `canvas folder *` 命令**独立于** `canvas asset *`。folder 操作对象是目录容器,asset 操作对象是容器内的资产条目
|
|
120
|
+
- `canvas folder list` 是取得目标目录 ID 的唯一目录命令;`canvas asset list` 当前仅支持 `--kind` 与 `--search`,不接受目录筛选参数
|
|
121
|
+
- 复制后用目标项目的 `canvas asset get <assetId>` 或网页资产目录回读;目录结构和回收站状态以 `canvas folder list` 为准
|
|
122
|
+
|
|
83
123
|
## 关联资产参考图门禁(真假/版本/衍生)
|
|
84
124
|
|
|
85
125
|
故事里存在“真/假”“原版/复制品”“同款不同状态”的成对道具、不同年龄同一人物、或母题相关的场景时,三视图和分镜图必须保持视觉血缘一致性,禁止各版本互不相干地自由发挥:
|
|
@@ -151,7 +191,7 @@ description: Use when an agent needs to inspect or operate VVICAT infinite-canva
|
|
|
151
191
|
每批生成完成后必须主动审计,不等待用户指出问题,也不能用 `task wait` 成功代替审计:
|
|
152
192
|
|
|
153
193
|
1. 重新读取任务、画布、节点、连线和资产,确认所有任务处于成功终态,预期产物真实存在,selected version、输入引用和自动创建的下游节点没有错位、遗漏或重复;分镜图片还必须重新执行“分镜素材连线门禁”和“分镜逻辑审计”,确认任务实际使用的上游版本包含全部期望参考、且没有误连的资源。
|
|
154
|
-
2.
|
|
194
|
+
2. 对照执行前确认值核对节点最终有效配置:视觉素材默认或显式画幅正确,视频生成时长仍在当前模型实时 `durationOptions` 的合法值中,模型、分辨率、质量、布局和格数没有被继承值意外覆盖。
|
|
155
195
|
3. 实际查看图片/视频/音频预览;核对人物身份、场景、道具、动作顺序、构图、连续性,以及黑帧、拉伸、裁切、破音、空结果等明显缺陷。能从资产元数据取得的画幅和时长必须与配置交叉核对。
|
|
156
196
|
4. 输出简短审计结论,逐项列出通过项、缺陷、失败项和未决项。只读即可确认的问题直接补查;涉及再次付费生成、改选版本或覆盖用户内容时先展示问题并取得确认。自我审计不能替代用户选版和阶段确认。
|
|
157
197
|
|
|
@@ -191,9 +231,11 @@ description: Use when an agent needs to inspect or operate VVICAT infinite-canva
|
|
|
191
231
|
- 开始或恢复操作时先读取最新画布、settings 和节点 schema;用 `canvas node edit-shot` 编辑 `storyboard-shot`,用 `canvas node edit-resource` 编辑具有稳定 `operation/resourceKey/resourceType` 的剧本、人物、人物视觉、场景、子场景或道具资源。两类编辑都基于当前 `selectedOutputVersionId` 追加不可变版本,不得覆盖历史版本;资源编辑只替换完整父文档中的目标实体,兄弟节点保持原选版。
|
|
192
232
|
- 在 `canvas settings get` 后让用户确认 `outputLanguage` 为自动、`zh` 或 `en`;变化只把拆镜、视频提示词、TTS 和视频节点标为 stale,不删除资产、不清除选版、不自动重跑。试听原生配音并核对语言;节点显式 `languageHints` 优先。
|
|
193
233
|
- 戒指等实体必须进入镜头 `props`。肢体仅在剧情需要时出现,并在画面中可见归属于人物;纯道具镜头不得凭空增加手、手套、人物或 UI。上游变化后只按 stale 链路重跑,历史版本继续保留。
|
|
194
|
-
- 视频输入按模型实时能力选择严格首尾帧、普通首帧图生视频或图片参考;模型明确声明多模态参考上限时,可把视频、音频素材分别连接到 `reference-videos`、`reference-audios
|
|
234
|
+
- 视频输入按模型实时能力选择严格首尾帧、普通首帧图生视频或图片参考;模型明确声明多模态参考上限时,可把视频、音频素材分别连接到 `reference-videos`、`reference-audios`。参考音频不能作为唯一媒体输入;纯文本指不连接任何媒体,不是 audio-only。RunningHub MiniMax H3 允许纯文本生成,参考图、视频、独立音频分别为 0–9、0–2、0–2,实时 `durationOptions` 为 5–15 秒的每个整数,1–4 秒由服务端归一为 5 秒。多模态参考不能与首尾帧混用。新分镜以规划产物的 `continuity` 为准;`previous-tail` 只记录需求,需要用户确认后显式执行 `--apply-ready` 或手动连线,执行视频仍需用户确认。
|
|
195
235
|
- 原始视频交付只下载每镜已选中的 MP4,按镜号命名 `S001.mp4`、`S002.mp4`……;字幕在编排/交付层单独生成,不烧录进原始视频。`manifest` 每行至少记录 `shotNumber`、`nodeId`、`assetId`、`versionId`、`fileName`,不得混入分镜图、音频中间件或烧录字幕版本。
|
|
196
236
|
|
|
237
|
+
RunningHub MiniMax H3 的实时 `aspectRatio` 只有 16:9、9:16,`resolution` 只有 480p、720p、1K、2K,默认为 1K。
|
|
238
|
+
|
|
197
239
|
## 安全边界
|
|
198
240
|
|
|
199
241
|
- 不把密码、access token、refresh token 或 API Key 放入参数、日志、Skill 或仓库。
|
|
@@ -202,7 +244,7 @@ description: Use when an agent needs to inspect or operate VVICAT infinite-canva
|
|
|
202
244
|
- 邮箱注册同样只通过交互式隐藏输入或安全 stdin 传递密码,不把密码放入命令参数、日志或仓库。
|
|
203
245
|
- 用户已在当前会话明确提供密码时,可将其直接写入正在等待的交互式隐藏密码提示;不得复述密码、拼入 shell 命令、写入临时文件或跨会话保存。
|
|
204
246
|
- 注册环境通过 profile `baseUrl` 区分;Supabase Redirect URLs 应预先允许各环境,禁止为单次本地注册临时修改全局 Site URL。
|
|
205
|
-
- `config get`
|
|
247
|
+
- `config get` 不返回全局 Provider 密钥;返回的模型已经过管理员发布和可用性校验,预检不得要求用户持有 Provider 密钥。
|
|
206
248
|
- `project provider get` 只返回配置状态。`project provider set` 的 JSON 必须来自安全 stdin 或不入库的临时秘密文件,禁止把 Key 写进命令参数、仓库文件或会回显的 shell 历史。
|
|
207
249
|
- 删除用户既有项目、覆盖完整画布或修改模型配置前,先明确目标和影响;没有授权就停在读取或生成变更计划。
|
|
208
250
|
- `canvas apply` 只用于节点、连线、删除、视口等低层图补丁,不能代替 `canvas settings set`。同阶段有多个图变更时优先一次批量提交;已有画布快照时必须传 `--canvas-id` 和 `--expected-version`,不让 CLI 再预读全图。批量失败按“核心原则”分类处理,不能通过逐条重试绕过权限、schema、业务门禁或付费确认。遇到 409 才重新读取、合并并确认后重试。项目配置遇到 409 时也必须重新读取和确认。
|
|
@@ -248,7 +290,7 @@ ai-short-studio task wait --task "$TASK_1" --task "$TASK_2" --concurrency 4 --js
|
|
|
248
290
|
- 未展示产物就继续:生成分镜图前展示并确认素材,生成视频前展示并确认分镜图;只报告 ID 或路径不能代替预览与用户确认。
|
|
249
291
|
- 所有镜头沿用项目格数却声称已动态配置:实时 schema 提供 `gridSize` 时,必须展示并确认逐镜难度建议,再把数值写入对应节点;只有旧服务未暴露字段时才回退到项目格数,未另行确认时为 6 格。
|
|
250
292
|
- 视觉素材混用不同默认画幅:用户未指定时,角色、道具、场景/背景和分镜图统一使用 `16:9`;实时 schema 支持时显式写入节点,避免继承项目中的其他画幅。
|
|
251
|
-
-
|
|
293
|
+
- 按固定档位套用所有视频模型:先读实时 `durationOptions`;只有当前模型仅提供 5/10/15 秒时,才向上取这三档,并保留原目标时长供剪辑裁切。
|
|
252
294
|
- 多个三视图候选被拼成一张图:每个候选必须使用独立输入和独立三视图节点生成;`count` 产生的多个版本也必须保持为独立图片,不能拼接展示。
|
|
253
295
|
- 涉及剪辑却自行设计:时间线、字幕、转场、音频编排或渲染必须先使用 `remotion-best-practices`。
|
|
254
296
|
- 只检查任务创建响应:必须 `task wait` 并检查终态和错误字段。
|
|
@@ -163,6 +163,8 @@ Meme 视频默认使用 `meme-scene-analysis` → `meme-material-search` → `ca
|
|
|
163
163
|
|
|
164
164
|
项目级默认参数使用 `canvas settings set` 写入 `imageResolution`、`imageQuality`、`videoResolution`;候选值读取 `settings get` 对应字段的实时 `options`。通用 `image-generate`、`image-edit` 节点只在需要偏离项目默认时,才在 `config` 写入字符串 `resolution`、`quality`;`video-generate` 同理可覆盖 `resolution`。节点覆盖值必须来自当前节点模型 `capabilities`,没有对应能力声明时不写入。
|
|
165
165
|
|
|
166
|
+
RunningHub MiniMax H3 的实时 `aspectRatio` 只有 16:9、9:16,`resolution` 只有 480p、720p、1K、2K,默认为 1K。
|
|
167
|
+
|
|
166
168
|
## 资产与下载
|
|
167
169
|
|
|
168
170
|
```bash
|
|
@@ -191,7 +193,7 @@ ai-short-studio config get --json
|
|
|
191
193
|
ai-short-studio config set --file <config.json> --json
|
|
192
194
|
```
|
|
193
195
|
|
|
194
|
-
`config set`
|
|
196
|
+
`config set` 只接受 `defaultModels`、`capabilityDefaults`、`workflowConcurrency` 的部分对象;CLI 与服务端都会拒绝 `providers` 或 `models`。Provider 密钥和全局模型目录只能由管理员后台维护。标准创作启动只执行只读的 `config get` 来计算账户默认模型的继承结果;不得用账户级 `config set` 代替项目的 canvas settings。
|
|
195
197
|
|
|
196
198
|
## 标准创作命令顺序
|
|
197
199
|
|
|
@@ -207,8 +209,8 @@ ai-short-studio config set --file <config.json> --json
|
|
|
207
209
|
|
|
208
210
|
生成 `storyboard-image` 前,用 `canvas asset get/list` 取得素材 selected version,必要时通过 `canvas asset download` 下载,并向用户实际展示人物、场景、道具等预览;用户确认后才可执行。逐镜头根据需要独立呈现的动作、表情、主体关系、视角和空间调度状态选择最小够用的 `gridSize`,不得沿用统一格数或仅按时长推算;先用实时节点 schema 核对允许值,再向用户列出“镜号、复杂度依据、建议格数”,确认后逐个更新对应 `storyboard-image` 节点。生成视频前,同样取得并展示实际分镜图或可访问预览,确认分镜图和视频镜头范围后才可执行 `storyboard-video-prompt` / `video-generate`。仅输出资产 ID、URL、文件路径或成功状态不能代替展示;任一确认缺失时停止并询问。
|
|
209
211
|
|
|
210
|
-
用户未指定画幅时,角色、道具、场景/背景、分镜图及其他视觉参考素材统一使用 `16:9`;实时 schema 支持 `aspectRatio`
|
|
212
|
+
用户未指定画幅时,角色、道具、场景/背景、分镜图及其他视觉参考素材统一使用 `16:9`;实时 schema 支持 `aspectRatio` 时显式写入节点,避免继承项目中的其他画幅。视频时长以当前模型实时 `durationOptions` 为准。只有实时模型仅提供 5、10、15 秒时,才按镜头目标时长向上取这三档,并保留原目标时长供剪辑裁切;其他模型使用经用户确认的实时合法值。RunningHub MiniMax H3 暴露 5–15 秒的每个整数,支持不连任何媒体的纯文本生成,服务端会把 1–4 秒归一为 5 秒。参考音频仍不能作为唯一媒体输入;纯文本是零媒体,不是 audio-only。
|
|
211
213
|
|
|
212
|
-
每批生成完成后都必须自我审计:重新读取任务、画布、节点、连线和资产,核对终态、selected version
|
|
214
|
+
每批生成完成后都必须自我审计:重新读取任务、画布、节点、连线和资产,核对终态、selected version、输入引用、最终有效画幅、视频时长仍属于实时 `durationOptions` 的合法值、模型与布局,并实际查看预览中的身份、场景、道具、动作、连续性及黑帧、拉伸、裁切、破音或空结果。输出通过项、缺陷、失败项和未决项;再次付费生成、改选版本或覆盖用户内容前先取得确认。
|
|
213
215
|
|
|
214
216
|
`storyboard-breakdown`、`storyboard-image` 和 `storyboard-video-prompt` 成功后会由服务端物化下游节点。每步完成后先重新 `canvas get` 或 `canvas node list` 获取真实 ID,禁止照示例伪造 ID 或重复建节点。
|