关于 generate-media
generate-media 是通过服务商 API 单次生成一张图片或一段视频的 Skill,面向需要生成媒体的工作流。它强调核实模型与费用,并将结果保存在项目目录之外。
主要功能
- 01每次生成一张图片或一段视频
- 02通过 API 查询模型 ID
- 03生成前核对费用
- 04保存并验证输出文件
适用场景
- 01生成图片前核实模型费用
- 02以低分辨率试做视频动态
- 03避免媒体文件进入项目目录
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lwlee2608/ agent-skills --skill generate-media安装后在 Claude Code 中输入/generate-media确认已加载。
附带文件providers/openrouter.md
详细介绍
生成媒体
每次调用通过提供商 API 生成一个内容。文件将保存到 $HOME/.cache/generate-media/。
提供商参考文档——首次调用 API 前请先阅读:
- OpenRouter(默认):providers/openrouter.md
规则
-
如果缺少提供商密钥,请停止。 对于 OpenRouter,该密钥为
OPENROUTER_API_KEY——先检查项目根目录中的.env,再检查环境变量。绝不要将密钥写入受版本控制的文件。如果缺少密钥,请告知用户前往 https://openrouter.ai/settings/keys,然后停止。 -
从 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 则更便宜。价格随width × height × duration变化,因此降低一半分辨率是测试想法最省钱的方式。 -
保存到
$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会返回包含polling_url的202响应。每隔约 30 秒轮询一次,直到状态变为completed,然后下载。 - 根据价格字段估算费用。 从响应中读取
usage.cost。 - 将 base64 直接写入文件。 先解码:
jq -r '.data[0].b64_json' resp.json | base64 -d > out.png。 - 将本地路径作为参考图像发送。 参考输入必须使用 HTTP(S) URL 或 base64 数据 URL。