@iqiyi-intl-nadoupro/nadoupro-cli 1.0.0-test.2
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 +25 -0
- package/package.json +42 -0
- package/scripts/bootstrap.js +393 -0
- package/scripts/install.js +99 -0
- package/scripts/run.js +65 -0
- package/scripts/skill-sync.js +18 -0
- package/skills/nadou/SKILL.md +68 -0
- package/skills/nadou/commands/audio.md +125 -0
- package/skills/nadou/commands/auth.md +91 -0
- package/skills/nadou/commands/canvas-attachment.md +71 -0
- package/skills/nadou/commands/canvas-edge.md +65 -0
- package/skills/nadou/commands/canvas-graph.md +191 -0
- package/skills/nadou/commands/canvas-management.md +77 -0
- package/skills/nadou/commands/canvas-media.md +377 -0
- package/skills/nadou/commands/canvas-node.md +228 -0
- package/skills/nadou/commands/canvas.md +123 -0
- package/skills/nadou/commands/evidence.md +30 -0
- package/skills/nadou/commands/image-tools.md +88 -0
- package/skills/nadou/commands/image.md +273 -0
- package/skills/nadou/commands/material.md +59 -0
- package/skills/nadou/commands/media.md +156 -0
- package/skills/nadou/commands/model.md +103 -0
- package/skills/nadou/commands/points.md +43 -0
- package/skills/nadou/commands/schedule.md +112 -0
- package/skills/nadou/commands/space.md +253 -0
- package/skills/nadou/commands/system.md +50 -0
- package/skills/nadou/commands/task-request.md +188 -0
- package/skills/nadou/commands/task.md +229 -0
- package/skills/nadou/commands/text.md +81 -0
- package/skills/nadou/commands/video-advanced.md +96 -0
- package/skills/nadou/commands/video.md +247 -0
- package/skills/nadou/guides/artifact-presentation.md +146 -0
- package/skills/nadou/guides/canvas-dependency-graph.md +101 -0
- package/skills/nadou/guides/canvas-first-complex-workflow.md +83 -0
- package/skills/nadou/guides/execution-interaction.md +54 -0
- package/skills/nadou/guides/failure-cost-presentation.md +42 -0
- package/skills/nadou/guides/intent-templates.md +53 -0
- package/skills/nadou/guides/model-rules.md +7 -0
- package/skills/nadou/guides/utf8-input-safety.md +13 -0
- package/skills/nadou/node-types/audio.md +66 -0
- package/skills/nadou/node-types/clip.md +43 -0
- package/skills/nadou/node-types/director3d.md +41 -0
- package/skills/nadou/node-types/group.md +59 -0
- package/skills/nadou/node-types/image.md +137 -0
- package/skills/nadou/node-types/index.md +77 -0
- package/skills/nadou/node-types/json-contract.md +275 -0
- package/skills/nadou/node-types/model3d.md +35 -0
- package/skills/nadou/node-types/storyboard.md +43 -0
- package/skills/nadou/node-types/text.md +93 -0
- package/skills/nadou/node-types/video.md +119 -0
- package/skills/nadou/policies/core-safety.md +35 -0
- package/skills/nadou/policies/cost-and-write.md +37 -0
- package/skills/nadou/policies/result-and-recovery.md +41 -0
- package/skills/nadou/recipes/atomic-image.md +77 -0
- package/skills/nadou/recipes/canvas-image.md +92 -0
- package/skills/nadou/recipes/one-click-film.md +234 -0
- package/skills/nadou/recipes/quality-review.md +95 -0
- package/skills/nadou/recipes/typical-flows-host-adaptation.md +113 -0
- package/skills/nadou/workflows/atomic.md +61 -0
- package/skills/nadou/workflows/canvas.md +59 -0
- package/skills/nadou/workflows/local.md +41 -0
- package/skills/nadou/workflows/task-recovery.md +45 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# 费用与写入
|
|
2
|
+
|
|
3
|
+
本页适用于命中费用、目标选择、上传、远端写入、本地文件写入、覆盖、移动或破坏性操作门禁的步骤。用户已经明确、参数完整的只读请求不需要额外确认;独立文本按当前 `nadou text` 契约执行,不套用尚未开放的媒体估价流程,也不得宣称免费。
|
|
4
|
+
|
|
5
|
+
## 独立图片、视频和音频
|
|
6
|
+
|
|
7
|
+
按固定顺序执行:
|
|
8
|
+
|
|
9
|
+
1. 用当前高层命令的 `--dry-run --json` 生成唯一请求,只把 `data.request` 保存为 UTF-8 `request.json`。
|
|
10
|
+
2. 每轮只读取一次 `space current`,区分当前计费空间与计划交付目标。用户未给出明确目录时,用 `space directory list` 展示目标空间的完整候选,禁止默认根目录。
|
|
11
|
+
3. 用 `points summary` 读取权威余额,再用同一个 `request.json` 执行 `task estimate`。不可估价、余额语义不明或不足时停止。
|
|
12
|
+
4. 在一条确认摘要中同时展示模型、`scenario`、关键参数、数量、预计积分、当前/预计余额、计费空间、全部目录候选、用户选择的交付目标和其他副作用,并说明估价不锁价、不预占积分。
|
|
13
|
+
5. 用户在同一回复中选择目录并确认费用/提交后,只用同一个 `request.json` 执行一次 `task submit`。目录或费用未确认时,任务提交和空间写入都为零。
|
|
14
|
+
6. 任务成功后只向提交前绑定的目录执行一次 `space artifact deliver` 并核对回读。生成与空间交付分别记账;交付失败不授权重新生成。
|
|
15
|
+
|
|
16
|
+
用户明确要求“仅下载”时不安排空间交付,但必须另行明确本地目标与写入规则;用户明确选择 Canvas 时改走 Canvas 工作流,不套用独立媒体目录交付。
|
|
17
|
+
|
|
18
|
+
## 画布节点生成
|
|
19
|
+
|
|
20
|
+
- 立即生成先运行 `canvas node estimate`,展示逐节点和总预计积分,取得适用费用授权后执行一次 `canvas node generate`。
|
|
21
|
+
- 立即模式不得传 `--dry-run`、`--max-points`、`--scheduled-at`、`--timezone` 或 `--confirm-preview-sha256`;这些只属于 `--schedule-mode server`。
|
|
22
|
+
- `server` 定时先用同一画布/节点、时间和时区执行预览,再用返回的摘要与用户授权的积分上限提交。事实漂移后必须重新预览和确认。
|
|
23
|
+
- 多节点按估价结果的 `total_points` 统一授权;不得把多个不存在于立即模式的上限相加。
|
|
24
|
+
|
|
25
|
+
## 其他写入
|
|
26
|
+
|
|
27
|
+
- 上传、创建目录、重命名、空间交付、Canvas 变更、Timeline 写入、定时变更和本地输出都先明确对象、目标和效果;一次命令最多执行一次业务写入。
|
|
28
|
+
- `canvas node upload-image`、`canvas node import-image-url` 以及通用的 `canvas node upload-media`、`canvas node import-media-url` 是窄化复合写入例外:调用前必须披露“素材登记 → Canvas 节点创建”两个阶段,每个阶段最多写一次,且只有第一阶段权威成功后才进入第二阶段。第一阶段成功而第二阶段失败或未知时,保留素材 ID、素材范围和原 mutation 事实,禁止重新上传或重新导入;此例外不得推广到其他复合写入。
|
|
29
|
+
- 删除、永久删除、覆盖、移动、停止任务或取消定时等破坏性动作,必须说明精确对象、范围和不可逆影响。只有用户明确确认后才使用命令已有的 `--yes`;`--yes` 不能扩展成费用授权。
|
|
30
|
+
- 本地写入先披露绝对目标路径和不覆盖规则。已有文件默认停止;只有用户明确选择覆盖且命令公开支持时才执行。
|
|
31
|
+
- 团队目录被明确拒绝时,只有 CLI 返回 `fallback_eligible=true` 且用户选择个人目录并确认后,才可复用同一任务/作业/输出做一次个人交付。确认前个人空间写入为零。
|
|
32
|
+
|
|
33
|
+
## 授权有效期
|
|
34
|
+
|
|
35
|
+
确认只绑定当前请求、配置环境、计费空间、目标和已披露副作用。模型、`scenario`、提示词、参考素材、时长、比例、清晰度、数量、时间、目标目录、画布/节点或请求文件任一实质变化,旧估价与授权失效。
|
|
36
|
+
|
|
37
|
+
`--no-interactive` 只关闭命令交互,`--yes` 只处理命令已有的破坏性确认;二者都不是费用、目标选择或未披露写入的授权。自动化调用方必须提供同等明确的请求级预算和目标。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 结果与恢复
|
|
2
|
+
|
|
3
|
+
本页适用于异步任务、回填、失败、冲突、超时、部分成功、结果未知以及最终交付。恢复始终围绕原对象进行;只有用户明确要求并重新授权时,才创建新任务或新写入。
|
|
4
|
+
|
|
5
|
+
## 读取结构化事实
|
|
6
|
+
|
|
7
|
+
优先读取 CLI 响应外壳的 `error.code`、`retryable`、`exit_code`、`details.phase`、`details.request_sent`、`details.request_outcome`、`details.suggested_actions`,以及已返回的请求/任务/作业/画布/节点/变更/幂等键。不要从错误文案、HTTP 外形、URL 或等待时长推导隐藏状态。
|
|
8
|
+
|
|
9
|
+
## 恢复矩阵
|
|
10
|
+
|
|
11
|
+
| 状态 | 允许动作 | 禁止动作 |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| 本地预检失败且 `request_sent=false` | 修正输入,重新读取动态事实或重新预览 | 宣称服务端已受理 |
|
|
14
|
+
| 服务端明确拒绝且结果确定 | 保留原因;方案变化后重新询问、估价和授权 | 把拒绝写成超时或成功 |
|
|
15
|
+
| `request_outcome=unknown`、写入超时或响应无法确认 | 保存原 ID/幂等键,只读查询原对象或人工对账 | 自动重试、换 ID、改投目标、删除占位对象 |
|
|
16
|
+
| 已知任务仍非终态或本地观察超时 | 继续原任务的 `status/wait/events/outputs` | 将超时说成失败或重提 |
|
|
17
|
+
| 任务明确失败或取消 | 保留任务/作业、原因和已成功产物;如需重做,建立新的已授权步骤 | 自动重做整批 |
|
|
18
|
+
| 部分成功 | 逐项交付成功输出,列出失败、缺失和未知项 | 用任一成功项覆盖整体失败事实 |
|
|
19
|
+
| 读取失败 | 按 `suggested_actions` 恢复同一只读查询 | 把查询重试改成写入重试 |
|
|
20
|
+
| 权限拒绝 | 停止;只有明确可回退且用户确认后执行政策允许的原产物交付 | 猜测权限、静默切换空间或重新生成 |
|
|
21
|
+
|
|
22
|
+
即使 `retryable=true`,写操作也不能仅凭该字段自动重放;必须先确认请求是否发送、结果是否权威、命令是否提供安全的原 ID 恢复路径。
|
|
23
|
+
|
|
24
|
+
## 任务与画布
|
|
25
|
+
|
|
26
|
+
- 已知任务 ID 只继续 `status`、`wait`、`events`、`outputs`、显式下载或显式空间交付。
|
|
27
|
+
- Canvas 任务同时保留画布 ID、节点 ID 与任务 ID。任务完成但回填未完成时继续 `canvas node wait` 或只读 `Graph`;不得用通用修改写入 URL、`metadata` 或终态状态。
|
|
28
|
+
- 普通 `Graph` 写入结果未知时,CLI 可有限轮询原变更的只读 receipt,但只发送一次写请求;未收敛时保留原变更 ID 与原载荷继续对账,不得根据 `Graph` 暂时缺失换 key 重写。`Timeline` 或导出仍查询各自原幂等键,不能用另一条持久化路径或旧链路替代原结果。
|
|
29
|
+
- 历史任务若权威状态仍要求选择交付目录,可基于原任务/作业/输出恢复选择;新媒体任务必须在提交前绑定目录。
|
|
30
|
+
|
|
31
|
+
## 最终呈现
|
|
32
|
+
|
|
33
|
+
分别报告:
|
|
34
|
+
|
|
35
|
+
- `generation_status`:任务生成事实;
|
|
36
|
+
- 在线产物:可信 `outputs` 返回的真实内容或 URL;
|
|
37
|
+
- `delivery_status`:空间交付及目录回读;
|
|
38
|
+
- Canvas 状态:目标节点和回填结果;
|
|
39
|
+
- `local_delivery_status`:仅用户明确要求且本地写入、核验完成时报告。
|
|
40
|
+
|
|
41
|
+
一个真实产物、路径或入口在同一回复中只出现一次。画布入口、空间路径、资源 ID、本地路径、实际消耗和错误码只使用命令真实返回值;缺失时说明未返回,不自行拼接。生成成功不等于已交付,提交成功不等于任务完成,技术核验通过也不等于创意验收通过。
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# 独立图片配方
|
|
2
|
+
|
|
3
|
+
本配方只在用户要求可复制操作手册,或当前任务确实需要完整独立文生图示例时读取;它不是标准生图前置文档。它假定 [独立原子创作](../workflows/atomic.md)、[核心安全边界](../policies/core-safety.md)、[费用与写入](../policies/cost-and-write.md) 与 [结果与恢复](../policies/result-and-recovery.md) 已按根技能路由加载,不要重复打开。本配方不会创建 Canvas,也不会默认下载本地文件。
|
|
4
|
+
|
|
5
|
+
命令事实仍以当前 CLI 的 `capability describe`、`--help`、`model schema` 和结构化响应为准;不因读取配方而预读任何 `commands/` 页。
|
|
6
|
+
|
|
7
|
+
## 前提
|
|
8
|
+
|
|
9
|
+
- 准备 UTF-8 `prompt.txt`。
|
|
10
|
+
- 用当前配置环境执行;`auth status` 只有明确需要授权时才进入一次 `auth login`。
|
|
11
|
+
- `<model-id>`、目录和任务标识全部从本轮命令响应复制,不使用示例值。
|
|
12
|
+
|
|
13
|
+
## 1. 登录状态与模型
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
nadou auth status --profile <profile> --json
|
|
17
|
+
nadou capability describe image --json
|
|
18
|
+
nadou model list --scenario text2img --profile <profile> --json
|
|
19
|
+
nadou model schema <model-id> --scenario text2img --profile <profile> --json
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
从当前目录选择真实模型,并按参数结构确定比例、清晰度、数量等参数。不要在模型或参数存在歧义时继续。
|
|
23
|
+
|
|
24
|
+
## 2. 生成唯一请求
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
nadou image --prompt-file prompt.txt \
|
|
28
|
+
--scenario text2img --model <model-id> \
|
|
29
|
+
--profile <profile> --dry-run --json
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
把成功响应的 `data.request` 字段本身原样写入 UTF-8 `request.json`;不要包含外层响应外壳,也不要手写任务外壳。后续估价与提交都使用这个文件。
|
|
33
|
+
|
|
34
|
+
## 3. 目录、余额与估价
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
nadou space current --profile <profile> --json
|
|
38
|
+
nadou space directory list --group-id <personal-space-id> \
|
|
39
|
+
--profile <profile> --json
|
|
40
|
+
nadou points summary --profile <profile> --json
|
|
41
|
+
nadou task estimate --body-file request.json --profile <profile> --json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`<personal-space-id>` 来自本轮 `space current` 的个人空间字段;用户已明确团队空间时,改用该团队的真实空间组 ID。向用户展示全部目录候选的完整层级与 ID,并在同一摘要中展示模型、参数、数量、预计积分、余额、计费空间和其他副作用。用户必须在同一回复中选择 `<selected-directory-id>` 并确认费用/提交;未选择时停止,写请求为零。
|
|
45
|
+
|
|
46
|
+
## 4. 单次提交与观察
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
nadou task submit --body-file request.json --profile <profile> --json
|
|
50
|
+
nadou task wait <task-id> --profile <profile> --json
|
|
51
|
+
nadou task outputs --task-id <task-id> --profile <profile> --json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
`<task-id>` 来自本次提交。等待超时、失败、部分成功或结果未知时保留原任务 ID,转入任务恢复,不再执行 `submit`。
|
|
55
|
+
|
|
56
|
+
## 5. 交付所选目录
|
|
57
|
+
|
|
58
|
+
对每个可信成功输出分别执行一次:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
nadou space artifact deliver \
|
|
62
|
+
--task-id <task-id> --job-id <job-id> --output-index <output-index> \
|
|
63
|
+
--group-id <target-group-id> --directory-id <selected-directory-id> \
|
|
64
|
+
--mode copy --profile <profile> --json
|
|
65
|
+
|
|
66
|
+
nadou space directory contents --directory-id <selected-directory-id> \
|
|
67
|
+
--profile <profile> --json
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`<job-id>` 与 `<output-index>` 必须来自同一次 `task outputs`。交付失败或结果未知时保持生成事实,只恢复同一产物的交付;不重新生成、不改投根目录、不伪造空间路径。
|
|
71
|
+
|
|
72
|
+
## 完成检查
|
|
73
|
+
|
|
74
|
+
- 任务已成功并返回可信图片输出;
|
|
75
|
+
- 每个已交付输出都有空间写入结果和目录回读;
|
|
76
|
+
- 最终回复分开报告生成与空间交付;
|
|
77
|
+
- 用户没有明确要求本地文件时,不创建下载清单或本地图片。
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# 画布图片配方
|
|
2
|
+
|
|
3
|
+
本配方只在用户要求可复制操作手册,或当前任务确实需要完整画布文生图示例时读取;它不是标准画布生成前置文档。它假定 [画布工作流](../workflows/canvas.md)、[核心安全边界](../policies/core-safety.md)、[费用与写入](../policies/cost-and-write.md) 与 [结果与恢复](../policies/result-and-recovery.md) 已按根技能路由加载,不要重复打开。它不调用独立 `nadou image`,也不把结果复制到个人空间或本地。
|
|
4
|
+
|
|
5
|
+
命令事实仍以当前 CLI 的 `capability describe`、`--help`、`model schema` 和结构化响应为准;不因读取配方而预读任何 `commands/` 页。
|
|
6
|
+
|
|
7
|
+
## 前提
|
|
8
|
+
|
|
9
|
+
- 已取得用户明确选择的 `<canvas-id>` 与 `<profile>`。
|
|
10
|
+
- 准备新的稳定 `<image-node-id>` 和 `<mutation-id>`;不得复用其他内容的变更 ID。
|
|
11
|
+
- 模型与参数来自本轮参数结构。若使用已有且配置完整的图片节点,可跳过创建步骤,直接从读取节点开始。
|
|
12
|
+
|
|
13
|
+
## 1. 状态、画布与模型
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
nadou auth status --profile <profile> --json
|
|
17
|
+
nadou capability describe canvas.node.generate --json
|
|
18
|
+
nadou canvas get --canvas-id <canvas-id> --summary \
|
|
19
|
+
--profile <profile> --json
|
|
20
|
+
nadou model list --scenario text2img --profile <profile> --json
|
|
21
|
+
nadou model schema <model-id> --scenario text2img \
|
|
22
|
+
--profile <profile> --json
|
|
23
|
+
nadou canvas node template --type image --json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
确认画布 ID 来自当前用户选择,`<model-id>` 来自当前账号目录。把参数结构的完整动态默认值与用户明确参数写入节点;`modelParams.model` 必须与 `modelName` 完全一致。
|
|
27
|
+
|
|
28
|
+
## 2. 创建生成节点
|
|
29
|
+
|
|
30
|
+
把下面对象保存为 UTF-8 `image-node.json`,用本轮真实值替换占位符;`modelParams` 除 `model` 外必须包含当前参数结构要求的完整参数:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"id": "<image-node-id>",
|
|
35
|
+
"type": "image",
|
|
36
|
+
"data": {
|
|
37
|
+
"label": "概念图",
|
|
38
|
+
"prompt": "<用户确认的图片提示词>",
|
|
39
|
+
"modelName": "<model-id>",
|
|
40
|
+
"modelType": "IMAGE",
|
|
41
|
+
"taskType": "TEXT2IMG",
|
|
42
|
+
"modelParams": {
|
|
43
|
+
"model": "<model-id>",
|
|
44
|
+
"<schema-key>": "<schema-value>"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
nadou canvas node create --canvas-id <canvas-id> \
|
|
52
|
+
--auto-layout-only --body-file image-node.json --idempotency-key <mutation-id> \
|
|
53
|
+
--profile <profile> --json
|
|
54
|
+
|
|
55
|
+
nadou canvas get --canvas-id <canvas-id> --node-id <image-node-id> \
|
|
56
|
+
--include-edges --profile <profile> --json
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
创建结果未知时停止,用原变更 ID 或只读 `Graph` 对账,不换 ID 再创建。回读必须确认节点类型、`prompt`、模型和参数一致;不向节点写 URL、任务状态、回填 `metadata` 或生成来源字段。
|
|
60
|
+
|
|
61
|
+
## 3. 余额、估价与确认
|
|
62
|
+
|
|
63
|
+
```sh
|
|
64
|
+
nadou space current --profile <profile> --json
|
|
65
|
+
nadou points summary --profile <profile> --json
|
|
66
|
+
nadou canvas node estimate --canvas-id <canvas-id> \
|
|
67
|
+
--node-id <image-node-id> --profile <profile> --json
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
向用户展示画布/节点、模型、关键参数、预计积分、余额和“估价不锁价、不预占积分”,等待本次立即生成授权。节点配置或 `Graph` 入边变化后,旧估价与授权失效。
|
|
71
|
+
|
|
72
|
+
## 4. 单次生成与回填核对
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
nadou canvas node generate --canvas-id <canvas-id> \
|
|
76
|
+
--node-id <image-node-id> --profile <profile> --json
|
|
77
|
+
|
|
78
|
+
nadou canvas node wait --canvas-id <canvas-id> \
|
|
79
|
+
--node-id <image-node-id> --task-id <task-id> \
|
|
80
|
+
--profile <profile> --json
|
|
81
|
+
|
|
82
|
+
nadou canvas get --canvas-id <canvas-id> --node-id <image-node-id> \
|
|
83
|
+
--include-edges --profile <profile> --json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
立即模式不要附带 `server` 定时专用命令选项。`<task-id>` 只能来自本次生成命令。等待超时或任务完成但尚未回填时,保留同一画布/节点/任务继续观察,不重新生成或修改结果字段。
|
|
87
|
+
|
|
88
|
+
## 完成检查
|
|
89
|
+
|
|
90
|
+
- 节点配置、生成任务与回填都属于同一画布/节点;
|
|
91
|
+
- 只报告 CLI 已核实的画布 ID、节点 ID、任务/作业、回填状态和可信输出;
|
|
92
|
+
- 未经用户另行要求,不报告个人空间交付或本地下载状态。
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# 一键短片操作指南
|
|
2
|
+
|
|
3
|
+
本指南把一句创作需求转换为可核对、可恢复的 Nadou CLI 原子命令。Agent 负责创意拆解和
|
|
4
|
+
质量复核,CLI 负责目录校验、任务、下载、画布和本地媒体处理。不得自行发 HTTP 请求,
|
|
5
|
+
不得直接调用 `ffprobe` 或其他后端服务,也不得自动重试任务提交。
|
|
6
|
+
|
|
7
|
+
普通单次生图/生视频不必加载完整流程;一键成片、多镜头、角色一致性、对白字幕或明确要求
|
|
8
|
+
质量验收时使用本指南。
|
|
9
|
+
|
|
10
|
+
本页只描述用户明确选择“独立素材 + 本地线性后处理”的例外路径。复杂多节点任务、画布工作流或存在资产从属关系时,
|
|
11
|
+
先读取 [画布优先工作流](../guides/canvas-first-complex-workflow.md),在画布中完成空节点、依赖边和提示词配置,再按依赖波次执行;
|
|
12
|
+
不得先走本页生成素材,之后再把结果补挂到画布或猜测连线。
|
|
13
|
+
|
|
14
|
+
执行前列出动作计划,逐项说明必要输入上传、付费生成、生成后个人目录选择或已指定空间交付、本地下载、字幕/合成/
|
|
15
|
+
规范化、技术检查以及用户明确选择的团队空间或画布目标。只执行与交付门槛直接相关的步骤:已有
|
|
16
|
+
可信 URL 不重复上传,单个产物已满足要求时不为流程完整而重复缩放或转码;独立创作按用户选择或显式
|
|
17
|
+
空间目录交付,不创建额外副本。所有本地变换写入独立路径并且不覆盖原始文件;生成
|
|
18
|
+
费用确认也不自动授权未披露的附加动作。
|
|
19
|
+
|
|
20
|
+
## 具体创作简报示例:15 秒生日情景喜剧
|
|
21
|
+
|
|
22
|
+
用户若要求“15 秒、16:9 的美式生日情景喜剧;五个角色,英文对白,中英双语字幕,反高潮笑点”,先把需求固定为:家庭友好的明亮三机位风格;四位好友和 Karen 各自稳定的发型、服装主色和性格动作;同一间暖色公寓生日派对;以及等待惊喜、蛋糕名字特写、Karen 反应、全员尴尬收尾四个镜头。
|
|
23
|
+
|
|
24
|
+
准备 `brief.md`、五份 `character-<n>.prompt.txt`、`scene.prompt.txt`、`video.prompt.txt` 和 `subtitles.json`。交付门槛为 15 秒、16:9、1080p、有音轨、英文对白和中英双语硬字幕。使用本指南后续步骤:先生成五张角色参考和一张无人场景参考,只将成功产物 URL 按顺序放入一个 `multi_reference` 视频任务;每批图片和视频都先使用 `--dry-run` 预演,使用同一个请求文件完成服务端估价与费用确认,再各自正式提交一次。最终以 `media subtitle` 与 `media inspect` 验证媒体和字幕,并独立复核角色一致性、镜头连续性与笑点。
|
|
25
|
+
|
|
26
|
+
## 1. 建立创作简报
|
|
27
|
+
|
|
28
|
+
正式提交前至少确认:
|
|
29
|
+
|
|
30
|
+
- 主题、受众、总时长、画幅和目标分辨率;
|
|
31
|
+
- 角色数量,以及每个角色不可变化的外观、服装、性格和语言特征;
|
|
32
|
+
- 场景、时间、光线、视觉风格和镜头连续性;
|
|
33
|
+
- 对白语言、字幕语言、是否需要声音;
|
|
34
|
+
- 最大创作次数或预算、质量通过阈值,以及是否需要画布规划留痕。
|
|
35
|
+
|
|
36
|
+
先形成分镜和交付标准供用户核对。默认优先一个多镜头视频任务;只有模型时长不足或用户明确
|
|
37
|
+
要求多个片段时才拆分,并在本地兼容拼接。重新创作是新的付费意图,不是网络重试。
|
|
38
|
+
|
|
39
|
+
为本次运行创建不含凭证的追踪 ID,例如 `<film-run-id>`。同一轮所有命令复用该 ID,
|
|
40
|
+
每次新的创作尝试使用新的追踪 ID。
|
|
41
|
+
|
|
42
|
+
## 2. 执行预检和模型发现
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
nadou version --trace-id <film-run-id> --json
|
|
46
|
+
nadou doctor --trace-id <film-run-id> --json
|
|
47
|
+
nadou space current --profile <profile> --no-interactive --trace-id <film-run-id> --json
|
|
48
|
+
nadou points summary --profile <profile> --trace-id <film-run-id> --json
|
|
49
|
+
nadou model list --type image --profile <profile> --no-interactive --trace-id <film-run-id> --json
|
|
50
|
+
nadou model list --type video --profile <profile> --no-interactive --trace-id <film-run-id> --json
|
|
51
|
+
nadou model scenarios <video-model> --profile <profile> --no-interactive --trace-id <film-run-id> --json
|
|
52
|
+
nadou model schema <video-model> --scenario multi_reference --profile <profile> --no-interactive --trace-id <film-run-id> --json
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
只使用本次目录中的模型、场景、默认值、枚举和上限。模型不支持目标时长、画幅或参考数量时,
|
|
56
|
+
列出服务端返回的候选项并等待选择,不能静默换模型或猜测参数。
|
|
57
|
+
|
|
58
|
+
## 3. 准备可复核的本地输入
|
|
59
|
+
|
|
60
|
+
在用户工作目录中准备:
|
|
61
|
+
|
|
62
|
+
- `brief.md`:创作目标和交付硬门槛;
|
|
63
|
+
- `character-<n>.prompt.txt`:每个角色的稳定身份描述;
|
|
64
|
+
- `scene.prompt.txt`:无人场景、时间、光线和美术风格;
|
|
65
|
+
- `video.prompt.txt`:有序分镜、动作、镜头、对白和连续性约束;
|
|
66
|
+
- `subtitles.json`:需要硬字幕时使用的版本化双语字幕条目。
|
|
67
|
+
|
|
68
|
+
提示词文件不得包含凭证、Cookie、Authorization、签名 URL 查询参数或内部接口。
|
|
69
|
+
|
|
70
|
+
## 4. 生成并筛选参考图
|
|
71
|
+
|
|
72
|
+
对每个角色和场景先生成唯一请求预览,不直接提交:
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
nadou image --prompt-file character-1.prompt.txt --model <image-model> \
|
|
76
|
+
--profile <profile> --dry-run --trace-id <film-run-id> --json
|
|
77
|
+
|
|
78
|
+
nadou image --prompt-file scene.prompt.txt --model <image-model> \
|
|
79
|
+
--profile <profile> --dry-run --trace-id <film-run-id> --json
|
|
80
|
+
|
|
81
|
+
nadou points summary --profile <profile> --no-interactive --trace-id <film-run-id> --json
|
|
82
|
+
nadou task estimate --body-file character-1.request.json --profile <profile> --trace-id <film-run-id> --json
|
|
83
|
+
nadou task estimate --body-file scene.request.json --profile <profile> --trace-id <film-run-id> --json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
把每次预演返回的 `data.request` 分别保存为对应请求文件。批量确认时展示每个请求的模型、
|
|
87
|
+
关键参数和预计积分,并把服务端逐项估价相加为总预计积分;同时展示当前余额、按当前估价推算的
|
|
88
|
+
执行后余额、计费空间、交付目标和“估价不锁价”。获得费用确认或校验明确的任务级总积分上限后,
|
|
89
|
+
每个请求文件分别执行一次:
|
|
90
|
+
|
|
91
|
+
```sh
|
|
92
|
+
nadou task submit --body-file character-1.request.json --profile <profile> --no-interactive --trace-id <film-run-id> --json
|
|
93
|
+
nadou task submit --body-file scene.request.json --profile <profile> --no-interactive --trace-id <film-run-id> --json
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
确认前不得提交。任何请求发生变化都要重新估价和确认;不能用 `--no-interactive` 或 `--yes`
|
|
97
|
+
代替费用授权。每个写命令只执行一次并保存任务 ID;等待超时后只使用同一 ID 执行
|
|
98
|
+
`task status/wait/outputs`。只有成功任务返回的产物 URL 才能作为视频参考。
|
|
99
|
+
角色或场景参考不满足要求时,先向用户说明;用户决定重做后使用新的创作追踪 ID。
|
|
100
|
+
|
|
101
|
+
观察长任务时可以使用紧凑机器输出,避免完整原始结果占用 Agent 上下文:
|
|
102
|
+
|
|
103
|
+
```sh
|
|
104
|
+
nadou task events <task-id> --profile <profile> --compact --jsonl
|
|
105
|
+
nadou task outputs --task-id <task-id> --profile <profile> --compact --json
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## 5. 预览并生成视频
|
|
109
|
+
|
|
110
|
+
按角色与场景顺序传参考 URL。先使用 `--dry-run` 预演:
|
|
111
|
+
|
|
112
|
+
```sh
|
|
113
|
+
nadou video --prompt-file video.prompt.txt --scenario multi_reference \
|
|
114
|
+
--reference "<角色1 URL>" --reference "<角色2 URL>" \
|
|
115
|
+
--reference "<场景 URL>" --model <video-model> \
|
|
116
|
+
--duration <duration> --ratio <ratio> --resolution <resolution> --audio on \
|
|
117
|
+
--profile <profile> --dry-run --no-interactive --trace-id <film-run-id> --json
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
将 `data.request` 保存为 `video.request.json`,查询图片任务消耗后的当前余额,并对同一个请求文件估价:
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
nadou points summary --profile <profile> --no-interactive --trace-id <film-run-id> --json
|
|
124
|
+
nadou task estimate --body-file video.request.json --profile <profile> --trace-id <film-run-id> --json
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
核对任务类型、场景、模型、引用顺序、时长、画幅、分辨率、音频、预计积分和余额,说明估价
|
|
128
|
+
不锁价并获得费用确认后,使用同一个请求文件正式提交一次:
|
|
129
|
+
|
|
130
|
+
```sh
|
|
131
|
+
nadou task submit --body-file video.request.json --profile <profile> --no-interactive --trace-id <film-run-id> --json
|
|
132
|
+
nadou task wait <video-task-id> --profile <profile> --timeout <timeout> --trace-id <film-run-id> --json
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
提交成功后立即保存任务 ID。等待、取产物或终端中断不改变该提交事实;有可信任务 ID 时从
|
|
136
|
+
原任务恢复。结果不确定且没有可信任务 ID 时停止并人工对账,绝不自动重试任务提交。
|
|
137
|
+
|
|
138
|
+
## 6. 下载与本地后处理
|
|
139
|
+
|
|
140
|
+
成功后先按已知任务 ID 固化生成证据,再创建可恢复的批量下载清单;不需要为了下载扫描历史产物分页:
|
|
141
|
+
|
|
142
|
+
```sh
|
|
143
|
+
nadou evidence generation --task-id <shot-task-id-1> --task-id <shot-task-id-2> \
|
|
144
|
+
--output <delivery-dir>/generation-evidence.json --profile <profile> --json
|
|
145
|
+
nadou task download-batch --task-id <shot-task-id-1> --task-id <shot-task-id-2> \
|
|
146
|
+
--manifest <delivery-dir>/download-manifest.json --output-dir <delivery-dir>/artifacts \
|
|
147
|
+
--profile <profile> --trace-id <film-run-id> --json
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
下载中断时只执行 `task download-batch --resume-manifest <delivery-dir>/download-manifest.json`;
|
|
151
|
+
它会复核哈希值并继续未完成项,不重新提交生成任务。相同 URL 只下载一次,清单仍保留全部任务/作业/产物来源。
|
|
152
|
+
|
|
153
|
+
需要多片段时,只在顺序明确且编码兼容时先拼接:
|
|
154
|
+
|
|
155
|
+
```sh
|
|
156
|
+
nadou media concat --input <shot-1> --input <shot-2> \
|
|
157
|
+
--output <joined-video> --trace-id <film-run-id> --json
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
需要双语硬字幕时:
|
|
161
|
+
|
|
162
|
+
```sh
|
|
163
|
+
nadou media subtitle validate --input <raw-or-joined-video> --cues subtitles.json \
|
|
164
|
+
--font <font-family> --report-output <delivery-dir>/subtitle-report.json \
|
|
165
|
+
--trace-id <film-run-id> --json
|
|
166
|
+
nadou media subtitle --input <raw-or-joined-video> --cues subtitles.json \
|
|
167
|
+
--output <final-video> --font <font-family> --trace-id <film-run-id> --json
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
需要旁白、音乐和音效时,先以 `media mix --dry-run` 检查严格的 `audio_mix_plan`,再显式生成独立混音文件;
|
|
171
|
+
不要把多轨音频藏进 `media compose`,也不要覆盖原始片段。
|
|
172
|
+
|
|
173
|
+
字幕条目使用 `version=1` 和 `start_ms/end_ms/zh/en`。当前不执行自动语音识别,精确对轴需要
|
|
174
|
+
人工复核。片段不兼容时停止,不自动转码,也不调用云端合并或打包服务。
|
|
175
|
+
|
|
176
|
+
## 7. 检查和复核最终视频
|
|
177
|
+
|
|
178
|
+
```sh
|
|
179
|
+
nadou media inspect --input <final-video> --trace-id <film-run-id> --json
|
|
180
|
+
nadou media verify --input <final-video> --profile landscape-1080p-v1 \
|
|
181
|
+
--trace-id <film-run-id> --json > <delivery-dir>/media-verify.json
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
使用结果检查文件可读性、时长、宽高比、分辨率和音轨。媒体工具不可用时将技术检查记为
|
|
185
|
+
`not_run` 并报告 `nadou doctor --json` 的恢复建议,不能伪造通过。随后按
|
|
186
|
+
[quality-review.md](quality-review.md) 完成独立的创意复核;技术通过不代表创意通过。
|
|
187
|
+
|
|
188
|
+
## 8. 画布边界(仅在生成前切换)
|
|
189
|
+
|
|
190
|
+
如果用户要求画布、可编辑工作流或多个节点协作,必须在本节之前停止独立任务计划,改读
|
|
191
|
+
[画布优先工作流](../guides/canvas-first-complex-workflow.md),先建立空节点、依赖边并填好配置;不能先完成本页第 4~5 节,
|
|
192
|
+
再回画布猜测连线。仅在生成尚未开始时,才可用下面的最小示例记录已确认的结构:
|
|
193
|
+
|
|
194
|
+
```sh
|
|
195
|
+
nadou canvas get --canvas-id <canvas-id> --summary --profile <profile> \
|
|
196
|
+
--trace-id <film-run-id> --json
|
|
197
|
+
nadou canvas node create --canvas-id <canvas-id> --stdin \
|
|
198
|
+
--auto-layout-only --idempotency-key <create-node-mutation-id> \
|
|
199
|
+
--profile <profile> --trace-id <film-run-id> --json <<'EOF'
|
|
200
|
+
{"type":"text","data":{"label":"角色说明","text":"在这里填写角色说明正文。","prompt":""}}
|
|
201
|
+
EOF
|
|
202
|
+
# 保存 created_node_ids[0],并在下方使用该真实 ID
|
|
203
|
+
nadou canvas edge connect --canvas-id <canvas-id> --stdin \
|
|
204
|
+
--idempotency-key <connect-edge-mutation-id> \
|
|
205
|
+
--profile <profile> --trace-id <film-run-id> --json <<'EOF'
|
|
206
|
+
{"source":"<created-cast-note-node-id>","target":"<existing-film-video-plan-node-id>"}
|
|
207
|
+
EOF
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
短结构默认 `--stdin`;大批量操作再改用 `--body-file`。
|
|
211
|
+
|
|
212
|
+
这些命令只表达已确认的创作规划,不会把独立任务产物自动补挂到画布。画布工作流必须在任何付费提交前完成结构回读、
|
|
213
|
+
提示词/模型配置回读和批量估价;写结果不确定时先通过只读查询对账,不能重建任务或按名称猜边。
|
|
214
|
+
|
|
215
|
+
画布只表达创作规划和依赖。不得通过 Graph 更新写入 `url`、`nodeStatus` 或 `taskStatus`,
|
|
216
|
+
也不得声称本地产物已上传回画布。Graph 写结果不确定时先通过只读查询对账;只有确认未应用后,
|
|
217
|
+
调用方才可用相同变更 ID、相同内容和相同顺序显式恢复。
|
|
218
|
+
|
|
219
|
+
## 9. 交付证据
|
|
220
|
+
|
|
221
|
+
人工确认叙事连续性、角色一致性和字幕语义后,生成并复查最终交付清单:
|
|
222
|
+
|
|
223
|
+
```sh
|
|
224
|
+
nadou evidence delivery --generation <delivery-dir>/generation-evidence.json \
|
|
225
|
+
--download <delivery-dir>/download-manifest.json --media <final-video> \
|
|
226
|
+
--verification <delivery-dir>/media-verify.json \
|
|
227
|
+
--confirm-narrative --confirm-characters --confirm-subtitles \
|
|
228
|
+
--output <delivery-dir>/delivery-manifest.json --json
|
|
229
|
+
nadou evidence validate --input <delivery-dir>/delivery-manifest.json --json
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
返回:创作简报、所用模型和目录修订号、追踪/请求/任务 ID、版本化生成证据、下载清单、原始下载和
|
|
233
|
+
后处理文件、字幕校验、完整的 `media verify` 响应封装、创意人工确认、`DeliveryManifest`,以及可选画布 ID。
|
|
234
|
+
不得输出凭证或带查询参数的签名 URL。生成、下载、后期和最终交付是独立门禁,不得越级宣称完成。
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# 短片质量复核与交付证据指南
|
|
2
|
+
|
|
3
|
+
仅在用户明确要求技术/创意验收,或最终交付标准要求验证时使用本流程;普通原子媒体生成默认只交付
|
|
4
|
+
在线结果和空间素材,不自动保存本地副本,也不自动加载本指南或执行质量复核。执行前列出动作计划,说明需要检查的
|
|
5
|
+
产物、只读检查和任何可能产生派生文件的后续动作。
|
|
6
|
+
技术检查只判断文件和媒体属性;创意复核判断内容是否达到用户要求。两者必须分别记录。
|
|
7
|
+
|
|
8
|
+
只执行与交付门槛直接相关的步骤。只读检查不授权缩放、规范化或转码;发现不满足时先报告差异,
|
|
9
|
+
只有用户已经明确选择格式适配或最终成片目标时才创建独立派生文件,并且不覆盖原始文件。
|
|
10
|
+
|
|
11
|
+
## 1. 技术硬门槛
|
|
12
|
+
|
|
13
|
+
执行:
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
nadou media inspect --input <final-video> --trace-id <film-run-id> --json
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
按照创作简报逐项核对:
|
|
20
|
+
|
|
21
|
+
- 文件可读取且 `size_bytes > 0`;
|
|
22
|
+
- `duration_ms` 位于用户允许范围;
|
|
23
|
+
- `ratio`、`width`、`height` 满足交付要求;
|
|
24
|
+
- 要求对白、音乐或声音时 `has_audio=true`;
|
|
25
|
+
- 字幕成片和拼接成片仍可正常检查。
|
|
26
|
+
|
|
27
|
+
结论使用:
|
|
28
|
+
|
|
29
|
+
- `technical_status=passed`:所有硬门槛满足;
|
|
30
|
+
- `technical_status=failed`:至少一项硬门槛不满足;
|
|
31
|
+
- `technical_status=not_run`:本地工具不可用或检查没有执行。
|
|
32
|
+
|
|
33
|
+
`not_run` 不能视为通过。返回稳定错误时保留错误码和恢复建议,不修改或删除原文件。
|
|
34
|
+
|
|
35
|
+
## 2. 创意质量复核
|
|
36
|
+
|
|
37
|
+
由具备视频查看能力的 Agent 或人工按 1–5 分复核,每项附一句可观察证据:
|
|
38
|
+
|
|
39
|
+
1. 提示和剧情符合度;
|
|
40
|
+
2. 角色外观、服装、性格与动作一致性;
|
|
41
|
+
3. 场景、轴线、光线和镜头连续性;
|
|
42
|
+
4. 对白、声音和双语字幕同步与可读性;
|
|
43
|
+
5. 构图、镜头运动和可见生成瑕疵。
|
|
44
|
+
|
|
45
|
+
用户未指定评分阈值时,默认每项至少 4 分,且不存在角色身份错误、关键剧情缺失、错误对白或
|
|
46
|
+
不可读字幕等硬性内容问题。评分者无法可靠查看视频时不得猜分,使用 `needs_review`。
|
|
47
|
+
|
|
48
|
+
结论使用:
|
|
49
|
+
|
|
50
|
+
- `creative_status=passed`:达到用户确认的阈值且没有硬性内容错误;
|
|
51
|
+
- `creative_status=failed`:明确不符合角色、剧情、字幕或画面要求;
|
|
52
|
+
- `creative_status=needs_review`:当前 Agent 无法可靠查看视频或用户需要最终确认。
|
|
53
|
+
|
|
54
|
+
技术通过不自动代表创意通过;不能用宽高、时长或编码推断角色一致性和美感。
|
|
55
|
+
|
|
56
|
+
## 3. 未通过后的处理
|
|
57
|
+
|
|
58
|
+
保留原追踪 ID、任务 ID、检查结果和文件,不自动删除,也不得自动重试任务提交。
|
|
59
|
+
如果用户决定重新创作:
|
|
60
|
+
|
|
61
|
+
1. 说明需要调整的提示词、参考素材或模型参数;
|
|
62
|
+
2. 创建新的追踪 ID;
|
|
63
|
+
3. 重新执行预演并让用户核对;
|
|
64
|
+
4. 把正式生成视为新的付费意图,只提交一次。
|
|
65
|
+
|
|
66
|
+
等待超时但已有任务 ID 时不是重新创作,继续恢复原任务。
|
|
67
|
+
|
|
68
|
+
## 4. 交付证据
|
|
69
|
+
|
|
70
|
+
向用户返回以下非敏感信息:
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
catalog_revision:
|
|
74
|
+
models:
|
|
75
|
+
trace_id:
|
|
76
|
+
request_ids:
|
|
77
|
+
reference_task_ids:
|
|
78
|
+
video_task_id:
|
|
79
|
+
downloaded_files:
|
|
80
|
+
processed_files:
|
|
81
|
+
technical_status:
|
|
82
|
+
technical_checks:
|
|
83
|
+
creative_status:
|
|
84
|
+
creative_scores:
|
|
85
|
+
review_notes:
|
|
86
|
+
canvas_id: # 可选,只代表规划留痕
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
不得记录 Cookie、令牌、Authorization、签名 URL 查询参数或其他凭证。画布 ID 不证明
|
|
90
|
+
本地产物已经回填画布。
|
|
91
|
+
|
|
92
|
+
长视频本地交付还应保存 `GenerationEvidence`、`DownloadManifest`、字幕校验结果、可选 `AudioMixPlan`、完整的
|
|
93
|
+
`media verify --json` 响应封装和 `DeliveryManifest`。技术检查全部通过后,仍必须分别由人确认叙事连续性、
|
|
94
|
+
角色一致性和字幕语义;三项确认不能由 `--yes`、模型评分或技术参数替代。任一引用或哈希值失效时,
|
|
95
|
+
交付状态回到不完整,只恢复本地读取、下载或后期步骤,不自动重新提交生成。
|