ComfyUI与Stable Diffusion 等主要 AI 模型的API与工作流实施基础【001】
| 加载器 | 用途 | 输出 | 适用模型 |
|---|---|---|---|
| CheckpointLoaderSimple | 标准文生图/图生图 | MODEL, CLIP, VAE | SD 1.x, 2.x, SDXL |
| unCLIPCheckpointLoader | 图像变体/编辑 | MODEL, CLIP, VAE, CLIP_VISION | SD 2.1 unCLIP |
| ImageOnlyCheckpointLoader | 视频生成 | MODEL, CLIP_VISION, VAE | Stable Video Diffusion |
所有这些加载器都只需要一个输入参数:ckpt_name(Checkpoint 文件名)
一、三个核心 Checkpoint 加载器详解
1. **CheckpointLoaderSimple(你选中的那个)
文件位置: `/Users/dingruyu/Documents/comfyui2604/comfyui/nodes.py:588
功能:
- 自动猜测配置,最常用的加载器
- 中文显示名:"Checkpoint加载器(简易)"
- 加载标准 Stable Diffusion 模型(SD 1.x, SD 2.x, SDXL 等)
输入属性:
- ckpt_name (必填): Checkpoint 文件名(如:v1-5-pruned-emaonly.safetensors)
输出:
- 索引 0: MODEL - 扩散模型
- 索引 1: CLIP - 文本编码器
- 索引 2: VAE - 变分自编码器
JSON 格式示例:
JSON
{
"4": {
"inputs": {
"ckpt_name": "v1-5-pruned-emaonly.safetensors"
},
"class_type": "CheckpointLoaderSimple"
}
}
2. **unCLIPCheckpointLoader
文件位置: `/Users/dingruyu/Documents/comfyui2604/comfyui/nodes.py:640
功能:
- 加载支持 unCLIP 的模型(如 Stable Diffusion 2.1 unCLIP)
- 用于图像变体、图像编辑等需要 CLIP Vision 功能
输入属性:
- ckpt_name (必填): Checkpoint 文件名
输出:
- 索引 0: MODEL - 扩散模型
- 索引 1: CLIP - 文本编码器
- 索引 2: VAE - 变分自编码器
- 索引 3: CLIP_VISION - CLIP 视觉编码器
JSON 格式示例:
JSON
{
"4": {
"inputs": {
"ckpt_name": "sd21-unclip.safetensors"
},
"class_type": "unCLIPCheckpointLoader"
}
}
3. **ImageOnlyCheckpointLoader
文件位置: `/Users/dingruyu/Documents/comfyui2604/comfyui/comfy_extras/nodes_video_model.py:10
功能:
- 加载 img2vid 视频模型(如 Stable Video Diffusion)
- 用于图像转视频任务
输入属性:
- ckpt_name (必填): Checkpoint 文件名
输出:
- 索引 0: MODEL - 视频扩散模型
- 索引 1: CLIP_VISION - CLIP 视觉编码器
- 索引 2: VAE - 变分自编码器
JSON 格式示例:
JSON
{
"4": {
"inputs": {
"ckpt_name": "svd.safetensors"
},
"class_type": "ImageOnlyCheckpointLoader"
}
}
二、外部工作流软件提交格式
1. **API 提交接口
接口地址: POST /prompt 或 POST /api/prompt
默认地址: http://127.0.0.1:8188
2. 完整请求格式
JSON
{
"prompt": {
"3": {
"inputs": {
"seed": 123456789,
"steps": 20,
"cfg": 8,
"sampler_name": "euler",
"scheduler": "normal",
"denoise": 1,
"model": ["4", 0],
"positive": ["6", 0],
"negative": ["7", 0],
"latent_image": ["5", 0]
},
"class_type": "KSampler"
},
"4": {
"inputs": {
"ckpt_name": "v1-5-pruned-emaonly.safetensors"
},
"class_type": "CheckpointLoaderSimple"
},
"5": {
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
},
"class_type": "EmptyLatentImage"
},
"6": {
"inputs": {
"text": "masterpiece, best quality, a beautiful
girl",
"clip": ["4", 1]
},
"class_type": "CLIPTextEncode"
},
"7": {
"inputs": {
"text": "worst quality, low quality",
"clip": ["4", 1]
},
"class_type": "CLIPTextEncode"
},
"8": {
"inputs": {
"samples": ["3", 0],
"vae": ["4", 2]
},
"class_type": "VAEDecode"
},
"9": {
"inputs": {
"filename_prefix": "ComfyUI",
"images": ["8", 0]
},
"class_type": "SaveImage"
}
},
"client_id": "your-client-id",
"extra_data": {},
"number": 123,
"front": false
}
3. 请求参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| prompt | Object | 是 | 工作流 JSON 对象 |
| client_id | String | 否 | 客户端标识,用于 WebSocket 推送 |
| extra_data | Object | 否 | 额外数据 |
| number | Number | 否 | 队列优先级编号 |
| front | Boolean | 否 | 是否插入队列头部 |
4. **工作流 JSON 结构详解
根级结构:
JSON
{
"节点ID": {
"inputs": { /* 输入参数 */ },
"class_type": "节点类型"
}
}
**inputs 中的值可以是:
- 常量值:"seed": 123456789
- 节点连接:"model": ["节点ID", 输出索引]
5. 响应格式
JSON
{
"prompt_id": "12345678-1234-5678-1234-567812345678",
"number": 123,
"node_errors": {}
}
6. **获取节点信息(可选)
在提交前,可以先调用获取所有节点信息:
Bash
运行
curl http://127.0.0.1:8188/object_info
这会返回所有可用节点的详细输入输出信息。
更多推荐


所有评论(0)