使用说明
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机密
- 旧AI API密钥
- OpenRouter API密钥(用于
enhance_prompt工具)
安装
- 克隆或下载: 获取服务器代码。
- 导航到目录: 在服务器的根目录中打开终端(
runwayml-mcp-server). - 安装依赖关系:
npm install
配置
- 创建
.env文件: 在服务器的根目录中,创建一个名为.env. - 添加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
运行服务器
- 构建服务器: 编译TypeScript代码:
npm run build - 启动服务器:你应该看到这样的消息
npm startRunwayML MCP server running on stdio在终端的错误输出(stderr)中。
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:(可选)跑道型号(例如“gen-2”)。runway_resolution:(可选)跑道分辨率(1280:768或768:1280).runway_watermark:(可选)布尔值,默认值false.luma_model:(可选)Luma型号(ray-flash-2,ray-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:(可选)跑道型号(gen3a_turbo(默认))。runway_duration:(可选)跑道持续时间(5(默认)或10).runway_ratio:(可选)跑道分辨率(1280:768或768:1280).runway_watermark:(可选)布尔值,默认值false.luma_model:(可选)Luma型号(ray-flash-2,ray-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秒的赛博朋克黑色视频片段。
步骤:
-
生成基础图像(Luma):
{ "tool_name": "luma_generate_image", "arguments": { "prompt": "Overhead shot of a dark, rainy cyberpunk city street at night. Bright neon signs reflect on wet pavement, resembling rivers of light flowing between towering chrome skyscrapers. Film noir aesthetic, photorealistic.", "aspect_ratio": "16:9" } }(等待图像生成完成并获取图像URL)
-
动画图像(Luma):
{ "tool_name": "generate_image_to_video", "arguments": { "provider": "lumaai", "promptImage": "{IMAGE_URL_FROM_STEP_1}", "promptText": "Slow pan left across the rainy cyberpunk cityscape, neon lights flickering subtly.", "luma_aspect_ratio": "16:9", "duration": 5 } }(等待视频生成完成)
2.产品广告理念(浮动耳塞)
目标: 制作一段5秒的视频,展示一个漂浮在极简主义环境中的未来主义耳塞。
步骤:
-
使用产品参考生成场景(Luma):
{ "tool_name": "luma_generate_image", "arguments": { "prompt": "A single, sleek futuristic wireless earbud floats weightlessly in the center of a bright, minimalist white room with soft, diffused ambient light. Zero gravity effect.", "aspect_ratio": "1:1", "image_ref": [{ "url": "{PRODUCT_IMAGE_URL}", "weight": 0.8 }] } }(等待图像生成完成并获取图像URL)
-
动画场景(Luma):
{ "tool_name": "generate_image_to_video", "arguments": { "provider": "lumaai", "promptImage": "{IMAGE_URL_FROM_STEP_1}", "promptText": "The earbud slowly rotates and drifts gently in zero gravity.", "luma_aspect_ratio": "1:1", "duration": 5 } }(等待视频生成完成)
3.图像动画(RunwayML Gen3a)
目标: 使用RunwayML的Gen3a模型为现有图像设置动画。
步骤:
- (可选)生成基础图像(Luma): 使用
luma_generate_image如果你没有图像。 - 图像动画(RunwayML):(等待视频生成完成)
{ "tool_name": "generate_image_to_video", "arguments": { "provider": "runwayml", "promptImage": "{YOUR_IMAGE_URL}", "promptText": "Subtle zoom in, cinematic lighting.", "runway_model": "gen3a_turbo", "runway_duration": "5", "runway_ratio": "1280:768" // Or "768:1280" } }