mcpField
G
generate-video

generate-video

github.com/b-open-io创意与媒体948 次安装5 周前更新
代码仓库

关于 generate-video

generate-video 是一项用于通过 Veo 3.1 等支持的提供方生成短视频的技能,涵盖提示词改写、风格选择及文本或图像驱动的生成。

主要功能

  1. 01文本生成视频与图像动画
  2. 02选择风格库样式
  3. 03提示词改写指南
  4. 04参考图像与帧插值
  5. 05分辨率、时长和画幅控制

适用场景

  1. 01根据文字描述生成视频
  2. 02为现有图像添加动画
  3. 03使用参考图保持主体一致
  4. 04生成风格化起始帧并制作视频

安装

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

$npx skills add https://github.com/b-open-io/gemskills --skill generate-video

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.clawnet/
unsigned-skill.json
references/
veo-prompt-guide.md
scripts/
generate.ts

详细介绍

生成视频

使用 Veo 3.1(veo-3.1-generate-preview)生成视频,支持原生音频、720p/1080p/4K 分辨率和 4–8 秒的片段。

适用场景

当用户要求执行以下操作时,使用此技能:

  • 根据文本提示生成视频(文本转视频)
  • 为现有图像制作动画(图像转视频)
  • 使用艺术风格库创建风格化视频片段
  • 构建图像转视频工作流,并自动生成起始帧

重要:作为后台任务运行

Veo 视频生成需要 11 秒到 6 分钟。脚本会在内部处理轮询,并且仅在完成时输出文件路径。

务必将生成脚本作为后台任务运行,避免阻塞对话,并避免轮询输出占用过多上下文:

# CORRECT: background task
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "prompt" --output video.mp4
# Run with run_in_background: true in the Bash tool

后台任务完成后,只读取输出的最后一行(文件路径)。不要读取完整输出——其中只有 stderr 进度点。

选择风格

如果用户未指定风格,请在继续之前提供多选问题:

你希望如何处理艺术风格?

  1. 选择一种风格 - 查看 169 种风格的视觉效果并选择一种
  2. 由我选择 - 我会根据你的提示推荐一种风格
  3. 不使用风格 - 不指定特定艺术风格直接生成

使用 AskUserQuestion 工具提供此选项。

如果用户选择“选择一种风格”,启动交互式风格选择器:

STYLE_JSON=$(bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/scripts/preview_server.ts --pick --port=3456)

通过生成命令的 --style <id> 传入选定的风格。

如果用户已指定风格,跳过此步骤,直接使用 --style。

重写提示词

生成任何视频之前,都要使用 references/veo-prompt-guide.md 中的指南重写用户的提示词。

通过添加以下内容来完善提示词:

  1. 主体细节 - 具体的外观、位置、大小
  2. 动作/运动 - 哪些元素会移动、速度和方向
  3. 风格/美学 - 视觉处理方式、调色板
  4. 镜头运动 - 平移、推轨、环绕、静止
  5. 构图 - 取景、景深、焦点
  6. 氛围/音频 - 光线氛围、声音提示(Veo 会生成原生音频)
转换示例

用户说:“海浪” 重写后:“黄金时段,戏剧化的慢动作海浪拍打着深色火山岩。水花在温暖的阳光下闪耀,形成彩虹色薄雾。低角度拍摄,镜头缓慢向前推轨。伴随着低沉的海浪轰鸣声,远处传来海鸥的叫声。”

用法

bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "prompt" [options]
选项
  • --input <path> - 起始帧图像(图像转视频模式)
  • --ref <path> - 用于保持主体一致性的参考图像(最多 3 张,可多次指定)。自动选择 replicate-veo 模型。
  • --last-frame <path> - 用于插帧的结束帧。自动选择 replicate-veo 模型。
  • --style <id> - 应用风格库中的风格(与 generate-image 相同)
  • --aspect <ratio> - 16:9(默认)或 9:16
  • --resolution <res> - 720p(Gemini 默认)、1080p(Replicate 默认)、4k(仅限 Gemini API)
  • --duration <sec> - 4、6、8(默认值:8)
  • --negative <text> - 负面提示词(需要避免的内容)
  • --seed <n> - 用于确保结果可复现的随机种子
  • --output <path> - 输出 .mp4 路径
  • --provider <name> - gemini(Veo)或 xai(Grok Imagine)。省略时,根据可用密钥自动选择。--model 是旧版别名(veo/replicate-veo→gemini,grok→xai)。
  • --oneshot - 仅限 xAI:在 grok-imagine-video(v1)上直接进行文本转视频,而非使用默认的自动生成帧 → grok-imagine-video-1.5 图像转视频流程
  • --no-audio - 禁用音频生成(仅限 Replicate Veo)
  • --auto-image - 与 --style 搭配使用,先自动生成风格化起始帧(Veo)
示例
# Text-to-video (Gemini API, default)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "Ocean waves crashing on volcanic rocks at sunset" --output waves.mp4

# Image-to-video (animate an existing image)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "The lion slowly turns its head, dots shimmer" --input lion.png --output lion.mp4

# Subject-consistent video with reference images (auto-selects Replicate Veo)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "Two warriors face off in a wheat field, dramatic standoff" \
  --ref warrior1.png --ref warrior2.png --ref scene.png --output standoff.mp4

# Image-to-video with last frame interpolation (auto-selects Replicate Veo)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "Camera slowly pans across the landscape" \
  --input start.png --last-frame end.png --output pan.mp4

# With art style
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "Mountain landscape comes alive with wind" --style impr --output mountain.mp4

# Full pipeline: auto-generate styled image, then animate
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "A lion turns majestically" --style kusm --auto-image --output lion.mp4

# Vertical video for social
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "Waterfall in lush forest" --aspect 9:16 --resolution 1080p --output waterfall.mp4

# High resolution (Gemini API)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "City skyline timelapse" --resolution 4k --duration 8 --output city.mp4

# xAI Grok Imagine — default path: auto-generate a frame, then animate with grok-imagine-video-1.5
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "neon koi swimming in a dark pond" --provider xai --resolution 720p --output koi.mp4

# xAI one-shot text-to-video (grok-imagine-video v1) — faster/cheaper, lower quality
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "a paper crane rotating" --provider xai --oneshot --output crane.mp4

# xAI image-to-video from your own frame (grok-imagine-video-1.5, up to 1080p)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "the scene comes alive with wind" --provider xai --input frame.png --resolution 1080p --output alive.mp4

参考图像(主体一致性)

使用 --ref 传入 1-3 张参考图像,生成主体一致的视频(R2V)。此操作会自动使用 Replicate Veo 3.1。

限制:

  • 由于 Replicate API 的限制,不能同时使用 --ref 和 --input
  • 参考图像必须为 16:9 宽高比,视频时长必须为 8s
  • 提供参考图像时,最后一帧会被忽略

适用场景: 在不同摄像机角度下保持角色相貌一致,或让生成视频中的特定人物/物体与参考图像相匹配。

宽高比匹配(图生视频的关键)

使用 --input 时,输入图像必须与目标视频的宽高比一致。将正方形图像用于 16:9 视频会产生黑色侧边,并裁切画面边缘。

  • 以 --aspect 16:9(默认视频)或 --aspect 9:16(竖屏视频)生成起始帧
  • --auto-image 标志会自动处理此操作

两步工作流(先生成图像,再生成视频)

为获得最大控制力,请单独生成起始帧。务必匹配宽高比:

# Step 1: Generate styled image at 16:9 (matches default video aspect)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "majestic lion portrait" --style kusm --aspect 16:9 --size 2K --output lion.png

# Step 2: Animate the image
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-video/scripts/generate.ts "The lion turns its head slowly, dots shimmer in the light" --input lion.png --output lion.mp4

上下文管理

  • 切勿将生成的 .mp4 文件读回上下文——请指示用户使用 open <file>.mp4 播放
  • 作为后台任务运行——脚本只会将文件路径输出到 stdout
  • 自动生成的起始帧(通过 --auto-image)会保存为 PNG 文件,供参考

模型与提供商

有两个提供商,可通过 --provider 选择;省略时则会自动选择 (视频生成的优先顺序为 xai > gemini)。使用 --ref 或 --last-frame 时, 请求会自动路由至 Gemini/Veo(这些功能仅适用于 Veo)。

请根据提供商调整提示词——确定提供商后,阅读相应的指南:providers/prompts/video.gemini.md 或 providers/prompts/video.xai.md。

gemini — Veo 3.1(GEMINI_API_KEY)
  • Gemini API(默认):veo-3.1-generate-preview。支持文本生成视频、 图像生成视频、720p/1080p/4K、原生音频和负面提示词。可通过 GEMINI_VIDEO_MODEL 覆盖。
  • Replicate Veo(高级功能,需要 REPLICATE_API_TOKEN, 使用 --ref/--last-frame 时会自动选择):用于主体一致性的参考图像(R2V)、 最后一帧插值,以及 720p/1080p。
xai — Grok Imagine Video(XAI_API_KEY)
  • 默认(文本提示词):生成起始帧(如果 Gemini 可用则使用 Gemini,否则使用 Grok Imagine image),然后通过 grok-imagine-video-1.5 制作动画——这是 最新、质量最高的模型(仅支持图像生成视频,最高 1080p,支持原生音频)。
  • --oneshot:直接使用 grok-imagine-video(v1)进行文本生成视频——速度 更快、成本更低,但质量较差。
  • --input <frame>:使用你自己的起始帧,直接交由 grok-imagine-video-1.5 处理。
  • 低阶套餐的速率限制约为每秒 1 个请求(提供商会自动重试)。
  • 每个视频片段都会报告费用(xAI cost_in_usd_ticks)。

模型已于 2026 年 6 月在线验证:veo-3.1-generate-preview、grok-imagine-video、grok-imagine-video-1.5。grok-imagine-video-1.5 仅支持图像生成视频——API 会拒绝对其进行文本生成视频请求。如果存在更新一代的模型,请停止操作,并建议向 b-open-io/gemskills 提交 PR。

参考文件

如需了解详细的视频提示词策略:

  • references/veo-prompt-guide.md - Veo 提示词要素、音频提示、负面提示词和图像生成视频技巧
  • ask-gemini skill 的 references/gemini-api.md - 当前 Gemini/Veo 模型和 SDK 信息

评论

支持 Markdown