SuperAPI AI 工具集

generate-media

设计与创作

查看项目

更新于 10-16 09:24

技能介绍

Generate Media 是一个用于生成或编辑图像与视频的 AI 技能,适用于广告、模型图、风格变体以及图生视频等场景。它通过提供商 API 完成生成,目前默认使用 OpenRouter,每次调用只生成一个结果,生成的文件保存到 $HOME/.cache/generate-media/ 目录。

使用方式与流程

在首次调用 API 前,需要先阅读提供商参考文档,例如 OpenRouter 对应的 providers/openrouter.md。使用时,如果缺少提供商密钥则必须停止。以 OpenRouter 为例,所需密钥为 OPENROUTER_API_KEY,应先检查项目根目录的 .env 文件,再检查环境变量。切勿将密钥写入受版本控制的文件。如果密钥缺失,应引导用户访问 https://openrouter.ai/settings/keys 并停止操作。

模型 ID 必须从 API 查询,绝不能猜测。ID 会变化,错误的 ID 会浪费一次付费调用。除非用户指定了模型,否则应选择满足需求的最便宜模型。值得说明的例外包括:需要图像内文字清晰可读时使用 openai/gpt-image-2,用户要求生产级质量时使用 -pro 层级。

在调用前必须报价,且只报有来源依据的数字。视频成本通常是图像的 10 到 50 倍。视频使用提供商参考文档中的每秒价格表;如果表中没有对应行,说明没有公布价格,应如实告知并等待。图像在调用前无法报价,因为 pricing.image_output 是按输出 token 计费而非按图像计费;此时应说明模型名称,告知成本将在响应后得出,然后继续,因为静态图通常只需几美分。当有来源依据的费用超过约 $0.50,或视频价格未知时,应等待用户确认。

建议先在便宜草稿上确定动态效果,再付费进行真实渲染。例如 bytedance/seedance-2.0-mini 在 720p 下 6 秒约 $0.08,480p 更低。价格随宽度 × 高度 × 时长变化,因此降低分辨率是测试想法最便宜的方式。

文件保存与输出

保存到 $OUT_DIR/<slug>.<ext>,其中 OUT_DIR="$HOME/.cache/generate-media"。先执行 mkdir -p。写入 $HOME,切勿使用裸 ~,因为带引号的波浪号不会展开,会在项目中产生一个字面量 ./~/ 目录。绝不能覆盖已有文件,应添加数字后缀。绝不能只把结果留在 API 响应中。仅在用户要求时才复制到项目;原始输出为 2 到 3 MB 的静态图或 6 Mbps 的片段,不应进入 git。

报告时需给出绝对文件路径,以及响应中 usage.cost 的真实成本,绝不能使用估算值。

完成前检查

刚写入的文件必须非空:执行 test -s "$OUT",因为 base64 解码失败会留下 0 字节。只检查该路径,不要检查整个目录,因为该目录跨所有项目共享且包含旧结果。视频必须是真实的 .mp4,而非 JSON 错误体:执行 file "$OUT"。

常见错误

不要把视频当作同步操作。POST /videos 返回 202 和 polling_url。应约每 30 秒轮询一次,直到 completed,然后下载。不要根据 pricing 字段估算成本,应读取响应中的 usage.cost。不要把 base64 直接管道写入文件,应先解码,例如 jq -r '.data[0].b64_json' resp.json | base64 -d > out.png。不要把本地路径作为参考图发送,参考输入只接受 HTTP(S) URL 或 base64 data URL。