mcpField
G
genmedia

genmedia

github.com/fal-ai-community创意与媒体257692 次安装24 周前更新
代码仓库

关于 genmedia

genmedia 是面向 Agent 的 fal.ai 命令行工具,支持终端易读输出和供 Agent 使用的 JSON。它涵盖模型发现、执行、异步任务、上传与结果下载。

主要功能

  1. 01按提示词自动选择模型
  2. 02发现模型并查看参数结构
  3. 03同步与异步执行
  4. 04上传文件并下载结果
  5. 05安装和管理 Agent 技能

适用场景

  1. 01根据提示词生成媒体
  2. 02选择并检查 fal.ai 端点
  3. 03运行耗时的视频或音频任务
  4. 04上传输入文件并保存结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fal-ai-community/skills --skill genmedia

安装后在 Claude Code 中输入/genmedia确认已加载。

附带文件references/full-reference.md

详细介绍

genmedia CLI:fal.ai 端点运行器

genmedia 是面向 Agent 的 fal.ai CLI。它既适用于终端中的人类用户(输出美观易读),也同样适用于 Agent(通过管道传递输出或使用 --json 时输出结构化 JSON)。此仓库中的其他所有技能都通过 genmedia 执行,不会直接封装 fal.ai HTTP API。

完整命令列表(包含所有标志、选项和示例),请参阅 references/full-reference.md。

关键规则

  1. 如果 Agent 将读取输出,始终使用 --json。 美观输出模式仅供人类使用。
  2. 对于默认质量的请求,优先使用智能路由。 genmedia run "<prompt>"(无需指定端点,也无需使用 --prompt)会对提示词分类,并根据模态路由至合理的默认端点。仅当用户指定模型、要求非默认行为(特定风格、质量档位、参数),或智能路由的默认选择不适合任务时,才进行显式端点发现。
  3. 绝不臆造端点 ID。 需要指定端点时,使用 genmedia models "<query>" 进行发现(会根据推断出的模态自动筛选),再使用 genmedia models --endpoint_id <id> 进行验证。
  4. 使用自定义参数运行前,先检查架构。 genmedia schema <endpoint_id> --json 会显示准确的字段名称。智能路由只需要 prompt;显式端点使用自定义参数时,必须先检查架构,否则猜测标志会导致 422 错误。
  5. 使用 --download 保存文件,不要使用 curl。 CLI 会处理身份验证、命名和文件格式检测。
  6. 长时间运行的生成任务使用 --async。 图像任务通常会立即完成;视频、音频和 3D 任务通常需要排队并轮询状态。

命令索引

命令用途
genmedia setup配置 API 密钥、输出模式和自动更新
genmedia models <query>搜索目录(或使用 --category、--endpoint_id)
genmedia schema <endpoint_id>检查输入和输出(精简格式或 --format openapi)
genmedia run <endpoint_id> --<param> <value>执行模型
genmedia status <endpoint_id> <request_id>轮询异步任务(支持 --result、--logs、--cancel、--download)
genmedia upload <path-or-url>将本地文件或远程 URL 上传至 fal.ai CDN
genmedia pricing <endpoint_id>查看每次调用的费用
genmedia docs <query>搜索 fal.ai 文档
genmedia init将默认技能包安装到 .agents/skills/ 或 .claude/skills/
`genmedia skills <listinstall
genmedia version / genmedia update检查或应用 CLI 更新

快速用法

智能路由(默认质量请求的首选方式)

CLI 会根据模态(image / video / music / tts / 3d)对提示词分类,并选择合理的默认端点。输出包含一个 routed 区块,可供你验证实际运行的端点。

genmedia run "a cat on the moon" --json
genmedia run "a 5-second clip of a robot dancing" --json
genmedia run "narrate this paragraph in a calm voice" --json

随时可以使用显式端点 ID 覆盖(包含 / 的位置参数):

genmedia run fal-ai/flux/pro --prompt "a cat on the moon" --json
用户描述的任务较模糊或需要指定端点时进行发现

genmedia models "<query>" 会自动应用与智能路由器相同分类器给出的 --category,因此结果列表会聚焦于正确的模态。传入 --no-classify 可禁用此功能,也可通过 --category <cat> 覆盖。

genmedia models "background removal product image" --json
genmedia models --category text-to-video --limit 5 --json
genmedia models "video models with character consistency" --no-classify --json
genmedia docs "webhook callbacks" --json
运行指定模型并下载结果
genmedia run fal-ai/flux/dev \
 --prompt "a cat on the moon" \
 --download "./out/{request_id}_{index}.{ext}" \
 --json
异步运行并轮询
SUBMIT=$(genmedia run fal-ai/veo3.1 --prompt "a dog running" --async --json)
REQ=$(echo "$SUBMIT" | jq -r '.request_id')
genmedia status fal-ai/veo3.1 "$REQ" \
 --download "./out/{request_id}_{index}.{ext}" \
 --json

智能路由同样支持异步运行——响应包含 routed 和 endpoint_id,便于你确定应对哪个端点使用 status 进行轮询:

SUBMIT=$(genmedia run "a 30-second video of waves" --async --json)
REQ=$(echo "$SUBMIT" | jq -r '.request_id')
EP=$(echo "$SUBMIT" | jq -r '.endpoint_id')
genmedia status "$EP" "$REQ" --download "./out/" --json
上传后运行
URL=$(genmedia upload ./photo.jpg --json | jq -r '.url')
genmedia run fal-ai/nano-banana-pro/edit \
 --image_urls "$URL" \
 --prompt "make the sky stormy" \
 --download "./out/{request_id}_{index}.{ext}" \
 --json

设置(仅首次需要)

如果尚未安装 genmedia:

curl https://genmedia.sh/install -fsS | bash # Linux / macOS
irm https://genmedia.sh/install.ps1 | iex # Windows PowerShell
genmedia setup --non-interactive --api-key "$FAL_KEY"

有关设置的完整详情(输出模式、自动更新、.env 加载),请参阅 full-reference.md。

评论

支持 Markdown