1. 为什么要在 ComfyUI 里同时跑 Kolors、GLM3 和 SD3
如果你最近在折腾本地文生图,大概率会遇到一个很现实的问题:想对比国产可图大模型 Kolors 和 StabilityAI 的 SD3,得来回切环境、换权重、改路径,光是把模型塞进models目录就能耗掉一晚上。更麻烦的是,Kolors 依赖 ChatGLM3 做文本编码,SD3 又走自己的 T5+CLIP 路线,两套工作流混在一起时,节点冲突、显存爆掉、提示词理解错位几乎是家常便饭。
这篇内容就是解决这个场景的:在 ComfyUI 里把 Kolors + GLM3 和 SD3 放在同一套工作流骨架下,用 TaoToken 统一 Key 接入 API 通道,做模型切换、参数校验和出图对比。适合已经装好 ComfyUI、想快速复现国产可图大模型评测流程的人,也适合想把 GLM3 加持下的中文提示词能力用起来的创作者。
核心检索词先摆出来:可图大模型 Kolors 是快手开源的文生图模型,基于潜在扩散架构,在十亿级图文对上训练,中文文字渲染和复杂语义理解是它的强项;GLM3 在这里扮演文本编码器的角色,把中文提示词转成模型能吃的 embedding;ComfyUI 是节点式工作流工具;SD3 是 StabilityAI 的 Medium 版本,英文提示词理解更稳。TaoToken 在这里的作用是提供统一的 API Key 和通道,让你不用在多个平台之间反复注册和切换。
我试过把 Kolors 和 SD3 的工作流拆成两个独立 group,共用一套 TaoToken 配置,切换时只改模型加载节点,出图对比效率提升很明显。下面按步骤拆开讲。
2. TaoToken 前置:统一 Key 与 API 通道准备
在开始配 ComfyUI 之前,先把 TaoToken 的 Key 和通道准备好。这一步不复杂,但顺序别搞反:先拿 Key,再配环境变量,最后写进 ComfyUI 的配置文件。
2.1 获取 API Key
打开 TaoToken 控制台,进入 API Keys 页面创建一个新 Key。建议按用途命名,比如comfyui-kolors-sd3,方便后面在多个工作流里区分。创建后复制 Key,注意只显示一次,丢了就重新生成。
- 控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
- API Keys 页面:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
2.2 确认 API 通道地址
TaoToken 的 API 通道地址是https://taotoken.net/api,这个地址不加 UTM 参数,直接用于程序调用。ComfyUI 里如果用到自定义节点走 HTTP 请求,或者你用外部脚本做批量出图,都填这个。
注意:不要把官网首页地址填进 API 配置里,官网带 UTM 参数是给浏览器访问用的,程序调用只认
https://taotoken.net/api。
2.3 环境变量与配置文件位置
ComfyUI 的自定义节点配置一般放在ComfyUI/custom_nodes下对应插件的目录里。如果你用的是 ComfyUI-KwaiKolorsWrapper,它的配置读取路径通常是插件根目录下的config.toml;而 ComfyUI 主程序的设置走ComfyUI/user/default/settings.json。两个文件分工不同:settings.json管界面和全局行为,config.toml管插件级别的 API 通道和模型路径。
先把 Key 写进环境变量,避免硬编码:
export TAOTOKEN_API_KEY="sk-你的Key" export TAOTOKEN_BASE_URL="https://taotoken.net/api"Windows 下用 PowerShell:
$env:TAOTOKEN_API_KEY="sk-你的Key" $env:TAOTOKEN_BASE_URL="https://taotoken.net/api"环境变量设好后,重启终端和 ComfyUI,让进程能读到。
3. 可复制配置:settings.json 与 config.toml 示例
这一节给可直接复制的配置骨架。注意路径按你自己的 ComfyUI 安装位置调整,别直接照搬。
3.1 settings.json 示例
ComfyUI/user/default/settings.json里主要加两段:一是 API 通道,二是模型搜索路径,方便 Kolors 和 SD3 的权重都能被扫到。
{ "taotoken": { "api_key_env": "TAOTOKEN_API_KEY", "base_url": "https://taotoken.net/api", "timeout": 120, "retry": 3 }, "comfy": { "model_paths": { "diffusers": [ "models/diffusers/Kolors", "models/diffusers/SD3" ], "llm_checkpoints": [ "models/LLM/checkpoints" ] } } }这里diffusers数组里同时放了 Kolors 和 SD3 的目录,ComfyUI 启动时会扫描这两个路径。llm_checkpoints指向 GLM3 的量化权重目录。
3.2 config.toml 示例
ComfyUI/custom_nodes/ComfyUI-KwaiKolorsWrapper/config.toml里配置插件级别的通道和模型选择:
[api] provider = "taotoken" base_url = "https://taotoken.net/api" api_key_env = "TAOTOKEN_API_KEY" timeout = 120 [model] kolors_path = "models/diffusers/Kolors" sd3_path = "models/diffusers/SD3" glm3_checkpoint = "models/LLM/checkpoints/chatglm3-4bit.safetensors" default_engine = "kolors" [generation] steps = 28 cfg = 7.0 width = 1024 height = 1024 sampler = "euler" scheduler = "normal"default_engine设成kolors,切换 SD3 时改这一行就行。glm3_checkpoint指向 4bit 量化版本,小显存机器优先用这个。
3.3 模型目录结构确认
配完后确认目录结构对得上:
ComfyUI/models/ ├── LLM/checkpoints/ │ └── chatglm3-4bit.safetensors ├── diffusers/ │ ├── Kolors/ │ │ ├── model_index.json │ │ ├── scheduler/ │ │ ├── text_encoder/ │ │ └── unet/ │ └── SD3/ │ ├── model_index.json │ └── ...Kolors 的text_encoder目录里是 ChatGLM3 的权重分片,SD3 走自己的文本编码器。两个模型共用diffusers父目录,但子目录分开,避免加载时串。
4. 验证请求与成功结果:模型切换、参数校验、出图对比
配置写完,接下来做验证。验证分三步:先确认 API 通道通,再确认模型能加载,最后跑一组对比出图。
4.1 验证 API 通道
用 curl 测一下 TaoToken 通道是否可达:
curl -X POST "https://taotoken.net/api/v1/chat/completions" \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "glm-3", "messages": [{"role": "user", "content": "用一句话描述中国古风少女"}], "max_tokens": 64 }'返回里有choices字段就说明通道正常。这一步只是验证 Key 和通道,不涉及出图。
4.2 验证 GLM3 文本编码
在 ComfyUI 里加载 Kolors 工作流,把提示词节点接上 GLM3 编码器,输入中文提示词:
1个中国女孩,手举木牌,木牌上写着文字“我爱你中华”,身穿淡黄色中国古风旗袍,18岁,年轻美貌点执行,观察控制台日志。如果看到ChatGLM3 loaded和text_encoder ready,说明 GLM3 加持生效。出图后检查木牌上的文字是否可读,这是 Kolors 中文渲染的强项。
4.3 切换 SD3 做对比
把config.toml里default_engine改成sd3,重启 ComfyUI,加载 SD3 工作流。用同一段中文提示词跑一次,再换成英文提示词跑一次:
A Chinese girl holds up a wooden sign with the chinese words "我爱你中华" written on it. Dressed in ancient Chinese style cheongsam, light yellow cheongsam.对比结果记录在表格里:
| 维度 | Kolors + GLM3 | SD3 Medium |
|---|---|---|
| 中文提示词理解 | 直接支持,语义准确 | 需转英文,易丢细节 |
| 中文文字渲染 | 木牌文字可读 | 文字常缺失或乱码 |
| 人物写实 | 贴近现实,光影自然 | 艺术感强,色彩多变 |
| 复杂语义 | GLM3 加持,理解稳 | 英文长句更稳 |
| 手部问题 | 较易隐藏 | 偶有变形 |
4.4 参数校验清单
每次切换模型后,检查这几个参数:
steps:Kolors 建议 28,SD3 建议 30cfg:Kolors 7.0,SD3 5.5 到 7.0 之间sampler:两者都可用 euler,SD3 可试 dpmpp_2mwidth/height:1024x1024 起步,显存不够降到 768
参数不对时,出图会糊或者过曝。校验完再跑批量对比。
5. 本篇常见错排查
配这套流程时,下面几个错我踩过,列出来帮你省时间。
5.1 GLM3 权重加载失败
报错ChatGLM3 checkpoint not found,先确认chatglm3-4bit.safetensors是否在models/LLM/checkpoints下,文件名别改。如果显存小于 8G,用 4bit 版本;8G 到 12G 可试 8bit;16G 以上再上 fp16。
5.2 Kolors 首次运行卡住
Kolors 的 diffusers 权重较大,首次加载会慢。如果卡在Loading pipeline超过 5 分钟,检查models/diffusers/Kolors下model_index.json是否存在,以及unet目录里的 safetensors 是否完整。缺文件就重新下载对应分片。
5.3 API 通道返回 401
401 Unauthorized一般是 Key 没读到。检查环境变量名是否和settings.json里api_key_env一致,重启终端后echo $TAOTOKEN_API_KEY看有没有值。Windows 下注意 PowerShell 和 CMD 的环境变量不互通。
5.4 模型切换后出图不变
改了default_engine但出图还是旧模型,多半是 ComfyUI 缓存没清。重启 ComfyUI,或者在设置里清一下节点缓存。另外确认工作流里加载的模型节点路径是否跟着config.toml走,有些工作流是硬编码路径。
5.5 中文提示词出图乱码
Kolors 走 GLM3 编码,如果 GLM3 没加载成功,中文提示词会被当普通 token 处理,出图就乱。回看 4.2 的日志,确认ChatGLM3 loaded出现。SD3 本身不直接吃中文,中文提示词要先转英文,别指望它原生理解。
6. 语义一致 CTA:按场景选入口
这套流程跑通后,你可以按自己的需求选下一步入口。
如果你在排障或接入阶段卡住,优先看 API Keys 和接入文档,把 Key 和通道确认清楚:
- API Keys:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
- 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
如果你想先验证模型对话能力,比如用 GLM3 做提示词优化,可以直接进模型对话页面试:
- 模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite
如果你打算长期做编码或 Agent 类任务,把 Kolors 和 SD3 的出图流程接进自动化管线,Coding Plan 更合适:
- Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite
最后补一个实操细节:对比出图时,把两组图的 seed 固定成同一个值,这样差异只来自模型本身,而不是随机噪声。我一般在工作流里加一个KSampler的 seed 输入节点,手动填同一个数字,跑完再换提示词。这样对比结果更可信,也方便你复现。