ComfyUI 之 ImageOnlyCheckpointLoader 深度详解(图像转视频专用)【005】
ImageOnlyCheckpointLoader 是 ComfyUI 中专门用于加载视频生成类模型的 Checkpoint 加载器,核心适配 SVD(Stable Video Diffusion) 这类「无文本编码器、依赖图像输入」的模型,是实现图生视频的关键节点。
一、核心定位与适用场景
1. 核心特点
- 无
CLIP文本编码器输出:因为视频生成模型(如 SVD)不依赖文本指令,仅靠初始图像驱动生成视频帧。 - 强依赖
CLIP_VISION图像编码器:用于提取初始图像的视觉特征,作为视频生成的条件。 - 输出
MODEL+VAE:分别负责视频帧的生成和图像解码。
2. 适用模型与场景
表格
| 适用模型 | 核心场景 | 输入要求 |
|---|---|---|
| SVD(svd.safetensors) | 短视频生成(14 帧左右) | 单张初始图像 |
| SVD-XT(svd_xt.safetensors) | 更长视频生成(25 帧左右) | 单张初始图像 |
| 其他视频生成类 Checkpoint | 自定义视频生成工作流 | 按模型要求输入 |
二、API 核心参数详解
1. 输入参数
表格
| 参数名 | 类型 | 说明 |
|---|---|---|
ckpt_name |
字符串 | 必填,必须是 ComfyUI/models/checkpoints 目录下的视频模型文件名(如 svd.safetensors) |
2. 输出参数(索引是节点连接的关键!)
RETURN_TYPES = ("MODEL", "CLIP_VISION", "VAE")
表格
| 输出索引 | 输出类型 | 作用 | 下游连接节点 |
|---|---|---|---|
| 0 | MODEL |
视频生成主模型 | 连接 KSampler 的 model 参数 |
| 1 | CLIP_VISION |
图像特征编码器 | 连接 SVD_img2vid_Conditioning 的 clip_vision 参数 |
| 2 | VAE |
图像解码器 | 连接 SVD_img2vid_Conditioning 的 vae 参数 + VAEDecode 的 vae 参数 |
划重点:输出索引 1 是
CLIP_VISION,不是常规的CLIP,这是和CheckpointLoaderSimple的核心区别!
三、完整 JSON 工作流拆解(图转视频实战)
以 SVD 生成 14 帧短视频为例,完整工作流包含 6 个节点,我们逐节点拆解逻辑。
1. 完整 JSON 代码
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"
}
}
2. 节点逻辑拆解(核心是 ImageOnlyCheckpointLoader 的连接)
表格
| 节点 ID | 节点类型 | 核心作用 | 关键连接(和节点 1 的关联) |
|---|---|---|---|
| 1 | ImageOnlyCheckpointLoader |
加载 SVD 模型 | 输出 3 个组件,供下游节点调用 |
| 2 | LoadImage |
加载初始图像(视频第一帧) | 无直接关联,输出给节点 3 |
| 3 | SVD_img2vid_Conditioning |
视频条件构建核心 | 1. clip_vision: ["1", 1] → 用节点 1 的图像编码器提特征2. vae: ["1", 2] → 用节点 1 的解码器做图像预处理3. init_image: ["2", 0] → 初始图像 |
| 4 | KSampler |
生成视频帧 latent 数据 | 1. model: ["1", 0] → 用节点 1 的主模型驱动生成2. positive/negative/latent_image: 来自节点 3 的条件输出 |
| 5 | VAEDecode |
把 latent 转成视频帧图像 | vae: ["1", 2] → 用节点 1 的解码器解码 |
| 6 | SaveImage |
保存所有视频帧 | 接收节点 5 的图像输出,后续可合并为 MP4 |
3. 关键参数说明(节点 3 是视频生成的核心)
节点 SVD_img2vid_Conditioning 的参数直接决定视频效果:
width/height:视频分辨率,SVD 推荐1024×576/576×1024video_frames:生成的视频帧数,SVD 最大 14 帧、SVD-XT 最大 25 帧motion_bucket_id:运动幅度控制,值越大,视频画面运动越剧烈(推荐 50-200)fps:视频帧率,默认 6,决定视频播放速度augmentation_level:图像增强程度,0 为无增强,值越大画面变化越大
四、Python API 调用完整流程
1. 步骤总览
- 确认 SVD 模型已放入
models/checkpoints目录 - 编写上述 JSON 工作流
- 提交工作流并获取任务 ID
- 等待生成完成后,下载视频帧并合并为 MP4
2. 完整 Python 代码
python
运行
import requests
import json
import os
from PIL import Image
import cv2
import numpy as np
# ComfyUI 基础地址
COMFYUI_URL = "http://127.0.0.1:8188"
# 1. 定义图转视频工作流
video_workflow = {
"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"
}
}
# 2. 提交工作流
def submit_video_workflow(workflow):
response = requests.post(
f"{COMFYUI_URL}/api/prompt",
json={"prompt": workflow}
)
return response.json()["prompt_id"]
# 3. 获取生成的视频帧文件名
def get_video_frames(prompt_id):
while True:
history = requests.get(f"{COMFYUI_URL}/api/history/{prompt_id}").json()
if prompt_id in history and "outputs" in history[prompt_id]:
outputs = history[prompt_id]["outputs"]
frames = []
for node in outputs.values():
if "images" in node:
frames = [img["filename"] for img in node["images"]]
return sorted(frames) # 按帧顺序排序
# 等待生成完成
import time
time.sleep(2)
# 4. 将视频帧合并为 MP4 视频
def frames_to_video(frames_dir, frame_files, fps=6, output_name="output_video.mp4"):
# 读取第一帧获取分辨率
first_frame = cv2.imread(os.path.join(frames_dir, frame_files[0]))
height, width = first_frame.shape[:2]
# 定义视频编码器
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
video_writer = cv2.VideoWriter(output_name, fourcc, fps, (width, height))
# 逐帧写入
for frame_file in frame_files:
frame_path = os.path.join(frames_dir, frame_files)
frame = cv2.imread(frame_path)
video_writer.write(frame)
video_writer.release()
print(f"视频已保存为 {output_name}")
# ------------------- 执行主流程 -------------------
if __name__ == "__main__":
# 提交任务
prompt_id = submit_video_workflow(video_workflow)
print(f"任务 ID: {prompt_id}")
# 获取视频帧
frame_files = get_video_frames(prompt_id)
print(f"生成 {len(frame_files)} 帧: {frame_files}")
# 合并为视频(ComfyUI 输出目录默认是 output)
frames_to_video("./output", frame_files, fps=6)
五、避坑指南(新手必看)
-
模型文件必须正确
- 必须用视频生成模型(SVD/SVD-XT),不能用 SD1.x/SDXL 等文生图模型,否则会报错「缺少 CLIP_VISION」。
- 文件名必须和
checkpoints目录下完全一致(含.safetensors后缀)。
-
节点连接不能错索引
- 下游节点要
CLIP_VISION时,必须连 节点 1 的索引 1,而不是索引 0 或 2。 SVD_img2vid_Conditioning必须同时传入clip_vision+vae+init_image,缺一不可。
- 下游节点要
-
视频帧数和分辨率匹配
- SVD 模型最大支持 14 帧,超过会报错;SVD-XT 最大 25 帧。
- 分辨率推荐
1024×576或576×1024,非 16:9 比例可能导致画面拉伸。
-
运动幅度参数调优
motion_bucket_id是核心:值太小(<50)视频几乎不动;值太大(>200)画面会剧烈抖动、失真。
六、效果优化技巧
- 想让视频运动更自然:降低
motion_bucket_id(如 80-120),提高steps(如 25-30)。 - 想让视频细节更清晰:降低
augmentation_level(设为 0),提高cfg值(如 9-10)。 - 想生成更长视频:换用 SVD-XT 模型,将
video_frames设为 25,fps设为 8。
我可以帮你整理SVD 模型参数调优对照表,清晰列出不同参数值对应的视频效果,需要吗?
需要
SVD 模型核心参数调优对照表
这个对照表针对 SVD_img2vid_Conditioning 和 KSampler 两大核心节点的关键参数,标注推荐值、效果影响和适用场景,帮你快速调出理想的视频效果。
表格
| 节点 | 参数名 | 取值范围 | 推荐区间 | 效果影响 | 适用场景 | 注意事项 |
|---|---|---|---|---|---|---|
| SVD_img2vid_Conditioning | width/height |
512×288 ~ 1024×576 | 1024×576(16:9) | 分辨率越高,画面细节越丰富;越低,生成速度越快 | 高分辨率:特写 / 静态场景低分辨率:动态 / 快速生成 | 非 16:9 比例会导致画面拉伸变形 |
video_frames |
SVD: 1~14SVD-XT: 1~25 | SVD: 8~14SVD-XT: 16~25 | 帧数越多,视频时长越长;越少,越不容易出现画面漂移 | 短帧:测试效果长帧:完整视频 | SVD 超过 14 帧、SVD-XT 超过 25 帧会直接报错 | |
motion_bucket_id |
0 ~ 750 | 50 ~ 200 | 核心运动控制参数↓ 值越小:画面越稳定,几乎无运动↑ 值越大:画面运动越剧烈,容易抖动失真 | 低数值:风景 / 静物视频中数值:人物 / 动物动作高数值:创意动态特效 | 超过 300 大概率出现画面撕裂、内容崩坏 | |
fps |
4 ~ 12 | 6 ~ 8 | 帧率越高,视频播放越流畅;越低,越有 “幻灯片” 感 | 高帧率:快速运动场景低帧率:慢动作 / 复古效果 | 帧率 × 帧数 = 视频总时长(如 6fps×14 帧 = 2.3 秒) | |
augmentation_level |
0 ~ 1.0 | 0 ~ 0.2 | 图像增强程度↓ 0:无增强,忠实还原初始图像↑ 1.0:增强明显,画面变化大 | 0:需要保留原图细节0.1~0.2:轻微优化画质 | 超过 0.3 会导致画面偏离初始图像,细节丢失 | |
| KSampler | steps |
10 ~ 40 | 20 ~ 30 | 采样步数越多,画面越细腻;越少,生成越快 | 高步数:追求细节 / 静态场景低步数:快速测试 / 动态场景 | 超过 30 步后,细节提升不明显,耗时大幅增加 |
cfg |
1.0 ~ 15.0 | 7.0 ~ 9.0 | 条件约束强度↓ 值越小:画面创意性越强,容易偏离原图↑ 值越大:严格遵循初始图像,创意性降低 | 低 cfg:创意视频 / 风格迁移高 cfg:写实视频 / 细节还原 | 超过 10 会导致画面僵硬、色彩失真 | |
sampler_name |
euler、euler_ancestral、ddim 等 | euler / euler_ancestral | euler:画面稳定,细节均衡euler_ancestral:创意性强,偶尔有惊喜效果 | euler:常规视频生成euler_ancestral:创意 / 艺术视频 | 避免使用 ddim,生成速度慢且效果一般 | |
denoise |
0.1 ~ 1.0 | 0.8 ~ 1.0 | 去噪强度↓ 值越小:越贴近初始图像,变化小↑ 值越大:画面变化大,创意性强 | 低 denoise:图像微调 / 补帧高 denoise:全新视频生成 | 低于 0.5 时,视频运动幅度会大幅降低 |
参数调优小技巧
- 新手入门组合(无脑套用不出错):
width=1024, height=576+video_frames=14+motion_bucket_id=127+fps=6+steps=20+cfg=8 - 解决画面抖动:降低
motion_bucket_id(调到 50-80)+ 提高steps(调到 25-30) - 解决画面偏离原图:降低
augmentation_level(设为 0)+ 提高cfg(调到 9-10) - 加快生成速度:降低分辨率(576×320)+ 减少帧数(8 帧)+ 降低步数(15 步)
我可以帮你整理一份SVD 视频生成故障排查清单,对应画面抖动、细节丢失等常见问题的解决方法,需要吗?
除了ImageOnlyCheckpointLoader,ComfyUI还有哪些常用的Checkpoint加载器?
除了你已经了解的 ImageOnlyCheckpointLoader,ComfyUI 内置 + 常用第三方还有 5 大核心 Checkpoint 加载器,覆盖标准文生图、unCLIP 图像编辑、高级模型混搭、SDXL 专用、视频 / 时序专用等场景。下面按内置官方 → 常用第三方 → 特殊场景详细讲解,附输出、适用模型、JSON 示例与选型对比。
一、内置官方 Checkpoint 加载器(必掌握)
1. CheckpointLoaderSimple(最常用,标准文生图)
核心定位
ComfyUI 默认 / 最通用的大模型加载器,用于加载 SD 1.x/2.x/SDXL 等标准文生图模型,输出完整三组件:MODEL (UNet) + CLIP (文本编码器) + VAE。
API 与输出
python
运行
INPUT_TYPES = {"required": {"ckpt_name": (["模型列表"], )}}
RETURN_TYPES = ("MODEL", "CLIP", "VAE") # 索引0/1/2
适用模型
- SD 1.5/2.1、RealisticVision、MeinaMix、Anything、SDXL 1.0/1.0-refiner 等所有标准文生图模型。
最简 JSON
json
{
"1": {
"inputs": {"ckpt_name": "v1-5-pruned-emaonly.safetensors"},
"class_type": "CheckpointLoaderSimple"
}
}
连接要点
CLIP接CLIPTextEncode(提示词编码)MODEL接KSamplerVAE接VAEDecode/VAEEncode
2. unCLIPCheckpointLoader(图像变体 / 编辑专用)
核心定位
专门加载 unCLIP 架构模型(如 SD 2.1 unCLIP),支持图像 + 文本双条件生成,用于图像变体、风格迁移、图像编辑。
API 与输出(多一个 CLIP_VISION)
python
运行
INPUT_TYPES = {"required": {"ckpt_name": (["模型列表"], )}}
RETURN_TYPES = ("MODEL", "CLIP", "VAE", "CLIP_VISION") # 索引0/1/2/3
适用模型
- SD 2.1 unCLIP、Stable Diffusion unCLIP 系列、DALL-E 2 类架构模型。
最简 JSON
json
{
"1": {
"inputs": {"ckpt_name": "sd21-unclip.safetensors"},
"class_type": "unCLIPCheckpointLoader"
}
}
连接要点
CLIP_VISION(索引 3)接CLIPVisionEncode(处理参考图)- 配合
unCLIPConditioning节点融合文本 + 图像条件
3. CheckpointLoader(高级版,可分离加载)
核心定位
官方高级加载器,相比 Simple 版支持独立指定模型 / CLIP/VAE 配置,适合模型组件混搭(如 A 模型的 UNet + B 模型的 CLIP + C 模型的 VAE)。
API 与输入(可自定义 config)
python
运行
INPUT_TYPES = {
"required": {
"ckpt_name": (["模型列表"], ),
"config_name": (["配置文件列表"], {"default": "default"})
}
}
RETURN_TYPES = ("MODEL", "CLIP", "VAE")
适用场景
- 高级实验:混搭不同模型的 UNet/CLIP/VAE
- 自定义模型架构、非标准 SD 模型
最简 JSON
json
{
"1": {
"inputs": {
"ckpt_name": "sdxl_base.safetensors",
"config_name": "sd_xl_base.yaml"
},
"class_type": "CheckpointLoader"
}
}
二、常用第三方 Checkpoint 加载器(进阶必备)
4. CheckpointLoader|pysssss(增强型,带预览 + 预设)
核心定位
comfyui-pysssss 插件提供的增强版加载器,解决官方加载器无预览、难管理、不能独立选组件的痛点,是专业用户首选。
核心优势(对比 Simple)
- ✅ 模型预览图(需在模型目录放同名图片)
- ✅ 独立选择
MODEL/CLIP/VAE(自由混搭) - ✅ 保存 / 调用预设(一键切换常用组合)
- ✅ 自动校验模型完整性、显存优化
- ✅ 支持
examples加载提示词模板
输入输出
python
运行
# 输入:ckpt_name + 可选 model/clip/vae 独立路径
RETURN_TYPES = ("MODEL", "CLIP", "VAE")
适用场景
- 多风格快速切换、模型组件实验、长流程管理
5. SDXLCheckpointLoader(SDXL 专用,简化双 CLIP)
核心定位
专门加载 SDXL 模型,自动处理 SDXL 特有的 双 CLIP(CLIP-G + CLIP-L),无需手动配置,简化 SDXL 工作流。
输出(含双 CLIP)
python
运行
RETURN_TYPES = ("MODEL", "CLIP", "CLIP2", "VAE")
# 索引0:MODEL, 1:CLIP-G, 2:CLIP-L, 3:VAE
适用模型
- SDXL 1.0 base/refiner、SDXL 衍生模型(如 PonyDiffusion、Juggernaut XL)
连接要点
- 两个 CLIP 分别接
CLIPTextEncodeSDXL节点
6. TemporalCheckpointLoader(时序 / 视频专用,除 ImageOnly 外)
核心定位
加载 时序 / 视频扩散模型(如 VideoCrafter、AnimateDiff 大模型),输出含时序注意力的模型组件,配合 AnimateDiff 生成连贯视频。
输出(含时序相关)
python
运行
RETURN_TYPES = ("MODEL", "CLIP", "VAE", "MOTION_MODULE")
适用模型
- AnimateDiff 大模型、VideoCrafter、Stable Video 时序模型
三、特殊场景加载器(补充)
- CheckpointLoaderModelOnly:仅加载
MODEL(UNet),不加载 CLIP/VAE,适合仅替换 UNet的场景。 - CheckpointLoaderCLIPOnly:仅加载
CLIP,用于单独测试文本编码器。 - CheckpointLoaderVAEOnly:仅加载
VAE,用于单独测试 / 替换解码器。
四、六大加载器核心对比表(选型速查)
表格
| 加载器名称 | class_type | 核心输出 | 适用模型 / 场景 | 最大特点 | ||
|---|---|---|---|---|---|---|
| CheckpointLoaderSimple | CheckpointLoaderSimple | MODEL、CLIP、VAE | SD1.x/2.x/SDXL 标准文生图 | 简单无脑,新手首选 | ||
| unCLIPCheckpointLoader | unCLIPCheckpointLoader | MODEL、CLIP、VAE、CLIP_VISION | SD2.1 unCLIP、图像变体 | 支持图像 + 文本双条件 | ||
| CheckpointLoader | CheckpointLoader | MODEL、CLIP、VAE | 自定义架构、组件混搭 | 可指定 config,高级实验 | ||
| CheckpointLoader | pysssss | CheckpointLoader | pysssss | MODEL、CLIP、VAE | 多风格、专业流程 | 预览 + 预设 + 独立选组件 |
| SDXLCheckpointLoader | SDXLCheckpointLoader | MODEL、CLIP、CLIP2、VAE | SDXL 系列 | 自动处理双 CLIP,简化 SDXL | ||
| ImageOnlyCheckpointLoader | ImageOnlyCheckpointLoader | MODEL、CLIP_VISION、VAE | SVD/SVD-XT、图生视频 | 无文本 CLIP,纯图像驱动 | ||
| TemporalCheckpointLoader | TemporalCheckpointLoader | MODEL、CLIP、VAE、MOTION | AnimateDiff、时序视频 | 含运动模块,连贯视频 |
五、选型建议(按场景直接选)
- 新手 / 标准文生图 → CheckpointLoaderSimple(无脑用)
- 图像变体 / 编辑 → unCLIPCheckpointLoader
- SDXL 专用 → SDXLCheckpointLoader
- 图生视频(SVD) → ImageOnlyCheckpointLoader
- 时序视频(AnimateDiff) → TemporalCheckpointLoader
- 专业 / 多风格混搭 → CheckpointLoader|pysssss
- 高级实验 / 组件分离 → CheckpointLoader
六、常见问题
Q1:Simple 和 CheckpointLoader 有什么区别?
- Simple:自动用默认 config,不能独立选组件,适合快速生成。
- CheckpointLoader:可手动指定
config_name,支持组件混搭,适合高级用户。
Q2:ImageOnly 和 Temporal 都是视频用,怎么选?
- ImageOnly:用于 SVD 类图生视频(无文本 CLIP,纯图像驱动)。
- Temporal:用于 AnimateDiff 类时序视频(含文本 CLIP + 运动模块)。
Q3:必须装 pysssss 吗?
不是必须,但强烈建议:模型预览、预设、独立选组件能大幅提升效率。
我可以帮你整理一份各加载器的完整 JSON 工作流模板(含 Simple、unCLIP、SDXL、ImageOnly、Temporal),直接复制就能用,需要吗?
需要
ComfyUI 主流 Checkpoint 加载器 JSON 工作流模板
以下是 6 种常用加载器的完整可运行 JSON 模板,涵盖文生图、图像变体、SDXL 生成、图生视频、时序视频等核心场景,直接复制到 ComfyUI API 即可调用。
通用前提
- 模型文件需放入
ComfyUI/models/checkpoints目录- 替换
ckpt_name为你本地的模型文件名(含后缀)- 节点 ID 保持唯一,连接格式为
["源节点ID", 输出索引]
一、CheckpointLoaderSimple(标准文生图,新手首选)
适用模型
SD 1.5、RealisticVision、Anything 等标准文生图模型
完整 JSON
json
{
"1": {
"inputs": { "ckpt_name": "v1-5-pruned-emaonly.safetensors" },
"class_type": "CheckpointLoaderSimple"
},
"2": {
"inputs": { "text": "masterpiece, best quality, a cute cat sitting on sofa", "clip": ["1", 1] },
"class_type": "CLIPTextEncode"
},
"3": {
"inputs": { "text": "worst quality, blurry, low res", "clip": ["1", 1] },
"class_type": "CLIPTextEncode"
},
"4": {
"inputs": { "width": 512, "height": 512, "batch_size": 1 },
"class_type": "EmptyLatentImage"
},
"5": {
"inputs": {
"seed": 123456,
"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": "Simple_txt2img", "images": ["6", 0] },
"class_type": "SaveImage"
}
}
二、unCLIPCheckpointLoader(图像变体 / 编辑)
适用模型
SD 2.1 unCLIP 等支持图像 + 文本双条件的模型
完整 JSON
json
{
"1": {
"inputs": { "ckpt_name": "sd21-unclip.safetensors" },
"class_type": "unCLIPCheckpointLoader"
},
"2": {
"inputs": { "image": "reference_cat.png", "upload": "image" },
"class_type": "LoadImage"
},
"3": {
"inputs": { "clip_vision": ["1", 3], "image": ["2", 0] },
"class_type": "CLIPVisionEncode"
},
"4": {
"inputs": { "text": "a cat with rainbow fur", "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": 654321,
"steps": 25,
"cfg": 7,
"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_img2img", "images": ["8", 0] },
"class_type": "SaveImage"
}
}
三、SDXLCheckpointLoader(SDXL 专用,双 CLIP 自动处理)
适用模型
SDXL 1.0 base、SDXL Refiner 等双 CLIP 架构模型
完整 JSON
json
{
"1": {
"inputs": { "ckpt_name": "sdxl_base_1.0.safetensors" },
"class_type": "SDXLCheckpointLoader"
},
"2": {
"inputs": {
"text": "masterpiece, 8k, ultra detailed, a majestic lion in savanna",
"clip": ["1", 1],
"clip2": ["1", 2]
},
"class_type": "CLIPTextEncodeSDXL"
},
"3": {
"inputs": {
"text": "ugly, deformed, blurry, low quality",
"clip": ["1", 1],
"clip2": ["1", 2]
},
"class_type": "CLIPTextEncodeSDXL"
},
"4": {
"inputs": { "width": 1024, "height": 1024, "batch_size": 1 },
"class_type": "EmptyLatentImage"
},
"5": {
"inputs": {
"seed": 987654,
"steps": 30,
"cfg": 7.5,
"sampler_name": "euler_ancestral",
"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", 3] },
"class_type": "VAEDecode"
},
"7": {
"inputs": { "filename_prefix": "SDXL_txt2img", "images": ["6", 0] },
"class_type": "SaveImage"
}
}
四、ImageOnlyCheckpointLoader(SVD 图生视频)
适用模型
SVD、SVD-XT 等图生视频模型
完整 JSON
json
{
"1": {
"inputs": { "ckpt_name": "svd.safetensors" },
"class_type": "ImageOnlyCheckpointLoader"
},
"2": {
"inputs": { "image": "start_frame_mountain.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": 112233,
"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_frames", "images": ["5", 0] },
"class_type": "SaveImage"
}
}
五、TemporalCheckpointLoader(AnimateDiff 时序视频)
适用模型
AnimateDiff 大模型、VideoCrafter 等带运动模块的时序模型
完整 JSON
json
{
"1": {
"inputs": { "ckpt_name": "animatediff_v1.safetensors" },
"class_type": "TemporalCheckpointLoader"
},
"2": {
"inputs": { "text": "a girl walking on beach, sunset, 4k", "clip": ["1", 1] },
"class_type": "CLIPTextEncode"
},
"3": {
"inputs": { "text": "blurry, dark, low res", "clip": ["1", 1] },
"class_type": "CLIPTextEncode"
},
"4": {
"inputs": {
"width": 512,
"height": 512,
"batch_size": 16,
"frames": 16
},
"class_type": "EmptyLatentImage"
},
"5": {
"inputs": {
"model": ["1", 0],
"motion_module": ["1", 3]
},
"class_type": "AnimateDiffLoader"
},
"6": {
"inputs": {
"seed": 445566,
"steps": 25,
"cfg": 7,
"sampler_name": "euler",
"scheduler": "normal",
"denoise": 1,
"model": ["5", 0],
"positive": ["2", 0],
"negative": ["3", 0],
"latent_image": ["4", 0]
},
"class_type": "KSampler"
},
"7": {
"inputs": { "samples": ["6", 0], "vae": ["1", 2] },
"class_type": "VAEDecode"
},
"8": {
"inputs": { "filename_prefix": "AnimateDiff_video", "images": ["7", 0] },
"class_type": "SaveImage"
}
}
六、CheckpointLoader|pysssss(增强型,组件混搭)
适用场景
自由混搭 MODEL/CLIP/VAE 组件,需先安装 comfyui-pysssss 插件
完整 JSON
json
{
"1": {
"inputs": {
"ckpt_name": "v1-5-pruned-emaonly.safetensors",
"clip_name": "clip_vit_l_14.safetensors",
"vae_name": "vae-ft-mse-840000-ema-pruned.safetensors"
},
"class_type": "CheckpointLoader|pysssss"
},
"2": {
"inputs": { "text": "a dog wearing sunglasses, cartoon style", "clip": ["1", 1] },
"class_type": "CLIPTextEncode"
},
"3": {
"inputs": { "text": "realistic, photo, blurry", "clip": ["1", 1] },
"class_type": "CLIPTextEncode"
},
"4": {
"inputs": { "width": 512, "height": 512, "batch_size": 1 },
"class_type": "EmptyLatentImage"
},
"5": {
"inputs": {
"seed": 778899,
"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": "Pysssss_mix", "images": ["6", 0] },
"class_type": "SaveImage"
}
}
模板使用说明
- 替换模型名:将
ckpt_name改为你本地的模型文件名,确保后缀一致(如.safetensors)。 - 替换参考图:图生图 / 图像变体场景,将
image参数改为你上传的图片名。 - 调整生成参数:修改
seed、steps、cfg、width/height等参数优化效果。 - API 提交:将 JSON 放入
{"prompt": {...}}中,通过POST http://127.0.0.1:8188/api/prompt提交。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)