返回市场
视频生成器

视频生成器

作者:wheattoast1111 星标更新:2025-06-18

项目介绍

MseeP.ai 安全评估徽章

RunwayML + Luma AI MCP 服务器

此MCP服务器提供了与RunwayML和Luma AI API交互的工具,用于视频和图像生成任务。

功能

  • 根据文本提示生成视频(RunwayML或Luma AI)。
  • 根据图像生成视频(RunwayML或Luma AI)。
  • 根据文本提示生成图像(Luma AI)。
  • 管理Luma AI生成物(列出、获取、删除)。
  • 向Luma AI生成物添加音频。
  • 放大Luma AI生成物。
  • 使用OpenRouter LLM增强提示词,然后再进行生成。

预备条件

  • Node.js(推荐使用v18 LTS或更高版本)
  • npm(通常随Node.js一起包含)
  • API密钥:
    • RunwayML API 密钥
    • Luma AI API 密钥
    • OpenRouter API 密钥(用于enhance_prompt工具)

安装

  1. 克隆或下载: 获取服务器代码。
  2. 导航到目录: 在服务器根目录(runwayml-mcp-server)中打开终端。
  3. 安装依赖项:
    npm install
    

配置

  1. 创建.env文件: 在服务器根目录中创建一个名为.env的文件。
  2. 添加API密钥: 将您的API密钥添加到.env文件中:
    RUNWAYML_API_SECRET=your_runwayml_api_secret_here
    LUMAAI_API_KEY=your_luma_api_key_here
    OPENROUTER_API_KEY=your_openrouter_api_key_here
    
    用实际的密钥替换占位符值。

运行服务器

  1. 构建服务器: 编译TypeScript代码:
    npm run build
    
  2. 启动服务器:
    npm start
    
    您应该在终端的错误输出(stderr)中看到类似“RunwayML MCP服务器正在stdio上运行”的消息。

MCP客户端设置(例如Claude桌面应用,Cline)

配置您的MCP客户端以连接到此服务器。具体步骤取决于客户端,但您通常需要提供:

  • 名称: 描述性名称(如runway-luma-server
  • 命令: node
  • 参数: 已编译服务器索引文件的完整路径(如/path/to/your/runwayml-mcp-server/build/server-index.js
  • 环境变量:
    • RUNWAYML_API_SECRET:您的RunwayML API 密钥
    • LUMAAI_API_KEY:您的Luma AI API 密钥
    • OPENROUTER_API_KEY:您的OpenRouter API 密钥

示例配置(概念性):

{
  "mcpServers": {
    "runway-luma-server": {
      "command": "node",
      "args": ["/full/path/to/runwayml-mcp-server/build/server-index.js"],
      "env": {
        "RUNWAYML_API_SECRET": "your_runwayml_api_secret_here",
        "LUMAAI_API_KEY": "your_luma_api_key_here",
        "OPENROUTER_API_KEY": "your_openrouter_api_key_here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

(记得将/full/path/to/替换为您系统上的实际路径)

可用工具

  • generate_text_to_video:根据文本生成视频。
    • provider:(可选)runwayml(默认)或lumaai
    • promptText:(必需)文本提示。
    • runway_model:(可选)Runway模型(如“gen-2”)。
    • runway_resolution:(可选)Runway分辨率(1280:768768:1280)。
    • runway_watermark:(可选)布尔值,默认false
    • luma_model:(可选)Luma模型(ray-flash-2ray-2(默认),ray-1-6)。
    • luma_aspect_ratio:(可选)Luma宽高比(如16:9(默认),1:1)。
    • luma_loop:(可选)布尔值。
    • duration:(可选)视频时长(秒数)。
    • seed:(可选)生成种子(数字)。
  • generate_image_to_video:根据图像生成视频。
    • provider:(可选)runwayml(默认)或lumaai
    • promptImage:(必需)输入图像的URL,或者对于Runway,一个数组[{uri: "url", position: "first" | "last"}]
    • promptText:(可选)伴随图像的文本提示。
    • runway_model:(可选)Runway模型(gen3a_turbo(默认))。
    • runway_duration:(可选)Runway时长(5(默认)或10)。
    • runway_ratio:(可选)Runway分辨率(1280:768768:1280)。
    • runway_watermark:(可选)布尔值,默认false
    • luma_model:(可选)Luma模型(ray-flash-2ray-2(默认),ray-1-6)。
    • luma_aspect_ratio:(可选)Luma宽高比(如16:9(默认))。
    • luma_loop:(可选)布尔值。
    • seed:(可选)生成种子(数字)。
  • enhance_prompt:使用OpenRouter优化提示词。
    • original_prompt:(必需)要优化的提示词。
    • model:(可选)OpenRouter模型名称(默认为一个强大的模型如anthropic/claude-3.5-sonnet)。
    • instructions:(可选)特定的优化指令。
  • luma_generate_image:使用Luma AI生成图像。
    • prompt:(必需)文本提示。
    • aspect_ratio:(可选)Luma宽高比(16:9(默认))。
    • model:(可选)Luma图像模型(photon-1(默认),photon-flash-1)。
    • image_ref:(可选)图像参考对象数组({url: string, weight?: number})。最多4个。
    • style_ref:(可选)样式参考对象数组({url: string, weight?: number})。最多1个。
    • character_ref:(可选)角色参考对象({ identity0: { images: [url1, ...] } })。
    • modify_image_ref:(可选)修改图像参考对象({url: string, weight?: number})。
  • luma_list_generations:列出之前的Luma AI生成物。
    • limit:(可选)结果数量(默认10)。
    • offset:(可选)分页偏移量(默认0)。
  • luma_get_generation:获取特定Luma AI生成物的详细信息。
    • generation_id:(必需)生成物的UUID。
  • luma_delete_generation:删除特定Luma AI生成物。
    • generation_id:(必需)生成物的UUID。
  • luma_get_camera_motions:列出支持的Luma AI提示词中的相机运动。(无参数)。
  • luma_add_audio:向Luma生成物添加音频。
    • generation_id:(必需)生成物的UUID。
    • prompt:(必需)音频提示。
    • negative_prompt:(可选)音频负面提示。
  • luma_upscale:放大Luma生成物。
    • generation_id:(必需)生成物的UUID。
    • resolution:(可选)目标分辨率(1080p(默认)或4k)。

(注意:对于涉及生成的工具(generate_*luma_upscale),服务器会立即启动任务并返回。进度更新和最终结果URL将通过MCP进度通知发送。)

示例工作流程

这里有一些如何结合服务器工具以实现常见用途的例子:

1. 音乐视频片段(赛博朋克黑色电影)

目标: 创建一段5秒钟的赛博朋克黑色电影风格视频片段,对应歌词“霓虹河流流过铬城”。

步骤:

  1. 生成基础图像(Luma):

    {
      "tool_name": "luma_generate_image",
      "arguments": {
        "prompt": "俯瞰夜晚的黑暗雨夜赛博朋克城市街道。明亮的霓虹灯在湿漉漉的地面上反射,形成光河,在高耸的铬色摩天大楼之间流淌。具有黑色电影美学,逼真的照片效果。",
        "aspect_ratio": "16:9"
      }
    }
    

    (等待图像生成完成并获取图像URL)

  2. 动画化图像(Luma):

    {
      "tool_name": "generate_image_to_video",
      "arguments": {
        "provider": "lumaai",
        "promptImage": "{IMAGE_URL_FROM_STEP_1}",
        "promptText": "缓慢地从左向右平移,穿过雨夜中的赛博朋克城市景观,霓虹灯微妙地闪烁。",
        "luma_aspect_ratio": "16:9",
        "duration": 5
      }
    }
    

    (等待视频生成完成)

2. 产品广告概念(漂浮耳塞)

目标: 创建一段5秒钟的视频,展示一款未来主义耳塞在极简环境中漂浮。

步骤:

  1. 生成带有产品参考的场景(Luma):

    {
      "tool_name": "luma_generate_image",
      "arguments": {
        "prompt": "单个光滑的未来无线耳塞在明亮的极简白色房间中心无重力地漂浮,周围是柔和的漫射环境光。零重力效果。",
        "aspect_ratio": "1:1",
        "image_ref": [{ "url": "{PRODUCT_IMAGE_URL}", "weight": 0.8 }]
      }
    }
    

    (等待图像生成完成并获取图像URL)

  2. 动画化场景(Luma):

    {
      "tool_name": "generate_image_to_video",
      "arguments": {
        "provider": "lumaai",
        "promptImage": "{IMAGE_URL_FROM_STEP_1}",
        "promptText": "耳塞缓慢旋转并在零重力下轻轻漂移。",
        "luma_aspect_ratio": "1:1",
        "duration": 5
      }
    }
    

    (等待视频生成完成)

3. 图像动画(RunwayML Gen3a)

目标: 使用RunwayML的Gen3a模型对现有图像进行动画处理。

步骤:

  1. (可选)生成基础图像(Luma): 如果没有图像,可以使用luma_generate_image
  2. 动画化图像(RunwayML):
    {
      "tool_name": "generate_image_to_video",
      "arguments": {
        "provider": "runwayml",
        "promptImage": "{YOUR_IMAGE_URL}",
        "promptText": "轻微的缩放,电影照明。",
        "runway_model": "gen3a_turbo",
        "runway_duration": "5",
        "runway_ratio": "1280:768" // 或 "768:1280"
      }
    }
    
    (等待视频生成完成)