> 技能运行后,必须学习用户环境并缓存,下次运行直接使用,避免重复检测浪费时间。
所有使用此技能的 Agent 必须遵循:
memory/comfyui-env.json 缓存文件目标:减少 50%+ 的重复 API 调用和路径检测,提升用户体验。
每次生图必须走完整的5步对话流程,绝不能跳过交互直接生成。
用户说"生成图片" → 立即进入 Step 1,禁止跳过交互步骤直接提交到 ComfyUI。
用户说"生成图片"后,必须先动态扫描本地模板,然后显示以下固定格式,不得使用默认回复或硬编码模板列表:
🎨 图片生成助手已就绪!
第一步:选择工作流模板(直接输入编号)
你有 N 个本地模板可用:
编号 模板名称
0 不用模板,从零开始
1 模板A.json
2 模板B.json
...
也可以直接说类型开始:
1️⃣ 文生图 / 2️⃣ 图生图 / 3️⃣ 线稿上色
请输入编号:
模板扫描规则:
C:\Users\\Documents\ComfyUI\user\default\workflows\ .json 文件(不递归进入子目录)... 还有 X 个模板,不再一一列出,用户说"更多"时才分批显示或让用户指定编号生图模板1.json),不截断判断规则:
0 / 跳过 / 不用 → 不加载模板,进入 Step 11~N → 加载对应模板,读取 JSON 提取参数预填到 Step 3,向用户展示模板参数并允许逐个修改| 参数 | 说明 | 默认 |
|---|---|---|
| ------ | ------ | ------ |
| 🎯 主题 | 生成什么内容?人物/风景/动物/建筑/UI设计... | 询问 |
| 🎨 风格 | 视觉风格?写实/动漫/油画/水彩/赛博朋克/国风/扁平UI... | 询问 |
> 请告诉我:主题是什么?想要什么风格?
判断规则:
图生图额外参数:
> 请上传原图,并告诉我您想要怎么改造它?
等待用户提供主题和风格后,进入 Step 3。
两种入口:
收集完创意参数后,逐个询问生成参数,每次只问一个,用户可以回复具体值或「默认」跳过。
逐个引导顺序:
| 顺序 | 参数 | 问题示例 | 默认值(根据主题或模板) |
|---|---|---|---|
| ------ | ------ | ---------- | -------------------------- |
| ① | 尺寸 | 📐 图片尺寸有要求吗?快捷键:1:1 3:4 4:3 9:16 16:9,也可自定义如 1024x768 | 模板值 > 主题推荐 |
| ② | 步数 | ✨ 采样步数?步数越高越精细但越慢 | 模板值 > 20 |
| ③ | CFG | 🎛️ CFG(提示词引导强度 1-30)?数值越高越贴近提示词 | 模板值 > 7.0 |
| ④ | 种子 | 🎲 种子(随机数起点)?相同种子+相同提示词=几乎相同的图 | 模板值 > 随机(-1) |
| ⑤ | 采样器 | ⚙️ 采样算法有偏好吗? | 模板值 > euler_ancestral |
每轮对话格式(以尺寸为例,从模板加载时):
> 📐 图片尺寸(①/⑤)
> 模板预置:512×512
> 默认使用模板值,如需修改请输入新值
> 快捷键:1:1 3:4 4:3 9:16 16:9,也可自定义如 1024x768
> 回复「默认」使用模板值,「跳过」进入下一步
每轮对话格式(从零开始时):
> 📐 图片尺寸(①/⑤)
> 默认:16:9(768×512)(风景推荐横版)
> 快捷键:1:1 3:4 4:3 9:16 16:9
> 也可自定义,如 1024x768
> 回复「默认」或「下一步」跳过
其余参数的从零开始提示模板:
步数:
> ✨ 采样步数(②/⑤)
> 默认:20(步数越高越精细但越慢,建议 10-50)
> 回复「默认」或「下一步」跳过
CFG:
> 🎛️ CFG(提示词引导强度)(③/⑤)
> 默认:7.0(数值越高越贴近提示词,建议 5-15,过高会过饱和)
> 回复「默认」或「下一步」跳过
种子:
> 🎲 种子(随机数起点)(④/⑤)
> 默认:-1(随机),每次出图结果不同
> 输入固定数值(如 42、888)→ 相同种子+相同提示词 ≈ 相同图片,方便微调复现
> 回复「默认」或「下一步」跳过
采样器:
> ⚙️ 采样算法(⑤/⑤)
> 默认:euler_ancestral(色彩丰富,适合动漫/创意风格)
> 常用:euler(稳定)/ dpm++_2m(精细)/ dpm++_sde(质感)
> 回复「默认」或「下一步」跳过
其余参数的从模板加载提示模板:
步数:
> ✨ 采样步数(②/⑤)
> 模板预置:20
> 默认使用模板值,步数越高越精细但越慢(建议 10-50)
> 回复「默认」使用模板值,「跳过」进入下一步
CFG:
> 🎛️ CFG(提示词引导强度)(③/⑤)
> 模板预置:7.0
> 默认使用模板值,数值越高越贴近提示词(建议 5-15)
> 回复「默认」使用模板值,「跳过」进入下一步
种子:
> 🎲 种子(随机数起点)(④/⑤)
> 模板预置:888(固定种子)
> 固定数值可复现同一张图(相同种子+相同提示词 ≈ 相同结果)
> 回复「随机」改为 -1(每次不同),「默认」使用模板值,「跳过」进入下一步
> 如需其他固定种子,直接输入数值(如 42)
采样器:
> ⚙️ 采样算法(⑤/⑤)
> 模板预置:euler
> 默认使用模板值
> 常用:euler(稳定)/ euler_ancestral(色彩丰富)/ dpm++_2m(精细)
> 回复「默认」使用模板值,「跳过」进入下一步
规则:
16:9,30,8.5)→ 按顺序依次设置,快速跳过后续询问主题 → 默认尺寸映射表:
| 主题 | 默认尺寸 | 理由 |
|---|---|---|
| ------ | ---------- | ------ |
| UI设计 / 手机App | 9:16 (512×768) | 竖版更接近手机屏幕 |
| 横幅 / 海报 / 风景 / 壁纸 | 16:9 (768×512) | 横版更自然 |
| Logo / 头像 / 图标 | 1:1 (512×512) | 方形构图 |
| 人物 / 动漫角色 | 3:4 (384×512) | 竖版适合人物 |
| 其他 | 1:1 (512×512) | 通用 |
Agent 需解析用户输入,支持以下格式:
| 格式 | 示例 | 含义 |
|---|---|---|
| ------ | ------ | ------ |
| 尺寸快捷键 | 16:9 | 宽768 高512 |
| 自定义尺寸 | 1024x768 | 宽1024 高768 |
| 编号:值 | 3:30 | 第3项参数改为 30 |
| 编号,编号:值,值 | 4,5:8.5,-1 | 第4项=8.5,第5项=-1 |
| 组合 | 16:9,3:30,4:8.5 | 尺寸+步数+CFG 同时修改 |
| 上一步 | - | 返回前一个参数(或返回主题/风格) |
解析优先级:先检查尺寸快捷键/自定义尺寸,再按编号修改。
尺寸快捷键映射表:
| 快捷键 | 宽×高 | 适用场景 |
|---|---|---|
| -------- | ------- | ---------- |
1:1 | 512×512 | 头像、Logo、图标 |
3:4 | 384×512 | 竖版小幅 |
4:3 | 512×384 | 横版小幅 |
9:16 | 512×768 | 手机UI、竖版海报 |
16:9 | 768×512 | 横幅、壁纸、桌面 |
参数确认后,主动询问用户想要的具体画面内容:
> 🖼️ 请描述您想要的画面细节:
> 比如:画面中有什么?什么动作?什么场景?什么氛围?
> 可以用中文自由描述,也可以直接提供英文 prompt
> 回复「默认」我会根据主题和风格自动生成
用户回复后,Agent 需要做:
masterpiece, best quality, highres)和负面提示词展示完整配置供用户最终确认:
> 📋 请确认您的生成需求:
>
> 配置:
> - 类型:文生图
> - 主题:人物 | 风格:动漫
> - 尺寸:512×512 | 步数:20 | CFG:7.0
>
> 您的描述: 一个可爱的动漫女孩,蓝色的长发,穿着校服,站在樱花树下
>
> 正向提示词:
> > masterpiece, best quality, highres, anime style, beautiful girl, long blue hair, school uniform, standing under cherry blossom tree, pink petals falling, soft lighting, detailed eyes, cel shading
>
> 负面提示词:
> > lowres, bad anatomy, bad hands, text, error, missing fingers, cropped, worst quality, low quality, jpeg artifacts
>
> ✅ 确认无误请回复「确认」或「开始生成」
> 🔄 如需修改提示词请直接告诉我
> ⬆️ 输入「上一步」返回修改参数
规则:
用户确认后,执行 ComfyUI 生成:
回复格式:
> ⚙️ 正在生成中,请稍候...
> 🔄 已提交任务,等待完成...
生成完成后回复:
> ✅ 图片生成完成!
> 📐 尺寸:512×512 | 步数:20 | 模型:SD 1.5
然后发送图片:
> MEDIA: <输出文件路径>
图片发送后,询问后续操作:
> 🐱 图片已送达!
> - ✅ 满意的话可以继续生成
> - 🔄 想换风格/参数?告诉我
> - 📐 想换尺寸?比如横版或竖版
> - 🎨 想加特效?比如加LoRA
当用户确认后,调用 scripts/generate.py 执行生成。
# Windows PowerShell
python scripts/generate.py --prompt "一只可爱的小猫" --style "写实摄影" --size "512x512" --steps 20
脚本自动检测可用模型,优先级:
*.safetensors in checkpoints/)若检测失败,回退到 SD 1.5 默认路径:
C:\Users\\Documents\ComfyUI\models\checkpoints\ 根据检测到的模型类型自动选择:
SD 1.5 工作流字段:
CheckpointLoaderSimple → clip, model, vaeCLIPTextEncode → positive/negativeEmptyLatentImage → latentKSampler → samplingVAEDecode → decodeSaveImage → output图片保存到 C:\Users\
首次使用时,Agent 必须检测并缓存以下环境信息:
> ⚠️ 重要:ComfyUI 桌面端默认端口是 8000,不要尝试其他端口!
固定配置:
http://127.0.0.1:8000检查服务状态:
# 检查 ComfyUI 是否运行
Invoke-RestMethod -Uri "http://127.0.0.1:8000/system_stats" -TimeoutSec 2
禁止行为:
ComfyUI 可能在以下位置:
C:\Users\\Documents\ComfyUI\ C:\software\ComfyUI\resources\ComfyUI\检测逻辑:
检查 1: C:\Users\<user>\Documents\ComfyUI\output\ 是否存在
检查 2: C:\software\ComfyUI\resources\ComfyUI\output\ 是否存在
→ 优先使用存在的路径
→ 如果都存在,检查哪个目录有更新的文件
→ 缓存结果到 memory/comfyui-env.json
关键发现:ComfyUI 可能有多个输出目录,API 返回的文件名可能在任一目录。
检测流程:
保存到 memory/comfyui-env.json:
{
"comfyui_url": "http://127.0.0.1:8000",
"comfyui_port": 8000,
"output_dir": "C:\\software\\ComfyUI\\resources\\ComfyUI\\output\\",
"workflows_dir": "C:\\Users\\<user>\\Documents\\ComfyUI\\user\\default\\workflows\\",
"checkpoints_dir": "C:\\Users\\<user>\\Documents\\ComfyUI\\models\\checkpoints\\",
"default_checkpoint": "v1-5-pruned-emaonly.safetensors",
"detected_at": "2026-04-20T18:05:00+08:00"
}
重要提示:
comfyui_url 和 comfyui_port 是固定值,无需检测每次生成前检查缓存:
正确格式(ComfyUI API 要求):
{
"5": {
"class_type": "KSampler",
"inputs": {
"model": ["1", 0], // ← 必须是数组 [节点ID, 输出索引]
"positive": ["3", 0],
"latent_image": ["2", 0]
}
}
}
错误格式(会导致 'str' object has no attribute 'shape'):
{
"model": "1 0", // ❌ 字符串格式,ComfyUI 无法解析
"positive": "3 0"
}
Agent 构建工作流时必须确保节点连接格式正确!
ComfyUI 有内置缓存机制:
优化策略:
/history 接口确认缓存命中(execution_cached 消息)一次请求获取完整状态:
# 同时检查队列和历史(避免多次 API 调用)
$queue = Invoke-RestMethod -Uri "http://127.0.0.1:8000/queue"
$history = Invoke-RestMethod -Uri "http://127.0.0.1:8000/history"
生成任务提交后,避免频繁轮询:
生成完成后,优先检查缓存目录:
# 先读取缓存确定输出目录
$env = Get-Content memory/comfyui-env.json | ConvertFrom-Json
$outputFile = Join-Path $env.output_dir $filename
| 错误 | 处理方式 |
|---|---|
| ------ | ---------- |
| ComfyUI 未运行 | 提示用户启动 ComfyUI 桌面版 |
| 模型未找到 | 提示检查模型路径,列出可用模型 |
| 生成失败 | 重试一次,失败则说明具体错误 |
| 显存不足 | 建议降低分辨率或质量 |
| API 格式错误 | 检查节点连接格式,确保使用数组而非字符串 |
| 输出文件找不到 | 检查缓存目录 vs 用户目录,更新环境缓存 |
当您首次使用此技能时,Agent 会:
memory/comfyui-env.json下次使用时,Agent 会直接读取缓存,无需重复检测,为您节省时间。
删除 memory/comfyui-env.json 文件,技能会重新检测并更新缓存。
Q: 为什么输出目录不在用户文档目录?
A: ComfyUI 便携版可能将输出目录放在安装路径下。技能会自动检测正确的位置。
Q: 生成速度很慢怎么办?
A: 如果您使用 CPU 模式,建议减少步数(如 10-15 步)或使用更小的分辨率。GPU 模式会快很多。
Q: 如何使用自定义模型?
A: 将模型文件(.safetensors)放到 ComfyUI 的 models/checkpoints/ 目录下,技能会自动检测并列出可用模型。
| 版本 | 日期 | 更新内容 |
|---|---|---|
| ------ | ------ | ---------- |
| 1.1.0 | 2026-04-20 | 添加环境自适应机制,缓存检测结果,减少重复调用 |
| 1.0.0 | - | 初始版本,5步交互式生图流程 |
共 3 个版本