关于 genmedia
genmedia 是面向 Agent 的 fal.ai 命令行工具,支持终端易读输出和供 Agent 使用的 JSON。它涵盖模型发现、执行、异步任务、上传与结果下载。
主要功能
- 01按提示词自动选择模型
- 02发现模型并查看参数结构
- 03同步与异步执行
- 04上传文件并下载结果
- 05安装和管理 Agent 技能
适用场景
- 01根据提示词生成媒体
- 02选择并检查 fal.ai 端点
- 03运行耗时的视频或音频任务
- 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。
关键规则
- 如果 Agent 将读取输出,始终使用
--json。 美观输出模式仅供人类使用。 - 对于默认质量的请求,优先使用智能路由。
genmedia run "<prompt>"(无需指定端点,也无需使用--prompt)会对提示词分类,并根据模态路由至合理的默认端点。仅当用户指定模型、要求非默认行为(特定风格、质量档位、参数),或智能路由的默认选择不适合任务时,才进行显式端点发现。 - 绝不臆造端点 ID。 需要指定端点时,使用
genmedia models "<query>"进行发现(会根据推断出的模态自动筛选),再使用genmedia models --endpoint_id <id>进行验证。 - 使用自定义参数运行前,先检查架构。
genmedia schema <endpoint_id> --json会显示准确的字段名称。智能路由只需要prompt;显式端点使用自定义参数时,必须先检查架构,否则猜测标志会导致 422 错误。 - 使用
--download保存文件,不要使用 curl。 CLI 会处理身份验证、命名和文件格式检测。 - 长时间运行的生成任务使用
--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 <list | install |
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