API 快速参考表

特性 CheckpointLoaderSimple unCLIPCheckpointLoader ImageOnlyCheckpointLoader
class_type CheckpointLoaderSimple unCLIPCheckpointLoader ImageOnlyCheckpointLoader
输入 ckpt_name ckpt_name ckpt_name
输出 0 MODEL MODEL MODEL
输出 1 CLIP CLIP CLIP_VISION
输出 2 VAE VAE VAE
输出 3 - CLIP_VISION -
适用场景 标准文生图/图生图 图像变体/编辑 视频生成
推荐模型 SD 1.x/2.x/SDXL SD 2.1 unCLIP SVD, SVD-XT

JSON 撰写注意事项

  1. 节点 ID 必须唯一 - 可以是数字或字符串
  2. 连接格式 - ["源节点ID", 输出索引]
  3. 模型文件名 - 必须与 ComfyUI models/checkpoints 目录下的文件名完全一致
  4. 先获取模型列表 - 调用 /api/models/checkpoints 确认可用模型
  5. 输出索引从 0 开始 - 一定要对应正确的输出类型



让我从实际使用角度给你一份实用指南:
 

一、CheckpointLoaderSimple(最常用)

1. API 定义

类名: CheckpointLoaderSimple

输入:

Python

INPUT_TYPES = {

    "required": {

        "ckpt_name": (["模型文件名列表"], {"tooltip": "要加载

        的 checkpoint 文件名"})

    }

}

输出:

Python

RETURN_TYPES = ("MODEL", "CLIP", "VAE")

# 索引:  0       1      2


2. JSON 标准格式

最简版本:

JSON

{

  "1": {

    "inputs": {

      "ckpt_name": "v1-5-pruned-emaonly.safetensors"

    },

    "class_type": "CheckpointLoaderSimple"

  }

}

在完整工作流中使用:

JSON

{

  "1": {

    "inputs": {

      "ckpt_name": "v1-5-pruned-emaonly.safetensors"

    },

    "class_type": "CheckpointLoaderSimple"

  },

  "2": {

    "inputs": {

      "text": "masterpiece, best quality, a cat",

      "clip": ["1", 1]

    },

    "class_type": "CLIPTextEncode"

  },

  "3": {

    "inputs": {

      "text": "worst quality",

      "clip": ["1", 1]

    },

    "class_type": "CLIPTextEncode"

  },

  "4": {

    "inputs": {

      "width": 512,

      "height": 512,

      "batch_size": 1

    },

    "class_type": "EmptyLatentImage"

  },

  "5": {

    "inputs": {

      "seed": 12345,

      "steps": 20,

      "cfg": 8,

      "sampler_name": "euler",

      "scheduler": "normal",

      "denoise": 1,

      "model": ["1", 0],

      "positive": ["2", 0],

      "negative": ["3", 0],

      "latent_image": ["4", 0]

    },

    "class_type": "KSampler"

  },

  "6": {

    "inputs": {

      "samples": ["5", 0],

      "vae": ["1", 2]

    },

    "class_type": "VAEDecode"

  },

  "7": {

    "inputs": {

      "filename_prefix": "ComfyUI",

      "images": ["6", 0]

    },

    "class_type": "SaveImage"

  }

}


3. 使用方法

获取可用模型列表:


Bash

运行

# API 调用

GET http://127.0.0.1:8188/api/models/checkpoints

# 响应示例

["v1-5-pruned-emaonly.safetensors", "realisticVisionV51.

safetensors", "sdxl_base.safetensors"]

提交工作流:

Bash

运行

POST http://127.0.0.1:8188/api/prompt

Content-Type: application/json

{

  "prompt": { /* 上面的完整 JSON */ }

}


二、unCLIPCheckpointLoader

1. API 定义

类名: unCLIPCheckpointLoader

输入:

Python

INPUT_TYPES = {

    "required": {

        "ckpt_name": (["模型文件名列表"], )

    }

}

输出:

Python

RETURN_TYPES = ("MODEL", "CLIP", "VAE", "CLIP_VISION")

# 索引:  0       1      2       3


2. JSON 标准格式

最简版本:

JSON

{

  "1": {

    "inputs": {

      "ckpt_name": "sd21-unclip.safetensors"

    },

    "class_type": "unCLIPCheckpointLoader"

  }

}

在完整工作流中使用(图像变体示例):

JSON

{

  "1": {

    "inputs": {

      "ckpt_name": "sd21-unclip.safetensors"

    },

    "class_type": "unCLIPCheckpointLoader"

  },

  "2": {

    "inputs": {

      "image": "reference_image.png",

      "upload": "image"

    },

    "class_type": "LoadImage"

  },

  "3": {

    "inputs": {

      "clip_vision": ["1", 3],

      "image": ["2", 0]

    },

    "class_type": "CLIPVisionEncode"

  },

  "4": {

    "inputs": {

      "text": "a beautiful variation",

      "clip": ["1", 1]

    },

    "class_type": "CLIPTextEncode"

  },

  "5": {

    "inputs": {

      "conditioning": ["4", 0],

      "clip_vision_output": ["3", 0]

    },

    "class_type": "unCLIPConditioning"

  },

  "6": {

    "inputs": {

      "width": 512,

      "height": 512,

      "batch_size": 1

    },

    "class_type": "EmptyLatentImage"

  },

  "7": {

    "inputs": {

      "seed": 12345,

      "steps": 20,

      "cfg": 8,

      "sampler_name": "euler",

      "scheduler": "normal",

      "denoise": 1,

      "model": ["1", 0],

      "positive": ["5", 0],

      "negative": ["4", 0],

      "latent_image": ["6", 0]

    },

    "class_type": "KSampler"

  },

  "8": {

    "inputs": {

      "samples": ["7", 0],

      "vae": ["1", 2]

    },

    "class_type": "VAEDecode"

  },

  "9": {

    "inputs": {

      "filename_prefix": "unCLIP_output",

      "images": ["8", 0]

    },

    "class_type": "SaveImage"

  }

}


三、ImageOnlyCheckpointLoader

1. API 定义

类名: ImageOnlyCheckpointLoader

输入:

Python

INPUT_TYPES = {

    "required": {

        "ckpt_name": (["模型文件名列表"], )

    }

}

输出:

Python

RETURN_TYPES = ("MODEL", "CLIP_VISION", "VAE")

# 索引:  0       1            2


2. JSON 标准格式

最简版本:

JSON

{

  "1": {

    "inputs": {

      "ckpt_name": "svd.safetensors"

    },

    "class_type": "ImageOnlyCheckpointLoader"

  }

}

在完整工作流中使用(图像转视频示例):

JSON

{

  "1": {

    "inputs": {

      "ckpt_name": "svd.safetensors"

    },

    "class_type": "ImageOnlyCheckpointLoader"

  },

  "2": {

    "inputs": {

      "image": "start_frame.png",

      "upload": "image"

    },

    "class_type": "LoadImage"

  },

  "3": {

    "inputs": {

      "width": 1024,

      "height": 576,

      "video_frames": 14,

      "motion_bucket_id": 127,

      "fps": 6,

      "augmentation_level": 0,

      "clip_vision": ["1", 1],

      "init_image": ["2", 0],

      "vae": ["1", 2]

    },

    "class_type": "SVD_img2vid_Conditioning"

  },

  "4": {

    "inputs": {

      "seed": 12345,

      "steps": 20,

      "cfg": 8,

      "sampler_name": "euler",

      "scheduler": "normal",

      "denoise": 1,

      "model": ["1", 0],

      "positive": ["3", 0],

      "negative": ["3", 1],

      "latent_image": ["3", 2]

    },

    "class_type": "KSampler"

  },

  "5": {

    "inputs": {

      "samples": ["4", 0],

      "vae": ["1", 2]

    },

    "class_type": "VAEDecode"

  },

  "6": {

    "inputs": {

      "filename_prefix": "SVD_video",

      "images": ["5", 0]

    },

    "class_type": "SaveImage"

  }

}


四、API 提交通用方法

1. 完整 API 请求示例(Python)


Python

import requests

import json

# ComfyUI 地址

COMFYUI_URL = "http://127.0.0.1:8188"

# 工作流 JSON

workflow = {

    "1": {

        "inputs": {

            "ckpt_name": "v1-5-pruned-emaonly.safetensors"

        },

        "class_type": "CheckpointLoaderSimple"

    },

    # ... 其他节点

}

# 提交工作流

response = requests.post(

    f"{COMFYUI_URL}/api/prompt",

    json={"prompt": workflow}

)

result = response.json()

print(f"Prompt ID: {result['prompt_id']}")


2. 获取执行结果

Python

# 获取历史记录

history = requests.get(f"{COMFYUI_URL}/api/history/

{prompt_id}").json()

# 获取输出图片

outputs = history[prompt_id]["outputs"]

for node_id, node_output in outputs.items():

    if "images" in node_output:

        for image in node_output["images"]:

            print(f"Image: {image['filename']}")

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐