# 🎨 ComfyUI API 配置使用指南 ## 📋 目录 - [快速开始](#快速开始) - [工作流管理](#工作流管理) - [API 配置](#api-配置) - [测试连接](#测试连接) - [常见问题](#常见问题) --- ## 🚀 快速开始 ### **1. 准备工作** 确保你已经: - ✅ 安装了 ComfyUI(本地或 Docker) - ✅ ComfyUI 正在运行并监听 `0.0.0.0:8188` - ✅ 下载了至少一个 checkpoint 模型文件 ### **2. 访问 API 配置页面** 1. 打开应用 2. 点击左侧边栏的"⚙️ API配置" 3. 选择"🎨 生图"标签 --- ## 📁 工作流管理 ### **默认工作流** 系统已预装一个标准的文生图工作流: - 文件位置:`backend/data/comfyui_workflows/default_txt2img.json` - 格式:ComfyUI API Format(标准 JSON) - 节点数:7个(KSampler、CheckpointLoader、EmptyLatentImage、CLIPTextEncode x2、VAEDecode、SaveImage) ### **工作流结构** ```json { "3": { "inputs": { "seed": 0, "steps": 20, "cfg": 8, "sampler_name": "euler", ... }, "class_type": "KSampler", "_meta": { "title": "K采样器" } }, ... } ``` **关键字段**: - `class_type`: 节点类型 - `inputs`: 节点参数 - `_meta.title`: 节点显示名称(可选) --- ### **上传自定义工作流** #### **步骤 1: 在 ComfyUI 中设计工作流** 1. 打开 ComfyUI Web UI (`http://localhost:8188`) 2. 拖拽节点,搭建你的工作流 3. 连接节点之间的数据流 4. 配置节点参数(模型、提示词、采样器等) 5. 点击 "Queue Prompt" 测试是否能正常生成图像 #### **步骤 2: 导出 API 格式的 JSON** 1. 点击顶部菜单栏的 **"工作流" (Workflow)** 2. 选择 **"导出(API)" (Export API)** 或 **"Save (API Format)"** 3. 浏览器会自动下载 `workflow_api.json` 文件 **重要提示**: - ⚠️ 必须使用 **"Save (API Format)"**,而不是普通的 "Save" - ⚠️ API 格式的 JSON 包含节点 ID 和连接关系,是 API 调用的核心 #### **步骤 3: 上传到本项目** 1. 在本项目的 API 配置页面 2. 滚动到"ComfyUI 工作流管理"区域 3. 点击 **"+ 导入工作流"** 按钮 4. 选择刚才导出的 JSON 文件 5. 看到"上传成功"提示 #### **验证上传** 上传成功后,你会在工作流列表中看到: - 文件名(例如:`my_custom_workflow.json`) - 节点数量 - 文件大小 --- ### **删除工作流** 1. 在工作流列表中找到要删除的工作流 2. 点击右侧的 🗑️ 删除按钮 3. 确认删除 **注意**: - ❌ `default_txt2img.json` 不可删除(受保护) - ✅ 其他所有工作流都可以删除 --- ## ⚙️ API 配置 ### **本地 ComfyUI 模式** #### **配置项** | 字段 | 说明 | 示例值 | |------|------|--------| | API 地址 | ComfyUI 的服务地址 | `http://comfyui:8188` (Docker)
`http://localhost:8188` (本地) | | 启用 WebSocket | 是否使用 WebSocket 监听进度 | ✓ / ✗ | | 队列超时 | 等待生成的最大时间(秒) | `300` (5分钟) | | 默认工作流 | 使用的预设工作流文件 | `default_txt2img.json` | #### **Docker 环境配置** 如果使用 Docker Compose: ```yaml # docker-compose.yml services: comfyui: image: ghcr.io/comfyanonymous/comfyui:latest ports: - "8188:8188" networks: - ai-network command: --listen 0.0.0.0 --port 8188 llm-workflow-engine: # ... networks: - ai-network ``` **API 地址填写**:`http://comfyui:8188`(Docker 内部网络 DNS) #### **本地运行配置** 如果 ComfyUI 运行在宿主机: ```bash # 启动 ComfyUI python main.py --listen 0.0.0.0 --port 8188 ``` **API 地址填写**:`http://localhost:8188` --- ### **在线 API 模式** #### **支持的提供商** 1. **DALL-E (OpenAI)** - 模型:`dall-e-3`, `dall-e-2` - 质量:最高 - 价格:较贵 2. **Stable Diffusion (Stability AI)** - 模型:`sd-xl-1024`, `sd-2-1` - 质量:高 - 价格:中等 #### **配置项** | 字段 | 说明 | 示例值 | |------|------|--------| | 服务提供商 | 选择 API 提供商 | DALL-E / Stability AI | | API Key | 你的 API 密钥 | `sk-...` | | 模型 | 选择具体模型 | `dall-e-3` | #### **获取 API Key** **DALL-E**: 1. 访问 https://platform.openai.com/ 2. 注册/登录账号 3. 进入 API Keys 页面 4. 创建新的 Secret Key 5. 复制并粘贴到配置中 **Stability AI**: 1. 访问 https://platform.stability.ai/ 2. 注册/登录账号 3. 进入 API Keys 页面 4. 创建新的 Key 5. 复制并粘贴到配置中 --- ## 🔌 测试连接 ### **测试 ComfyUI 连接** 1. 填写 API 地址 2. 点击"测试连接"按钮 3. 查看结果 **成功响应**: ```json { "success": true, "message": "连接成功", "stats": { "vram_total": 25769803776, "vram_free": 24696061952, "torch_version": "2.1.0+cu121", "device": "cuda" } } ``` **失败响应**: ```json { "success": false, "message": "无法连接到 ComfyUI,请检查地址和端口" } ``` --- ### **测试云端 API 连接** 1. 填写 API Key 2. 选择模型 3. 点击"测试连接"按钮 4. 查看结果 **成功响应**: ```json { "success": true, "message": "连接成功,模型 dall-e-3 可用" } ``` **失败响应**: ```json { "success": false, "message": "连接失败: Invalid API key" } ``` --- ## 💾 保存配置 ### **保存流程** 1. 完成所有配置后 2. 点击底部的"保存配置"按钮 3. 在弹出的对话框中勾选要保存的配置 4. 点击"保存选中的配置" ### **配置文件存储** - 位置:`backend/data/apiconfig/` - 格式:JSON - 加密:API Key 使用 Fernet 加密存储 ### **加载配置** 1. 从下拉框选择已保存的配置文件 2. 自动加载所有配置 3. 可以修改后重新保存 --- ## ❓ 常见问题 ### **Q1: 上传工作流时提示"Invalid ComfyUI workflow"** **原因**:上传的不是 API 格式的 JSON **解决**: 1. 在 ComfyUI 中使用 "Save (API Format)" 导出 2. 不要使用普通的 "Save" 功能 3. 确保 JSON 包含节点定义(有 `class_type` 字段) --- ### **Q2: 测试连接时提示"Connection refused"** **可能原因**: 1. ComfyUI 未启动 2. 地址或端口错误 3. Docker 网络配置问题 **解决**: ```bash # 检查 ComfyUI 是否运行 curl http://localhost:8188/system_stats # Docker 环境下 docker ps | grep comfyui docker logs comfyui # 确认监听地址 docker exec comfyui netstat -tlnp | grep 8188 # 应该看到: 0.0.0.0:8188 ``` --- ### **Q3: 工作流中的提示词会被替换吗?** **是的**!后端会自动: 1. 加载工作流 JSON 2. 找到第一个 `CLIPTextEncode` 节点 3. 将其 `text` 字段替换为用户输入的提示词 4. 发送到 ComfyUI **示例**: ```json // 工作流中的原始提示词 "6": { "inputs": { "text": "beautiful scenery nature glass bottle landscape..." } } // 运行时会被替换为 "6": { "inputs": { "text": "用户输入的提示词,例如:画一只猫" } } ``` --- ### **Q4: 如何添加 LoRA 或 ControlNet?** **方法 1: 在 ComfyUI 中添加节点** 1. 在 ComfyUI Web UI 中加载 LoRA Loader 或 ControlNet 节点 2. 连接到工作流 3. 配置参数 4. 导出为 API 格式 5. 上传到本项目 **方法 2: 手动编辑 JSON** ```json "10": { "inputs": { "lora_name": "cyberpunk_style.safetensors", "strength_model": 0.7, "strength_clip": 0.7, "model": ["4", 0], "clip": ["4", 1] }, "class_type": "LoraLoader" } ``` --- ### **Q5: 支持批量生图吗?** 当前版本不支持批量生图,但可以通过以下方式实现: **方案 A: 多次调用** ```python for prompt in prompts: result = generate_image(prompt, config) save_result(result) ``` **方案 B: ComfyUI 批量节点** 在工作流中使用 Batch Size > 1: ```json "5": { "inputs": { "width": 512, "height": 512, "batch_size": 4 // 一次生成4张 } } ``` --- ### **Q6: 如何优化生图速度?** **本地 ComfyUI**: 1. 使用更快的采样器(如 `euler_ancestral`) 2. 减少步数(Steps: 15-20) 3. 降低分辨率(512x512 而非 1024x1024) 4. 使用 GPU 加速 **云端 API**: 1. 选择更快的模型(DALL-E 2 比 DALL-E 3 快) 2. 使用较小的尺寸 3. 考虑付费套餐(更高的优先级) --- ## 📊 工作流示例 ### **基础文生图** ```json { "3": {"class_type": "KSampler", ...}, "4": {"class_type": "CheckpointLoaderSimple", ...}, "5": {"class_type": "EmptyLatentImage", ...}, "6": {"class_type": "CLIPTextEncode", ...}, "7": {"class_type": "CLIPTextEncode", ...}, "8": {"class_type": "VAEDecode", ...}, "9": {"class_type": "SaveImage", ...} } ``` ### **带 LoRA 的文生图** 额外添加: ```json "10": { "class_type": "LoraLoader", "inputs": { "lora_name": "style.safetensors", "strength_model": 0.7, "model": ["4", 0], "clip": ["4", 1] } } ``` ### **图生图** 需要添加: ```json "10": { "class_type": "LoadImage", "inputs": { "image": "reference.png" } }, "11": { "class_type": "VAEEncode", "inputs": { "pixels": ["10", 0], "vae": ["4", 2] } } ``` --- ## 🔗 相关资源 - **ComfyUI 官方文档**: https://github.com/comfyanonymous/ComfyUI - **ComfyUI API 示例**: https://github.com/zer0Black/ComfyUI-Api-Demo - **工作流分享社区**: https://comfyworkflows.com/ - **模型下载**: https://civitai.com/ --- ## 📝 更新日志 ### **v1.0.0** (2026-04-28) - ✅ 初始版本发布 - ✅ 支持 ComfyUI 本地部署 - ✅ 支持云端 API(DALL-E、Stability AI) - ✅ 工作流管理(上传、删除、列表) - ✅ 连接测试功能 - ✅ 默认工作流模板 --- **如有问题,请查看日志或联系开发者!**