mcpField
G
generate-media

generate-media

github.com/lwlee2608创意与媒体1123 次安装今天更新
代码仓库

关于 generate-media

generate-media 是通过服务商 API 单次生成一张图片或一段视频的 Skill,面向需要生成媒体的工作流。它强调核实模型与费用,并将结果保存在项目目录之外。

主要功能

  1. 01每次生成一张图片或一段视频
  2. 02通过 API 查询模型 ID
  3. 03生成前核对费用
  4. 04保存并验证输出文件

适用场景

  1. 01生成图片前核实模型费用
  2. 02以低分辨率试做视频动态
  3. 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 前请先阅读:

规则

  1. 如果缺少提供商密钥,请停止。 对于 OpenRouter,该密钥为 OPENROUTER_API_KEY——先检查项目根目录中的 .env,再检查环境变量。绝不要将密钥写入受版本控制的文件。如果缺少密钥,请告知用户前往 https://openrouter.ai/settings/keys,然后停止。

  2. 从 API 查询模型 ID。绝不要猜测。 ID 会变化,选错会浪费一次付费调用。

  3. 选择满足需求的最便宜模型,除非用户指定了模型。值得明确说明的例外情况:需要在图像中呈现清晰可读的文字时使用 openai/gpt-image-2;用户要求生产级质量时使用 -pro 档。

  4. 调用前先报出费用,且只能报有来源依据的金额。 视频的费用是图像的 10 到 50 倍。

    • 视频:使用提供商参考文档中的每秒费用表。如果表中没有对应条目,就表示没有公开费率——请如实说明并等待。
    • 图像:调用前无法报价(pricing.image_output 是按输出 token 计费,而非按图像计费)。告知用户模型名称,说明费用会在响应返回后确定,然后继续调用——静态图像通常只需几美分。
    • 如果有来源依据的费用超过约 $0.50,或视频价格未知,请等待用户确认。

    先用廉价草稿确定动态效果,再付费生成正式成品:bytedance/seedance-2.0-mini 生成一段 720p、6 秒的视频约需 $0.08,480p 则更便宜。价格随 width × height × duration 变化,因此降低一半分辨率是测试想法最省钱的方式。

  5. 保存到 $OUT_DIR/<slug>.<ext>,其中 OUT_DIR="$HOME/.cache/generate-media"。 先运行 mkdir -p 创建目录。写入 $HOME,不要使用裸 ~——加引号的波浪号不会展开,还会在项目中创建字面的 ./~/ 目录。绝不要覆盖文件——请添加数字后缀。绝不要只将结果留在 API 响应中。只有用户提出要求时才将文件复制到项目中;原始输出的静态图像为 2–3 MB,视频片段为 6 Mbps,不应纳入 git。

  6. 在回复中报告绝对文件路径,以及 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。

评论

支持 Markdown