catalog/repos/agntswrm--agent-media.md

15 KiB
Raw Permalink Blame History

AI媒体处理命令行工具

媒体处理 图像生成 视频生成 音频转录 AI工具 CLI

agent-media

面向 AI 代理的媒体处理命令行工具。

  • 图像:生成、编辑、去除背景、超分辨率放大、调整尺寸、格式转换、扩展画布、裁剪
  • 视频:生成(文本生成视频 & 图像生成视频)
  • 音频:从视频中提取、转录(支持说话人识别)

安装

全局安装

npm install -g agent-media@latest

从源码安装

git clone https://github.com/agntswrm/agent-media
cd agent-media
pnpm install && pnpm build && pnpm link --global

通过 bunx / npx 使用

无需安装,直接运行:

bunx agent-media@latest --help
npx agent-media@latest --help

为 AI 代理安装技能

将 agent-media 技能安装到你的编程代理Claude Code、Cursor、Codex 等):

npx skills add agntswrm/agent-media

这将为你的 AI 代理添加媒体处理技能,可自动调用。可用技能如下:

  • agent-media - 所有功能概览
  • image-generate - 从文本生成图像
  • image-edit - 使用文本提示编辑图像
  • image-resize - 调整图像尺寸
  • image-convert - 转换图像格式
  • image-extend - 通过填充扩展图像画布
  • image-remove-background - 去除背景
  • image-crop - 裁剪图像至指定尺寸
  • image-upscale - 使用 AI 超分辨率放大图像
  • audio-extract - 从视频中提取音频
  • audio-transcribe - 将音频转录为文本
  • video-generate - 从文本或图像生成视频

快速上手

# 生成图像
agent-media image generate --prompt "a robot" --out rob.png

# 去除背景
agent-media image remove-background --in rob.png --out rob_nobg.png

# 编辑图像
agent-media image edit --in rob_nobg.png --prompt "the robot is sitting on a bench next to a cat, in the background you can see the Eiffel Tower in Paris" --out rob_cat_paris.png

# 生成带音频的视频(猫叫声,机器人说话!)
agent-media video generate --in rob_cat_paris.png --prompt "the cat meows and the robot says: \"Yes, me too.\"" --audio --out rob_cat_video.mp4

# 从视频中提取音频
agent-media audio extract --in rob_cat_video.mp4 --out rob_cat_audio.mp3

# 转录音频
agent-media audio transcribe --in rob_cat_audio.mp3

环境要求

本地处理(无需 API 密钥):调整尺寸、格式转换、扩展画布、裁剪、超分辨率放大、音频提取、去除背景、转录

云端处理(需要 API 密钥):图像生成、图像编辑、超分辨率放大、视频生成、去除背景、转录

注意:使用本地去除背景、放大或转录时,可能会看到 mutex lock failed 错误——忽略即可,若 JSON 显示 "ok": true 则输出正常。


image图像

agent-media image resize --in <路径> [选项]
agent-media image convert --in <路径> --format <格式>
agent-media image extend --in <路径> --padding <像素> --color <十六进制颜色>
agent-media image crop --in <路径> --width <像素> --height <像素>
agent-media image generate --prompt <文本>
agent-media image edit --in <路径...> --prompt <文本>
agent-media image remove-background --in <路径>
agent-media image upscale --in <路径>

resize调整尺寸

本地处理

agent-media image resize --in sunset-mountains.jpg --width 800
agent-media image resize --in sunset-mountains.jpg --height 600
agent-media image resize --in https://ytrzap04kkm0giml.public.blob.vercel-storage.com/sunset-mountains.jpg --width 800
选项 说明
--in <路径> 输入文件路径或 URL必填
--width <像素> 目标宽度(像素)
--height <像素> 目标高度(像素)
--out <路径> 输出路径、文件名或目录(默认:./

convert格式转换

本地处理

agent-media image convert --in sunset-mountains.png --format webp
agent-media image convert --in sunset-mountains.jpg --format png
agent-media image convert --in https://ytrzap04kkm0giml.public.blob.vercel-storage.com/sunset-mountains.png --format jpg --quality 90
选项 说明
--in <路径> 输入文件路径或 URL必填
--format <格式> 输出格式png、jpg、webp必填
--quality <数值> 有损格式的质量 1-100默认80
--out <路径> 输出路径、文件名或目录(默认:./

extend扩展画布

本地处理

在图像四周添加指定颜色的纯色填充,扩展画布尺寸。

agent-media image extend --in sunset-mountains.jpg --padding 50 --color "#E4ECF8"
agent-media image extend --in https://ytrzap04kkm0giml.public.blob.vercel-storage.com/sunset-mountains.png --padding 100 --color "#FFFFFF"
选项 说明
--in <路径> 输入文件路径或 URL必填
--padding <像素> 四周各添加的填充像素数(必填)
--color <十六进制> 扩展区域的背景颜色(必填),同时会合并透明度。
--dpi <数值> 输出图像的 DPI/分辨率默认300
--out <路径> 输出路径、文件名或目录(默认:./

crop裁剪

本地处理

以焦点为中心裁剪图像至指定尺寸。裁剪区域以焦点为中心计算,同时保持在图像边界内。

agent-media image crop --in sunset-mountains.jpg --width 800 --height 600
agent-media image crop --in sunset-mountains.jpg --width 800 --height 600 --focus-x 20 --focus-y 30
agent-media image crop --in https://ytrzap04kkm0giml.public.blob.vercel-storage.com/sunset-mountains.jpg --width 400 --height 400
选项 说明
--in <路径> 输入文件路径或 URL必填
--width <像素> 裁剪区域宽度(像素,必填)
--height <像素> 裁剪区域高度(像素,必填)
--focus-x <数值> 焦点 X 坐标 0-100默认50 = 居中)
--focus-y <数值> 焦点 Y 坐标 0-100默认50 = 居中)
--dpi <数值> 输出图像的 DPI/分辨率默认300
--out <路径> 输出路径、文件名或目录(默认:./

generate生成

需要 API 密钥

agent-media image generate --prompt "a cat wearing a hat"
agent-media image generate --prompt "sunset over mountains" --width 1024 --height 768
选项 说明
--prompt <文本> 文字描述(必填)
--width <像素> 宽度默认1280
--height <像素> 高度默认720
--out <路径> 输出路径、文件名或目录(默认:./
--provider <名称> 服务商fal、replicate、runpod、ai-gateway
--model <名称> 模型覆盖(如 fal-ai/flux-2bfl/flux-2-pro

edit编辑

需要 API 密钥

使用文本提示编辑一张或多张图像(图像到图像)。支持多张输入图像,用于融合风格、主体或场景。

agent-media image edit --in sunset-mountains.jpg --prompt "make the sky more vibrant"
agent-media image edit --in https://ytrzap04kkm0giml.public.blob.vercel-storage.com/man-portrait.png --prompt "add sunglasses"
agent-media image edit --in style.jpg content.jpg --prompt "apply the style of the first image to the second"
选项 说明
--in <路径...> 一张或多张输入文件路径或 URL必填
--prompt <文本> 所需编辑效果的文字描述(必填)
--out <路径> 输出路径、文件名或目录(默认:./
--provider <名称> 服务商fal、replicate、runpod、ai-gateway
--model <名称> 模型覆盖(如 fal-ai/flux-2/editgoogle/gemini-3-pro-image

remove-background去除背景

本地或云端处理

agent-media image remove-background --in man-portrait.png
agent-media image remove-background --in https://ytrzap04kkm0giml.public.blob.vercel-storage.com/man-portrait.png
选项 说明
--in <路径> 输入文件路径或 URL必填
--out <路径> 输出路径、文件名或目录(默认:./
--provider <名称> 服务商local、fal、replicate

upscale超分辨率放大

本地或云端处理

使用 AI 超分辨率技术放大图像,在提升分辨率的同时生成细节。

agent-media image upscale --in sunset-mountains.jpg
agent-media image upscale --in sunset-mountains.jpg --scale 4 --provider fal
agent-media image upscale --in https://ytrzap04kkm0giml.public.blob.vercel-storage.com/sunset-mountains.jpg --provider replicate
选项 说明
--in <路径> 输入文件路径或 URL必填
--scale <数值> 放大倍数2 或 4默认2。本地模式始终输出 4 倍。
--out <路径> 输出路径、文件名或目录(默认:./
--provider <名称> 服务商local、fal、replicate
--model <名称> 模型覆盖

video视频

# 从文本生成视频
agent-media video generate --prompt <文本>

# 从图像生成视频(为图像添加动效)
agent-media video generate --in <图像> --prompt <文本>

generate生成

需要 API 密钥

从文本提示生成视频。可选择提供输入图像为其添加动效(图像生成视频)。提示词描述视频中应发生的内容。

# 文本生成视频
agent-media video generate --prompt "a cat walking through a garden"

# 图像生成视频(为图像添加动效)
agent-media video generate --in woman-portrait.png --prompt "person smiles and waves hello"

# 带音频/语音生成runpod
agent-media video generate --in woman-portrait.png --prompt "The woman says: \"Hello, welcome to our channel!\"" --audio --provider runpod

# 带环境音效fal
agent-media video generate --prompt "fireworks in the night sky" --audio --duration 10 --provider fal

# 更高分辨率
agent-media video generate --prompt "ocean waves" --resolution 1080p
选项 说明
--prompt <文本> 视频的文字描述(必填)
--in <路径> 图像生成视频的输入图像(可选)
--duration <秒> 时长默认runpod 为 5 秒,其他为 6 秒)
--resolution <分辨率> 分辨率720p、1080p默认720p
--fps <数值> 帧率25、50默认25
--audio 生成音轨(使用 runpod 时,引号中的文本将生成语音)
--out <路径> 输出路径、文件名或目录(默认:./
--provider <名称> 服务商fal、replicate、runpod
--model <名称> 模型覆盖

audio音频

# 从视频中提取音频
agent-media audio extract --in <视频>

# 将音频转录为文本
agent-media audio transcribe --in <音频>

extract提取

本地处理

从视频文件中提取音轨。

agent-media audio extract --in woman-greeting.mp4
agent-media audio extract --in woman-greeting.mp4 --format wav
agent-media audio extract --in https://ytrzap04kkm0giml.public.blob.vercel-storage.com/woman-greeting.mp4
选项 说明
--in <路径> 输入视频文件路径或 URL必填
--format <格式> 输出格式mp3、wav默认mp3
--out <路径> 输出路径、文件名或目录(默认:./

transcribe转录

本地或云端处理(说话人识别需要云端)

将音频转录为带时间戳的文本。说话人识别(分离)需要使用云端服务商。

agent-media audio transcribe --in woman-greeting.mp3
agent-media audio transcribe --in woman-greeting.mp3 --diarize --speakers 2
agent-media audio transcribe --in https://ytrzap04kkm0giml.public.blob.vercel-storage.com/woman-greeting.mp3
选项 说明
--in <路径> 输入音频文件路径或 URL必填
--diarize 启用说话人识别(仅限云端)
--language <代码> 语言代码(未提供时自动检测)
--speakers <数值> 说话人数量提示
--out <路径> 输出路径、文件名或目录(默认:./
--provider <名称> 服务商local、fal、replicate
--model <名称> 模型覆盖

输出格式

所有命令均向标准输出返回 JSON

{
  "ok": true,
  "media_type": "image",
  "action": "resize",
  "provider": "local",
  "output_path": "resized_123_abc.png",
  "mime": "image/png",
  "bytes": 45678
}

发生错误时:

{
  "ok": false,
  "error": {
    "code": "INVALID_INPUT",
    "message": "At least one of width or height must be specified"
  }
}

成功时退出码为 0,出错时为 1

服务商

默认模型

服务商 resize convert extend crop 图像生成 图像编辑 去除背景 放大 视频生成 转录
local ✓* ✓* ✓* ✓* - - Xenova/modnet** Xenova/swin2SR** - moonshine-base**
fal - - - - fal-ai/flux-2 fal-ai/flux-2/edit fal-ai/birefnet/v2 fal-ai/esrgan fal-ai/ltx-2 fal-ai/wizper
replicate - - - - black-forest-labs/flux-2-dev black-forest-labs/flux-kontext-dev men1scus/birefnet nightmareai/real-esrgan lightricks/ltx-video whisper-diarization
runpod - - - - alibaba/wan-2.6 google/nano-banana-pro-edit - - wan-2.6 -
ai-gateway - - - - bfl/flux-2-pro google/gemini-3-pro-image - - - -

* 由 Sharp 驱动,提供快速图像处理 ** 由 Transformers.js 驱动,支持本地机器学习推理(首次使用时自动下载模型)

使用 --model <名称> 可覆盖任意命令的默认模型。

服务商选择规则

  1. 显式标志(最高优先级):--provider fal
  2. 环境变量自动检测:设置 FAL_API_KEYREPLICATE_API_TOKENRUNPOD_API_KEYAI_GATEWAY_API_KEY 可自动选择对应服务商
  3. 回退到本地未指定服务商时resize/convert 使用本地处理
  4. 首个支持的服务商:用于 generate/remove-background

环境变量

变量 说明 获取密钥
FAL_API_KEY fal.ai API 密钥 fal.ai
REPLICATE_API_TOKEN Replicate API 令牌 replicate.com
RUNPOD_API_KEY Runpod API 密钥 runpod.io
AI_GATEWAY_API_KEY AI Gateway API 密钥 vercel.com
AGENT_MEDIA_DIR 输出目录(默认:当前目录) -

路线图

  • 本地去除背景(无需任何 API 密钥)
  • 本地转录(无需任何 API 密钥)
  • 视频生成(文本生成视频 & 图像生成视频)
  • 批量处理支持