使用说明
ComfyUI MCP服务器
是的,此图像是由该工具生成的。是的,我们知道人工智能艺术充其量是道德上的问题,最坏的情况下是真正危险的。我们建立这个是为了内部资产生成,而不是为了取代艺术家。负责任地使用或根本不使用。
当你的Mac渲染黑色帧时,你会学习如何分布。
我希望Claude通过我本地的ComfyUI设置生成图像。Ran Sonic。10秒的纯黑色画面。GPU无法跟上。
所以我分发了它。
MCP服务器在Fly.io-static上运行,自动缩放。GPU计算在RunPod上运行,按秒付费。生成的资产与签名的URL一起进入Supabase。Tailscale将它们安全地连接在一起。最初的“让我生成一些图像”变成了一个生产分布式系统,因为另一种选择是一个什么都不输出的空间加热器。
现在,Claude可以生成图像,对其进行升级,运行ControlNet管道,进行智能修复/外绘,使用IP适配器传输样式,合成语音,并创建唇同步的说话头视频——所有这些都是通过自然对话完成的。 40个工具。796次测试。不收取API费用。全参数控制。
You: "Generate a cyberpunk cityscape at sunset and save it to ./assets/hero.png"
Claude: I'll generate that image for you.
[Calls generate_image with prompt, saves to ./assets/hero.png]
Done! The cyberpunk cityscape has been saved to ./assets/hero.png
特性
- 想象工具:终极生成工具——用自然语言描述你想要什么,并通过自动检测模型设置获得优化结果
- 智能提示:根据您的模型自动生成优化提示(Illustrious、Pony、Flux、SDXL、Realistic、SD1.5)
- 管道执行:链txt2img→ 嗨,修复→ 在一个命令中升级
- 质量预设:从“草稿”(快速)到“超级”(升级后的完整管道)
- 文本到图像:通过完全参数控制从文本提示生成图像
- 图像到图像:使用AI引导转换现有图像
- AI升级:使用RealESRGAN和其他型号提高分辨率
- LoRA支持:应用具有可调权重的自定义样式和角色LoRA
- 控制网:使用边缘检测、深度图、姿势等生成引导
- IP适配器:从参考图像转换风格和构图
- 修复:有选择地重新生成遮罩区域,同时保留上下文
- 外绘:通过连贯的AI生成在任何方向上扩展画布
- 智能口罩:使用GroundingDINO+SAM分割自动生成掩码
- 文本转语音:从短音频样本中克隆F5-TTS语音
- 嘴唇同步视频:使用SONIC制作会说话的头部视频
- 肖像一代:多后端化身创建(SDXL、Flux GGUF、Flux FP8)
- 模型发现:列出可用的检查点、LoRA、采样器和调度器
- 队列监视:检查生成状态和待处理作业
先决条件
- Comfy用户界面 在本地运行
- Node.js 20+
- 至少一个稳定扩散检查点模型
必需的自定义节点
某些功能需要额外的ComfyUI自定义节点。通过ComfyUI管理器或手动安装这些:
| 功能 | 必需节点 | 存储库 |
|---|---|---|
| IP适配器(样式转换) | ComfyUI_IPAdapter_plus | cubiq/ComfyUI_IPA适配器+ |
| ControlNet预处理 | comfyui_ControlNet_aux | Fannovel16/comfyui_controlnet_aux |
| 智能口罩(SAM) | comfyui_segment_anything | 故事/喜剧_片段_任何东西 |
| 文本检测(GroundingDINO) | ComfyUI接地DINO | IDEA研究/扎根迪诺 |
| 唇同步(SONIC) | 康菲优伊SONIC | smthemex/ComfyUI索尼 |
| TTS(F5-TTS) | ComfyUI-F5-TTS | 超杰/康富友-F5-TTS |
使用ComfyUI管理器快速安装:
- 打开ComfyUI web界面
- 点击“管理器”按钮
- 搜索节点名称并安装
- 重新启动ComfyUI
核心功能 (txt2img、img2img、升级、基本ControlNet)无需任何自定义节点即可工作。
快速开始
选项A:从npm安装(推荐)
npx @peleke.s/comfyui-mcp
添加 ~/.claude/settings.json (全球)或 .claude/settings.local.json (项目特定):
{
"mcpServers": {
"comfyui": {
"command": "npx",
"args": ["-y", "@peleke.s/comfyui-mcp"],
"env": {
"COMFYUI_URL": "http://localhost:8188",
"COMFYUI_MODEL": "dreamshaper_8.safetensors"
}
}
}
}
选项B:从源代码运行
git clone https://github.com/Peleke/comfyui-mcp.git
cd comfyui-mcp
npm install
npm run build
{
"mcpServers": {
"comfyui": {
"command": "node",
"args": ["/absolute/path/to/comfyui-mcp/dist/index.js"],
"env": {
"COMFYUI_URL": "http://localhost:8188",
"COMFYUI_MODEL": "dreamshaper_8.safetensors"
}
}
}
}
启动ComfyUI
确保ComfyUI正在配置的URL上运行(默认值:http://localhost:8188).
重新启动Claude代码
重要:Claude Code在启动时加载MCP服务器。添加配置后,您必须重新启动Claude Code(退出并重新启动)。
生成图像
"Generate a portrait with warm lighting and save it to ./images/portrait.png"
可用工具
generate_image
从文本提示(txt2img)生成图像。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| prompt | string | required | 要生成什么 |
| negative_prompt | string | “质量差,模糊” | 要避免什么 |
| width | number | 512 | 图像宽度(像素) |
| height | number | 768 | 图像高度(像素) |
| 步骤 | 数量 | 28 | 采样步骤 |
| cfg_scale | number | 7 | 无分类器引导量表 |
| 采样器 | 字符串 | “euler_ancestral” | 采样算法 |
| 调度器 | 字符串 | “正常” | 噪声调度器 |
| model | string | 环境默认值 | 检查点模型名称 |
| 种子 | 数量 | 随机 | 重复性随机种子 |
| loras | array | none | 要应用的LoRA(见下文) |
| output_path | string | required | 保存图像的位置 |
| upload_to_cloud | bool | true | 上传到云存储并返回签名的URL |
退货: { success, path, remote_url?, seed, message }
当 upload_to_cloud 为真,并且配置了云存储, remote_url 包含一个有效期为1小时的签名URL。
LoRA格式:
{
"name": "style_lora.safetensors",
"strength_model": 0.8,
"strength_clip": 0.8
}
img2img
使用AI引导转换现有图像。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| prompt | string | required | 要生成什么 |
| input_image | string | 必填 | ComfyUI输入文件夹中的文件名 |
| 降噪 | 数字 | 0.75 | 0.0=无变化,1.0=完全再生 |
| output_path | string | required | 保存结果的位置 |
| (加上所有txt2img参数) |
upscale_image
使用AI升级模型来升级图像。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| input_image | string | 必填 | ComfyUI输入文件夹中的文件名 |
| upscale_model | string | “RealESRGAN_x4plus.pth” | 升级模型 |
| target_width | number | native | 可选调整宽度 |
| target_height | number | native | 可选调整高度 |
| output_path | string | required | 保存结果的位置 |
发现工具
| 工具 | 说明 |
|---|---|
| list_models | 可用检查点模型 |
| list_loras | 可用的LoRA适配器 |
| list_samplers | 采样算法(欧拉、dpm++等) |
| list_schedulers | 噪声调度器(正常、karras等) |
| list_upscale_models | 升级模型(RealESRGAN等) |
| get_queue_status | 正在运行和挂起的作业 |
想象(推荐)
生成图像的最简单方法。 用自然语言描述你想要什么,它可以处理一切:自动检测你的模型系列,制作优化的提示,应用质量预设,并运行整个流程。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| description | string | 必填 | 生成内容的自然语言描述 |
| output_path | string | required | 保存最终图像的位置 |
| model | string | env默认值 | 检查点模型(如果未设置,则自动检测) |
| model_family | string | auto | “杰出”、“小马”、“通量”、“sdxl”、“现实”、“sd 15” |
| 风格 | 字符串 | 无 | “动漫”、“电影”、“肖像”、“风景”等。 |
| artist_reference | string | none | 艺术家风格,例如“吉卜力工作室” |
| 质量 | 字符串 | “标准” | “草稿”、“标准”、“高”、“超” |
| loras | 阵列 | 无 | 要应用的LoRA |
| 种子 | 数量 | 随机 | 用于再现性 |
| upload_to_cloud | bool | true | 上传到云端并返回签名的URL |
退货: { success, imagePath, remote_url?, seed, prompt, modelFamily, pipelineSteps, settings, message }
质量预设:
draft:快速生成,仅限txt2imgstandard:平衡质量(默认)high:包括高分辨率修复通行证ultra:高分辨率修复+升级的完整管道
execute_pipeline
运行多步骤生成管道:txt2img→ 嗨,修复→ 高档。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| prompt | string | 必填 | 正提示 |
| model | string | 必填 | 检查点模型 |
| output_path | string | 必填 | 最终输出位置 |
| enable_hires_fix | bool | false | 添加img2img细化过程 |
| hires_denoise | number | 0.4 | 高分辨率降噪(建议0.3-0.5) |
| enable_upscale | bool | false | 添加AI升级步骤 |
| (加上所有txt2img参数) |
工艺品_礼品
根据自然描述生成优化的提示。当您想在生成之前查看/编辑提示时很有用。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| description | string | 必填 | 自然语言描述 |
| model_name | string | none | 用于自动检测模型族 |
| model_family | string | auto | 显式族覆盖 |
| style | string | none | 要应用的样式预设 |
| rating | string | “安全” | 内容评级(适用于小马模型) |
返回:优化的正面提示、负面提示、推荐设置、LoRA建议。
获取购买指南
获取特定模型族的提示和示例提示。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model_family | string | yes | “杰出”、“小马”、“通量”等。 |
列表_购买_策略
列出所有支持的模型族及其提示特征。
ControlNet工具
使用参考图像的结构信息指导图像生成。
| 工具 | 说明 |
|---|---|
| generate_with_controlnet | 单控制网络调节(cany、深度、姿势等) |
| generate_with_multi_controlnet | 组合多个controlnet条件 |
| 预处理_控制_图像 | 预览控制信号(边缘图、骨架等) |
| generate_with_hidden_image | 使用二维码ControlNet嵌入隐藏图像 |
| style_photo | 将照片转换为艺术风格(动漫、油画) |
| generate_with_pose | 使用OpenPose从引用中复制精确的姿势 |
| generate_with_composity | 使用语义分割匹配布局/组合 |
| list_controlnet_models | 按类型列出可用的controlnet模型 |
支持的控件类型: canny, depth, openpose, qrcode, scribble, lineart, semantic_seg
IP适配器
从参考图像中转移风格、构图或人物肖像。
要求: ComfyUI_IPA适配器+ 自定义节点
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| prompt | string | 必填 | 生成文本提示 |
| reference_image | string | 必填 | 参考图像文件名 |
| 影响力 | 字符串 | “平衡” | “微妙”、“平衡”、“强大”、“主导” |
| transfer_type | string | “style” | “style、组成”、“face” |
| output_path | string | required | 保存结果的位置 |
内涂和补漆
有选择地编辑图像区域或扩展画布边界。
| 工具 | 说明 |
|---|---|
| inpaint | 重新生成蒙版区域(白色=重新生成,黑色=保留) |
| outpaint | 使用AI生成的内容在任何方向上扩展画布 |
| create_mask | 使用AI分割或手动区域生成掩码 |
输入参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| prompt | string | required | 在掩码区域生成什么 |
| source_image | string | 必填 | 源图像文件名 |
| mask_image | string | required | 蒙版图像(白色=inpaint) |
| denoise_strength | number | 0.75 | 0.0=无变化,1.0=完全再生 |
| output_path | string | required | 保存结果的位置 |
外涂参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| prompt | string | required | 在扩展区域中生成什么 |
| source_image | string | 必填 | 源图像文件名 |
| extend_left/right/top/bott | 数字 | 0 | 要扩展的像素 |
| 羽化 | 数字 | 40 | 边缘混合(像素) |
| output_path | string | required | 保存结果的位置 |
create_mask参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| source_image | string | 必填 | 要从中创建掩码的图像 |
| 预设 | 字符串 | 无 | “手”、“脸”、“眼睛”、“身体”、“背景”、“前景” |
| text_prompt | string | none | 自定义检测(“红衫军”、“猫”) |
| region | object | none | 手动{x,y,宽度,高度}百分比 |
| expand_pixels | number | 0 | 向外扩展掩码 |
| feather_pixels | 数量 | 0 | 模糊蒙版边缘 |
| invest | bool | false | 切换白/黑 |
| output_path | string | required | 掩码保存位置 |
文本转语音(F5-TTS)
从短参考音频中克隆语音生成语音。
| 工具 | 说明 |
|---|---|
| tts_generate | 从克隆语音的文本生成语音 |
| list_tts_models | 可用的tts型号 |
| list_voices | 可用语音样本 |
tts_generate参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| text | string | 必填 | 要说话的文本 |
| voice_reference | string | 必填 | 用于语音克隆的参考音频 |
| voice_reference_text | string | none | 引用的转录(提高质量) |
| 速度 | 数量 | 1.0 | 语音速度(0.5-2.0) |
| output_path | string | 必填 | 保存音频的位置 |
嘴唇同步视频
从肖像和音频中创建会说话的头部视频。
| 工具 | 说明 |
|---|---|
| lipsync_generate | 从图像+音频生成唇形同步视频 |
| talk | 完整管道:文本→ TTS → 对口形→ 视频 |
| list_lipsync_models | 可用唇同步型号 |
| list_avatars | 输入/头像中的肖像图像/ |
| list_voices_catalog | 带元数据的语音样本 |
肖像一代
生成针对唇形同步和化身使用进行优化的AI肖像。
| 工具 | 说明 |
|---|---|
| create_portrait | 带样式/表情控制的单幅肖像 |
| batch_create_portraits | 批量生成多幅肖像 |
后端选项: sdxl (检查点), flux_gguf (量化), flux_fp8 (完全精确)
健康与诊断
| 工具 | 说明 |
|---|---|
| check_connection | 使用GPU信息和延迟进行全面健康检查 |
| ping_confyui | 快速连接检查 |
用法示例
使用Imagine(推荐)
"Imagine a cozy coffee shop with warm lighting and plants,
save to ./assets/coffee_shop.png with high quality"
"Create an anime-style portrait of a warrior princess in a
fantasy setting, style: anime, quality: ultra"
"Generate a professional product photo of a sneaker on white
background using my realistic model, artist reference: apple product photography"
基础世代
"Generate a mountain landscape at golden hour, save to ./assets/landscape.png"
使用LoRA
"Create an anime-style portrait using the animeStyle.safetensors LoRA
at 0.8 strength, save to ./output/anime_portrait.png"
图像变换
"Take the sketch in ComfyUI's input folder called sketch.png and turn
it into a detailed illustration with 0.7 denoise"
升级
"Upscale hero.png to 4K using RealESRGAN"
批处理工作流
"Generate 3 variations of a forest scene with different lighting:
1. Misty morning
2. Harsh noon sun
3. Sunset through trees
Save them to ./scenes/forest_*.png"
建筑
┌─────────────┐ MCP Protocol ┌─────────────┐ REST/WS ┌──────────┐
│ Claude │ ◄─────────────────► │ MCP Server │ ◄─────────────► │ ComfyUI │
│ (Client) │ Tool Calls │ (Bridge) │ Workflows │ (API) │
└─────────────┘ └─────────────┘ └──────────┘
MCP服务器:
- 向AI客户端公开工具
- 接收带有参数的请求
- 构建ComfyUI工作流程JSON
- 通过REST API排队工作流
- 通过WebSocket监控进度
- 检索并保存生成的图像
ComfyUI工作流如何工作
ComfyUI将图像生成表示为节点图。每个节点执行一个操作:
CheckpointLoader → CLIPTextEncode → KSampler → VAEDecode → SaveImage
↓ ↑
LoraLoader(s) ──────────────────────┘
我们的服务器根据您的参数动态构建这些图。当您指定LoRA时,我们将LoraLoader节点注入链中。工作流以JSON格式提交给ComfyUI /prompt 终点。
为什么这个架构
这里的一些决定不是来自人工智能,而是来自对大规模破坏的了解:
- 分布式速率限制(Uptash Redis):当您有多个Fly.io实例时,内存中的速率限制器会失败。滑动窗口算法,基于分层的限制,通过IP回退的API密钥。
- Quirrel用于长时间运行的作业:Fly.io有连接限制(25个硬连接,20个软连接)。肖像生成、TTS和lipsync在作业队列中异步运行。否则,HTTP超时会终止请求。
- 存储抽象层:单接口,三种实现(Supabase、GCP、local)。使用环境变量交换提供程序。没有供应商锁定。
- 尾鳞片网:RunPod URL是公开的。Tailscale在Fly.io和GPU节点之间添加了一个安全层。
- 激励策略模式:Illustrious想要标签,Flux想要自然语言,Pony需要分数标签。六个模型系列,六种策略,从检查点名称自动检测。另一种选择是无法维护的意大利面条。
AI建议“在本地使用Playwright”实现浏览器自动化。在分布式环境中,这根本不合理。知道 当 分配事务。
环境变量
核心
| 变量 | 默认值 | 描述 |
|---|---|---|
| 计算机URL | http://localhost:8188 | 令人欣慰的API终点 |
| COMFYUI_MODEL | (无) | 默认检查点模型 |
| COMFYUI_OUTPUT_DIR | /tmp/COMFYUI输出 | 回退输出目录 |
云存储(可选)
| 变量 | 默认值 | 描述 |
|---|---|---|
| STORAGE_PROVIDER | (无) | 设置为“suabase”以启用云上传 |
| SUPABASE_URL | (无) | 您的SUPABASE项目URL |
| SUPABASE_SECRET_KEY | (无) | SUPABASE服务角色密钥(sb_SECRET_…) |
| SUPABASE_BUCKET | 生成的资产 | 存储桶名称 |
HTTP服务器
| 变量 | 默认值 | 描述 |
|---|---|---|
| 端口 | 3001 | HTTP服务器端口 |
| NODE_ENV | 开发 | 设置为Fly.io的“生产” |
项目结构
comfyui-mcp/
├── src/
│ ├── index.ts # MCP server entry point (40 tools)
│ ├── comfyui-client.ts # ComfyUI REST/WebSocket client
│ ├── workflows/
│ │ ├── txt2img.json # Text-to-image template
│ │ ├── img2img.json # Image-to-image template
│ │ ├── upscale.json # Upscaling template
│ │ ├── inpaint.json # Inpainting template
│ │ ├── outpaint.json # Outpainting template
│ │ └── builder.ts # Workflow parameterization & LoRA injection
│ ├── prompting/ # Smart prompt generation system
│ │ ├── generator.ts # Main PromptGenerator class
│ │ ├── model-detection.ts# Auto-detect model family
│ │ └── strategies/ # Per-model prompting strategies
│ ├── storage/ # Cloud storage abstraction
│ │ ├── index.ts # Provider factory
│ │ └── supabase.ts # Supabase implementation
│ └── tools/
│ ├── imagine.ts # Main generation tool
│ ├── pipeline.ts # Multi-step pipeline executor
│ ├── controlnet.ts # ControlNet tools
│ ├── ipadapter.ts # IP-Adapter style transfer
│ ├── inpaint.ts # Inpaint/outpaint/mask tools
│ ├── tts.ts # Text-to-speech (F5-TTS)
│ ├── lipsync.ts # Lip-sync video generation
│ ├── avatar.ts # Portrait generation
│ └── health.ts # Connection diagnostics
├── deploy/ # RunPod deployment
│ ├── serverless/ # Serverless handler
│ ├── terraform/ # Infrastructure as code
│ └── scripts/ # Deployment utilities
├── buildlog/ # Development journal
├── .github/workflows/ # CI/CD pipelines
├── vitest.config.ts # Test configuration
├── BUILD_JOURNAL.md # Feature narratives
└── README.md
发展
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Run production build
npm start
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
796次测试 涵盖所有工具、提示策略、存储提供商和管道执行。
故障排除
Claude代码中未显示工具
- 确保在添加MCP配置后重新启动了Claude Code
- 验证服务器是否手动启动:
npx @peleke.s/comfyui-mcp(应打印“ComfyUI MCP服务器在stdio上运行”) - 尝试杀死所有Claude Code实例并重新启动
“连接被拒绝”
确保ComfyUI正在配置的ComfyUI_URL上运行。
“找不到模型”
跑 list_models 查看可用的检查点。模型名称必须完全匹配,包括文件扩展名。
“输出中没有图像”
检查ComfyUI的web界面是否存在工作流错误。排队提示可能因缺少节点或参数无效而失败。
“节点不存在”错误
某些功能需要自定义节点。如果您看到以下错误 IPAdapterModelLoader does not exist 或 DWPreprocessor does not exist,安装所需的自定义节点(请参阅先决条件部分)。
缓慢的一代
生成时间取决于硬件、型号大小和步数。减少步骤以加快草稿速度。
LoRA不适用
使用验证LoRA文件名 list_loras确保强度值合理(通常为0.5-1.2)。
延伸
代码库是为扩展而设计的:
- 视频生成:ComfyUI支持AnimateDiff——适用相同的工作流模式
- 自定义节点:任何ComfyUI自定义节点都可以集成到工作流模板中
- 新车型系列:在中添加提示策略
src/prompting/strategies/ - 附加后端:通过新型号后端扩展肖像生成
云部署
架构概述
flowchart TB
subgraph Client["Client Layer"]
CC[Claude Code<br/>MCP Client]
WEB[Web App<br/>landline-landing]
end
subgraph Service["Service Layer (Fly.io)"]
MCP[comfyui-mcp<br/>MCP Server]
HTTP[HTTP Server<br/>REST API]
end
subgraph GPU["GPU Layer (RunPod)"]
COMFY[ComfyUI<br/>RTX 4090]
end
subgraph Storage["Storage Layer (Supabase)"]
BUCKET[Storage Bucket<br/>generated-assets]
SIGNED[Signed URLs<br/>1hr expiry]
end
CC -->|MCP Protocol| MCP
WEB -->|HTTPS REST| HTTP
MCP -->|Proxy URL| COMFY
HTTP -->|Proxy URL| COMFY
MCP -->|Upload| BUCKET
HTTP -->|Upload| BUCKET
BUCKET -->|Generate| SIGNED
SIGNED -->|View in Browser| WEB
SIGNED -->|View in Browser| CC
运作原理
- 客户端请求:Claude Code(通过MCP)或web应用程序(通过HTTP)发送生成请求
- 服务处理:该服务构建ComfyUI工作流并将其排队
- GPU执行:RunPod在租用的GPU(RTX 4090)上执行工作流
- 云存储:结果上传到Supabase存储
- 已签名的URL:返回一个1小时的签名URL以供安全浏览器查看
RunPod设置
没有本地GPU?在RunPod上运行ComfyUI并远程连接。
- 使用PyTorch模板创建RunPod pod
- SSH进入并运行:
curl -fsSL https://raw.githubusercontent.com/Peleke/comfyui-mcp/main/deploy/quick-deploy.sh | bash -s -- --dreamshaper
- 获取您的pod URL:
https://<POD_ID>-8188.proxy.runpod.net - 本地配置:
./deploy/scripts/configure-local.sh https://<POD_ID>-8188.proxy.runpod.net
看 部署/README.md 详细说明。
云存储(Supabase)
生成的图像可以自动上传到Supabase Storage,并带有签名的URL,以便安全共享。
设置:
- 创建Supabase项目
- 创建一个名为的存储桶
generated-assets - 添加RLS策略:
true(或auth.role() = 'service_role'用于受限访问) - 设置环境变量(见下文)
用途:
- MCP工具(
imagine,generate_image)包括upload_to_cloud: true默认情况下 - 结果包括a
remote_url带有1小时签名URL的字段 - URL可以直接在浏览器中打开查看
HTTP服务器(Web集成)
对于不能直接使用MCP的web应用程序,可以使用HTTP服务器:
# Start the HTTP server
npm run serve
# or
node dist/http-server.js
终点:
| 端点 | 方法 | 描述 |
|---|---|---|
/health |
GET | 使用GPU信息进行健康检查 |
/imagine |
POST | 自然语言图像生成 |
/image |
POST | 直接生成txt2img |
/portrait |
POST | 人工智能肖像生成 |
/tts |
POST | 使用F5-TTS进行文本转语音 |
/lipsync |
POST | 与MuseTalk进行视频唇形同步 |
例子:
curl -X POST https://your-service.fly.dev/imagine \
-H "Content-Type: application/json" \
-d '{
"description": "A cyberpunk cityscape at sunset",
"output_path": "/tmp/cyberpunk.png"
}'
# Response:
{
"success": true,
"imagePath": "/tmp/cyberpunk.png",
"signedUrl": "https://xxx.supabase.co/storage/v1/object/sign/...",
"seed": 1234567890,
"message": "✨ Image generated successfully!"
}
Fly.io部署
将HTTP服务器部署到Fly.io以进行生产web集成:
# Install flyctl
curl -L https://fly.io/install.sh | sh
# Deploy
fly launch
fly secrets set \
COMFYUI_URL="https://<POD_ID>-8188.proxy.runpod.net" \
COMFYUI_MODEL="novaFurryXL.safetensors" \
SUPABASE_URL="https://xxx.supabase.co" \
SUPABASE_SECRET_KEY="sb_secret_xxx" \
SUPABASE_BUCKET="generated-assets" \
STORAGE_PROVIDER="supabase"
fly deploy
相关
许可证
麻省理工学院
完整教程:参见 文章.md 了解从头开始构建此服务器的详细演练,包括架构决策和实现细节。