11 KiB
图片、视频、动作外部生成手动验证运行手册
日期:2026-04-23
1. 文档目的
这份文档用于冻结 验证清单.md 第四项“图片、视频、动作的生成要真实走到外部服务的生成服务上,而不是用占位符来敷衍”的验证口径。
本次先解决两个问题:
- 当前仓库里“真实外部生成链”和“Stage 1 占位兼容链”同时存在,若不先写清楚,很容易把占位产物误记为通过。
- 现有技术设计文档描述了多条资产链,但没有一份面向人工联调的统一运行手册,导致每次验证都要重新猜入口、猜日志、猜通过标准。
2. 当前结论总览
截至 2026-04-23 当前代码状态,第 4 项仍不能整体直接判定“已通过”,原因是不同资产链状态不同。
2.1 当前已经接入真实外部图片生成的入口
以下入口当前会真实请求外部图片生成服务,而不是只生成本地占位图:
Big Fish结果页:生成背景生成并应用正式图->Lv.x 主图生成并应用正式图->Lv.x 动作工坊
custom world / RPG 创作:- 场景图生成
- 作品封面 AI 生成
这些入口当前统一会走 Rust api-server,并向 DashScope 图片生成接口发起请求,再落到 OSS 与兼容读路径。
2.2 当前仍未完全闭环的入口
以下入口当前仍不能直接判定为“动作资产全后端闭环”:
- 角色资产工坊
image-sequence- 当前生成的是服务端 SVG 帧,不是真实外部序列图模型结果。
- 角色资产工坊
motion-transfer / reference-to-video- 当前仍未接入真实外部模型主链。
- 角色资产工坊
image-to-video- 当前已真实请求 Ark 生成 OSS 草稿区
preview.mp4。 - 但正式帧抽取和去绿幕仍在前端浏览器完成,再回传后端发布。
- 当前已真实请求 Ark 生成 OSS 草稿区
因此:
- 第 4 项里“图片真实外部生成”目前可以做人工验证。
- 第 4 项里“视频真实外部生成”已有
image-to-video主链证据,但“动作正式资产全后端闭环”仍需要继续验证与收口,不能把前端抽帧回传链直接记成完全通过。
3. 代码级判定依据
3.1 已接真实外部图片服务的依据
3.1.1 Big Fish 正式图片链
server-rs/crates/api-server/src/big_fish.rs
当前 generate_big_fish_formal_asset(...) 会执行:
- 读取 Big Fish 草稿 prompt
- 调用
require_big_fish_dashscope_settings(...) - 调用
create_big_fish_text_to_image_generation(...) - 向 DashScope
text2image/image-synthesis发起异步任务请求 - 下载远端生成图片
- 上传 OSS
- 确认
asset_object - 绑定到 Big Fish 槽位
这条链已经不是占位图写盘。
3.1.2 Custom World 场景图与封面图
server-rs/crates/api-server/src/custom_world_ai.rs
当前 create_text_to_image_generation(...) 与 create_reference_image_generation(...) 会:
- 真实请求 DashScope 图片生成接口
- 轮询任务状态或解析生成结果
- 下载远端图片
- 上传 OSS
- 生成
asset_object与实体绑定
因此场景图、AI 封面图当前属于“真实外部图片生成”。
3.2 仍未完全闭环的依据
3.2.1 角色动作资产工坊
server-rs/crates/api-server/src/character_animation_assets.rs
当前链路现状:
image-to-video已真实请求 Ark 生成视频- 成功结果会下载并写入
generated-character-drafts/*/preview.mp4 publish当前仍读取前端传入的framesDataUrls- 前端仍通过
HTMLVideoElement + canvas自行抽帧并做去绿幕
因此当前状态应判定为“真实外部视频生成主链已完成,但正式动作资产后端闭环尚未完成”。
4. 本次验证范围
本次人工验证分成两部分。
4.1 可直接操作并验证通过/失败的范围
- Big Fish 主图生成是否真实打到 DashScope
- Big Fish 动作工坊静态关键帧图是否真实打到 DashScope
- Big Fish 背景图是否真实打到 DashScope
- Custom World 场景图是否真实打到 DashScope
- Custom World AI 封面图是否真实打到 DashScope
4.2 本次要明确记录为“未通过”的范围
- 角色资产工坊
生成角色形象 - 角色资产工坊
生成动作 - 任何依赖仓库内占位视频或 SVG 帧的动作生成入口
这些入口本次可以操作,但只能用于确认“当前仍未完全闭环”的具体断点,不能把前端抽帧回传链计入“动作资产全后端闭环”通过证据。
5. 前置条件
开始验证前,必须同时满足以下条件:
- 仓库根目录
.env.local已配置:DASHSCOPE_API_KEYALIYUN_OSS_BUCKETALIYUN_OSS_ENDPOINTALIYUN_OSS_ACCESS_KEY_IDALIYUN_OSS_ACCESS_KEY_SECRET
- 本机已安装:
cargonodespacetimeffmpegffprobe
- 本地端口可用或已有可复用 Rust 栈:
- Web:
3000 - Rust API:
8082 - SpacetimeDB:
3101
- Web:
- 必须使用 Rust 栈,而不是旧 Node 栈。
说明:
- 当前 Vite 前端必须指向 Rust
api-server,否则会把验证结果混入旧链路。 - 验证时必须能实时查看 Rust
api-server日志。
6. 启动方式
推荐统一使用:
npm run dev:rust
该命令会完成以下动作:
- 启动本地
SpacetimeDB standalone - 发布
server-rs/crates/spacetime-module - 启动 Rust
api-server - 启动 Vite Web 开发服务器
若已有栈在运行,至少确认:
- Web 可访问:
http://127.0.0.1:3000 - Rust API 为当前前端的实际代理目标
api-server正在输出日志
7. 手动验证入口
7.1 Big Fish 正式图片链
前端路径:
- 打开
http://127.0.0.1:3000 - 进入平台创作入口
- 选择
Big Fish - 先完成草稿编译
- 进入结果页
- 在结果页依次操作:
生成背景- 打开某个等级的
主图工坊,点击生成并应用正式图 - 打开某个等级的
动作工坊,点击生成并应用正式图
期望日志特征:
- Rust
api-server中出现provider = dashscope - 有 Big Fish 正式图片生成请求
- 有 DashScope 任务创建或轮询相关日志
- 生成成功后出现 OSS 写入或正式路径返回
前端期望结果:
- 资源 URL 不再是
/generated-big-fish/... - 而是
/generated-big-fish-assets/... - 结果页状态显示为
已生成,而不是占位已生成 Lv.x 主图与idle_float / move_swim正式图若下载结果为 PNG,后端会在写 OSS 前复用 RPG 角色主图透明背景 alpha 后处理;生成背景不走该处理
7.2 Custom World 场景图
前端路径:
- 进入 RPG / Custom World 创作流程
- 打开场景或地标编辑入口
- 点击场景图生成相关操作
期望日志特征:
- Rust
api-server中出现provider = dashscope - 有图片生成任务创建与轮询
- 成功后有 OSS 对象写入和读取兼容路径
前端期望结果:
- 返回图片不是本地 SVG 占位
- 保存后场景主图可稳定显示
7.3 Custom World AI 封面图
前端路径:
- 进入作品编辑页
- 打开
编辑作品封面 - 选择
AI 生成作品封面 - 输入封面氛围提示词
- 点击生成并保存
期望日志特征:
- Rust
api-server中出现provider = dashscope - 有封面图生成任务
- 成功后有 OSS 上传与对象确认日志
前端期望结果:
- 生成结果可预览
- 保存后作品封面更新为正式图
7.4 角色资产工坊反向验证
前端路径:
- 打开任一角色的 AI 资产工坊
- 点击
生成角色形象 - 再点击
生成动作
本入口的验证目标不是“通过”,而是确认它当前仍未接真实外部视频/图片服务。
期望证据:
生成角色形象返回的是 SVG 草稿候选生成动作若未导入参考视频,会回退预置占位视频- 日志或结果模型字段不应被当作真实外部视频生成通过证据
8. 通过标准
第 4 项只有在以下条件全部满足时,才能勾成通过:
- 至少一条图片生成入口已拿到真实外部服务调用证据。
- 至少一条视频或动作生成入口已拿到真实外部服务调用证据。
- 这些证据不能依赖 SVG 占位、仓库内预置视频或本地占位文件。
- 前端结果能与日志中的正式链路一一对应。
换言之:
- 仅图片链通过,不代表第 4 项整体通过。
- 仅 Big Fish 动作工坊生成出一张静态图,也不等于“视频/动作真实生成”通过。
9. 当前预判结论
按当前代码基线,本次更可能得到以下结论:
- 图片真实外部生成:可以拿到通过证据。
- 视频、动作真实外部生成:
image-to-video主链已可拿到真实外部视频生成证据,但正式动作资产后端闭环仍需要继续收口。
因此本次人工验证完成后,建议把第 4 项拆成至少两条独立清单:
- 图片生成真实外部服务验证
- 视频生成真实外部服务验证
- 动作正式资产后端闭环验证
否则会把“已完成的图片链 / 视频生成链”与“仍未完成的正式动作发布后端闭环”混成一个模糊状态。
10. 失败判定与排查
10.1 图片入口失败
优先看 Rust api-server 日志中的错误文本:
dashscope api key 未配置- 说明环境变量缺失。
构造 DashScope HTTP 客户端失败- 说明本地网络或 TLS 运行环境异常。
读取生成响应失败- 说明上游请求已发出,但响应解析失败。
下载远端图片失败- 说明上游已生成图片,但下载或签名读链出错。
- OSS 相关错误
- 说明生成已成功,但落 OSS 或确认对象失败。
10.2 角色资产工坊“看起来成功”
若角色工坊前端看起来成功,不应立刻视为通过,需要先核对:
- 当前策略是否是
image-sequence / motion-transfer / reference-to-video - 若是
image-to-video,preview.mp4是否来自真实 Ark 生成 - 正式发布是否仍要求前端回传
framesDataUrls
若只是“后端出真实视频、前端再抽帧回传”,则只能记为“视频生成主链通过,正式动作发布后端闭环未完成”,不能直接把整条动作资产链记为完全通过。
11. 关联文档
- BIG_FISH_FORMAL_IMAGE_GENERATION_2026-04-23.md
- M6_CHARACTER_VISUAL_ASSET_OSS_INTEGRATION_STAGE1_2026-04-22.md
- M6_CHARACTER_ANIMATION_IMPORT_AND_TEMPLATE_STAGE1_2026-04-22.md
- M6_CUSTOM_WORLD_ASSET_OSS_INTEGRATION_STAGE2_2026-04-22.md
- AI_CHARACTER_ANIMATION_TECHNICAL_SOLUTION_2026-04-04.md
- M6_CHARACTER_ANIMATION_BACKEND_FRAME_EXTRACTION_AND_PUBLISH_STAGE3_2026-04-23.md