ComfyUI 接入
将 ComfyUI 与 TokenFlash API 对接,实现 AI 提示词生成、多模态分析、自动化图像工作流。
ComfyUI 是目前最强大的节点式 AI 图像/视频生成工作流引擎。与传统的 Web UI 不同,ComfyUI 采用可视化的节点图编排工作流,让你像搭积木一样组合各种 AI 模型和处理步骤。
一个重要理解: ComfyUI 不像 Claude Code、Codex 那样天然就是文本模型客户端。TokenFlash 负责远程模型调用,ComfyUI 负责节点编排、批量工作流、后处理和本地增强。两者是"组合"关系,而非"替代"。

核心特性
| 特性 | 说明 |
|---|---|
| 节点式架构 | 通过连接节点构建工作流,灵活度极高 |
| 可复现 | 工作流可导出为 JSON,方便分享和复现 |
| 自定义节点 | 社区提供数千个自定义节点 |
| 多模态 | 支持图像、视频、音频生成 |
| API 驱动 | 内置 REST API + WebSocket,易于集成 |
| 资源高效 | 相比 WebUI 内存占用更低 |
ComfyUI 能做什么
- 图像生成:Stable Diffusion、FLUX、SDXL
- 视频生成:AnimateDiff、SVD、Wan
- 图像编辑:Inpainting、ControlNet、IPAdapter
- 风格迁移:LoRA 和风格模型
- 图像分析:多模态模型识别图像内容
- 提示词优化:LLM 自动优化和扩展提示词
为什么接入 TokenFlash
将 ComfyUI 与 TokenFlash API 结合可以实现:
- AI 智能提示词生成:用 LLM 自动生成高质量提示词
- 图像内容分析:用多模态模型分析图像,反向生成提示词
- 自动化 Pipeline:LLM 生成提示词 → ComfyUI 生成图像 → LLM 评估质量
- 批量处理:结合 TokenFlash 的低价 API,实现大规模内容创作
安装与部署
Windows
前往 ComfyUI GitHub Releases 下载最新便携包,解压后双击 run_nvidia_gpu.bat 启动。访问 http://127.0.0.1:8188。
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python -m venv venv
venv\Scripts\activate
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt
python main.pymacOS
brew install python@3.12
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
source venv/bin/activate
pip install torch torchvision torchaudio
pip install -r requirements.txt
python main.py --force-fp16M1/M2/M3 Mac 自动使用 Metal Performance Shaders (MPS)。
Linux
sudo apt install -y python3.12 python3.12-venv python3-pip git
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
source venv/bin/activate
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt
python main.pyDocker
version: '3.8'
services:
comfyui:
image: ghcr.io/ai-dock/comfyui:latest
ports:
- "8188:8188"
volumes:
- ./models:/opt/ComfyUI/models
- ./output:/opt/ComfyUI/output
environment:
- NVIDIA_VISIBLE_DEVICES=all
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]安装 ComfyUI Manager
ComfyUI Manager 是必装插件管理器,可一键安装数千个自定义节点:
cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
# 重启 ComfyUI重启后界面会出现 Manager 按钮,用于搜索安装节点、下载模型、一键更新插件。
TokenFlash API 对接方案
方案一:自定义节点接入(推荐)
在 ComfyUI Manager 中搜索安装以下节点之一:
ComfyUI-Custom-Scripts— 包含 HTTP Request 节点ComfyUI_HTTP_Request— 专门的 HTTP 请求节点ComfyUI-LLM-Party— LLM 集成节点集合
在节点中配置:
| 配置项 | 值 |
|---|---|
| API Provider | OpenAI Compatible |
| Base URL | https://tokenflash.cn/v1 |
| API Key | sk-xxx |
| Model | gpt-5.6-sol |
方案二:Python 脚本桥接
适合需要复杂逻辑处理的场景。安装 openai 包:
pip install openaiAI 图像生成 Pipeline:
import json, time, urllib.request
from openai import OpenAI
TOKENFLASH_BASE_URL = "https://tokenflash.cn/v1"
TOKENFLASH_API_KEY = "sk-xxx"
COMFYUI_URL = "http://127.0.0.1:8188"
def generate_prompt(topic, style="photorealistic"):
"""用 TokenFlash LLM 生成图像提示词"""
client = OpenAI(base_url=TOKENFLASH_BASE_URL, api_key=TOKENFLASH_API_KEY)
response = client.chat.completions.create(
model="gpt-5.6-sol",
messages=[
{"role": "system", "content": "Create detailed, vivid prompts for image generation. Output ONLY the prompt."},
{"role": "user", "content": f"Create a {style} image prompt about: {topic}"}
],
temperature=0.8,
max_tokens=300
)
return response.choices[0].message.content.strip()
def submit_workflow(prompt):
"""提交工作流到 ComfyUI"""
workflow = {
"prompt": {
"3": {"class_type": "KSampler", "inputs": {"seed": int(time.time()) % 1000000, "steps": 20, "cfg": 7, "model": ["4", 0], "positive": ["6", 0], "negative": ["7", 0], "latent_image": ["5", 0]}},
"4": {"class_type": "CheckpointLoaderSimple", "inputs": {"ckpt_name": "sd_xl_base_1.0.safetensors"}},
"5": {"class_type": "EmptyLatentImage", "inputs": {"width": 1024, "height": 1024, "batch_size": 1}},
"6": {"class_type": "CLIPTextEncode", "inputs": {"text": prompt, "clip": ["4", 1]}},
"7": {"class_type": "CLIPTextEncode", "inputs": {"text": "ugly, blurry, low quality", "clip": ["4", 1]}},
"8": {"class_type": "VAEDecode", "inputs": {"samples": ["3", 0], "vae": ["4", 2]}},
"9": {"class_type": "SaveImage", "inputs": {"filename_prefix": "TokenFlash_", "images": ["8", 0]}}
}
}
data = json.dumps(workflow).encode('utf-8')
req = urllib.request.Request(f"{COMFYUI_URL}/prompt", data=data, headers={'Content-Type': 'application/json'})
result = json.loads(urllib.request.urlopen(req).read())
return result['prompt_id']
def wait_result(prompt_id, timeout=300):
"""等待 ComfyUI 生成完成"""
start = time.time()
while time.time() - start < timeout:
try:
resp = json.loads(urllib.request.urlopen(f"{COMFYUI_URL}/history/{prompt_id}").read())
if prompt_id in resp:
for node_id, output in resp[prompt_id]['outputs'].items():
if 'images' in output and output['images']:
img = output['images'][0]
return f"{COMFYUI_URL}/view?filename={img['filename']}&type={img['type']}"
except: pass
time.sleep(2)
raise TimeoutError(f"生成超时 ({timeout}s)")
# 一键运行
prompt = generate_prompt("a futuristic city with flying cars", "cinematic")
pid = submit_workflow(prompt)
url = wait_result(pid)
print(f"图像地址: {url}")方案三:HTTP Request 节点直接调用
在工作流中添加 HTTP Request 节点,配置:
- Method: POST
- URL:
https://tokenflash.cn/v1/chat/completions - Headers:
Content-Type: application/json+Authorization: Bearer sk-xxx - Body:
{
"model": "gpt-5.6-sol",
"messages": [{"role": "user", "content": "为以下主题生成图像提示词:{输入文本}"}],
"temperature": 0.8
}工作流连接:
[输入文本] → [HTTP Request 节点] → [解析响应] → [CLIP Text Encode] → [KSampler] → [保存图像]导出自定义工作流 API 格式
在 ComfyUI 界面中构建好工作流后,点击菜单 → Save (API Format),下载的 JSON 即可直接通过 /prompt API 提交。
实战案例
案例:图像分析 + 二次创作
上传图片 → 多模态模型分析 → 提取描述 → 创意改编 → ComfyUI 生成
import base64
from openai import OpenAI
client = OpenAI(base_url="https://tokenflash.cn/v1", api_key="sk-xxx")
with open("input.png", "rb") as f:
img_b64 = base64.b64encode(f.read()).decode()
# 多模态分析
analysis = client.chat.completions.create(
model="gpt-5.6-sol",
messages=[{"role": "user", "content": [
{"type": "text", "text": "详细描述这张图片的内容、风格、色彩和构图"},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_b64}"}}
]}]
).choices[0].message.content
# 创意改编
new_prompt = client.chat.completions.create(
model="gpt-5.6-sol",
messages=[
{"role": "system", "content": "Based on the description, create a creative variation as an image prompt."},
{"role": "user", "content": f"Original: {analysis}\n\nCreate a creative variation."}
]
).choices[0].message.content
# 提交 ComfyUI 生成
pid = submit_workflow(new_prompt)
print(f"新图像: {wait_result(pid)}")批量生成
topics = ["underwater city", "steampunk airship", "cyberpunk market"]
for topic in topics:
prompt = generate_prompt(topic, "cinematic, 8k")
pid = submit_workflow(prompt)
print(f"{topic}: {wait_result(pid)}")自定义 Python 节点
在 ComfyUI/custom_nodes/ 下创建 tokenflash_nodes.py:
from openai import OpenAI
class TokenFlashLLM:
@classmethod
def INPUT_TYPES(cls):
return {"required": {
"prompt": ("STRING", {"multiline": True}),
"model": (["gpt-5.6-sol", "gpt-5.5"],),
"api_key": ("STRING", {"default": "sk-xxx"}),
}}
RETURN_TYPES = ("STRING",)
FUNCTION = "generate"
CATEGORY = "TokenFlash"
def generate(self, prompt, model, api_key):
client = OpenAI(base_url="https://tokenflash.cn/v1", api_key=api_key)
result = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}]
).choices[0].message.content
return (result,)
NODE_CLASS_MAPPINGS = {"TokenFlashLLM": TokenFlashLLM}常见问题
ComfyUI 启动报错 "CUDA out of memory"
# 使用 fp16 模式
python main.py --force-fp16
# 降低模型精度
python main.py --fp16-vae
# CPU 模式(无需显存)
python main.py --cpuAPI 调用返回 401
- API Key 是否正确(
sk-开头) - Base URL 是否包含
/v1(正确:https://tokenflash.cn/v1) - Key 是否过期或余额不足
自定义节点安装失败
source venv/bin/activate # 确保在正确的虚拟环境中
pip install -r custom_nodes/节点名称/requirements.txtComfyUI API 格式工作流如何导出
在界面中点击菜单 → Save (API Format),或在浏览器开发者工具 Network 标签观察提交时的请求体。
渠道与定价
| 分组 | 倍率 | 推荐场景 |
|---|---|---|
| GPT分组 | 0.5(5 折) | 使用 GPT 生成提示词 |
| Claude分组 | 0.6(6 折) | 使用 Claude 生成提示词 |
| AIGC | 1.0 | 图像和视频模型 |
| default | 1.0(原价) | 其他文本模型 |
批量生成提示词时选择 GPT分组(5 折),成本极低。