← 返回
未分类

comfyui-interactive-image-generator

ComfyUI 本地图像生成 - 5步交互式对话生图。 触发词:生成图片、画图、绘制、AI绘画、文生图、图生图、以图生图。 当用户想要创建AI图片时使用,包括:文字生成图片、图片生成图片、ControlNet线稿上色等。 技能通过5步对话引导用户完成:模板选择 → 参数调节 → 提示词收集 → 确认 → 执行。
提示:使用该技能前,需要确保桌面端 comfyui正常运行,并开启8000端口。 详情:ComfyUI 分步交互式图像生成器。 当用户说「生成图片」「画图」「文生图」「生图」「我要画…」等意图创建图像时, 或用户想通过聊天引导的方式一步一步配置图像生成参数时,触发本技能。
user_99514c20
未分类 community v1.0.2 3 版本 100000 Key: 无需
★ 0
Stars
📥 232
下载
💾 37
安装
3
版本
#latest

概述

ComfyUI 交互式图像生成器

核心原则

原则 1:环境自适应(Skill Environment Adaptation)

> 技能运行后,必须学习用户环境并缓存,下次运行直接使用,避免重复检测浪费时间。

所有使用此技能的 Agent 必须遵循

  1. 首次运行 → 检测环境(路径、API、配置等)
  2. 检测结果 → 写入 memory/comfyui-env.json 缓存文件
  3. 后续运行 → 先读取缓存,路径有效则直接使用,无效才重新检测
  4. 技能更新 → 将环境特定的经验写入 SKILL.md 或 MEMORY.md

目标:减少 50%+ 的重复 API 调用和路径检测,提升用户体验。


原则 2:完整交互流程

每次生图必须走完整的5步对话流程,绝不能跳过交互直接生成。

用户说"生成图片" → 立即进入 Step 1,禁止跳过交互步骤直接提交到 ComfyUI。

5步对话流程

Step 0 - 模板选择(必做,动态扫描)

用户说"生成图片"后,必须先动态扫描本地模板,然后显示以下固定格式,不得使用默认回复或硬编码模板列表:

🎨 图片生成助手已就绪!

第一步:选择工作流模板(直接输入编号)

你有 N 个本地模板可用:

编号 模板名称
0 不用模板,从零开始
1 模板A.json
2 模板B.json
...

也可以直接说类型开始:

1️⃣ 文生图 / 2️⃣ 图生图 / 3️⃣ 线稿上色

请输入编号:

模板扫描规则

  • 扫描路径:C:\Users\\Documents\ComfyUI\user\default\workflows\
  • 只扫描根目录下的 .json 文件(不递归进入子目录)
  • 模板数量 ≤10 个时:全部列出
  • 模板数量 >10 个时:列出前 10 个,末尾加一行 ... 还有 X 个模板,不再一一列出,用户说"更多"时才分批显示或让用户指定编号
  • 每个模板名称显示文件全名(如 生图模板1.json),不截断

判断规则

  • 用户输入 0 / 跳过 / 不用 → 不加载模板,进入 Step 1
  • 用户输入 1~N → 加载对应模板,读取 JSON 提取参数预填到 Step 3,向用户展示模板参数并允许逐个修改
  • 用户直接说「文生图」等 → 跳过模板选择,进入 Step 1
  • 即使选了模板,也要逐个询问参数(见 Step 3 模板加载规则)

Step 2 - 收集创意参数(主题/风格)

主题+风格收集

参数说明默认
------------------
🎯 主题生成什么内容?人物/风景/动物/建筑/UI设计...询问
🎨 风格视觉风格?写实/动漫/油画/水彩/赛博朋克/国风/扁平UI...询问

> 请告诉我:主题是什么?想要什么风格?

判断规则

  • 用户只给一个词(如「动漫」「风景」)→ 判断是主题还是风格,缺的那个追问一句即可,不要啰嗦
  • 用户给组合词(如「动漫风景」「UI设计」「赛博朋克城市」)→ 自动拆分为主题+风格,直接进入下一步
  • 组合词包含风格关键词(动漫/写实/油画/水彩/赛博朋克/国风/扁平UI…)→ 第一个为风格,第二个为主题
  • 组合词不包含风格关键词(如「海边日落」)→ 整体为主题,风格追问
  • 单个词是风格关键词 → 主题追问
  • 单个词是主题关键词(风景/人物/动物/建筑/UI设计…)→ 风格追问

图生图额外参数:

> 请上传原图,并告诉我您想要怎么改造它?

等待用户提供主题和风格后,进入 Step 3。


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(随机),每次出图结果不同

> 输入固定数值(如 42888)→ 相同种子+相同提示词 ≈ 相同图片,方便微调复现

> 回复「默认」或「下一步」跳过

采样器:

> ⚙️ 采样算法(⑤/⑤)

> 默认: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)→ 按顺序依次设置,快速跳过后续询问
  • 所有问题回答完后,自动进入 Step 4

主题 → 默认尺寸映射表

主题默认尺寸理由
----------------------
UI设计 / 手机App9:16 (512×768)竖版更接近手机屏幕
横幅 / 海报 / 风景 / 壁纸16:9 (768×512)横版更自然
Logo / 头像 / 图标1:1 (512×512)方形构图
人物 / 动漫角色3:4 (384×512)竖版适合人物
其他1:1 (512×512)通用

高级用法:批量修改语法(Agent 侧解析规则)

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:1512×512头像、Logo、图标
3:4384×512竖版小幅
4:3512×384横版小幅
9:16512×768手机UI、竖版海报
16:9768×512横幅、壁纸、桌面

Step 4 - 提示词收集

第一阶段:收集用户描述

参数确认后,主动询问用户想要的具体画面内容:

> 🖼️ 请描述您想要的画面细节:

> 比如:画面中有什么?什么动作?什么场景?什么氛围?

> 可以用中文自由描述,也可以直接提供英文 prompt

> 回复「默认」我会根据主题和风格自动生成

用户回复后,Agent 需要做:

  1. 保留用户原始描述
  2. 基于主题+风格+用户描述,整理出英文提示词(SD 常用格式)
  3. 自动补充质量词(如 masterpiece, best quality, highres)和负面提示词
  4. 进入第二阶段确认

第二阶段:确认预览

展示完整配置供用户最终确认:

> 📋 请确认您的生成需求:

>

> 配置:

> - 类型:文生图

> - 主题:人物 | 风格:动漫

> - 尺寸: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

>

> ✅ 确认无误请回复「确认」或「开始生成」

> 🔄 如需修改提示词请直接告诉我

> ⬆️ 输入「上一步」返回修改参数

规则:

  • 用户可以修改提示词(如「加上日落背景」「去掉校服」)→ 更新提示词后重新展示
  • 用户可以返回修改参数 → 回到 Step 3 对应参数
  • 只有用户明确确认后才进入 Step 5 执行

Step 5 - 执行生成

用户确认后,执行 ComfyUI 生成:

  1. 检查 ComfyUI 服务状态
  2. 检测可用模型(自动)
  3. 构建工作流 JSON
  4. 提交到 ComfyUI API
  5. 轮询等待完成

回复格式:

> ⚙️ 正在生成中,请稍候...

> 🔄 已提交任务,等待完成...

生成完成后回复:

> ✅ 图片生成完成!

> 📐 尺寸:512×512 | 步数:20 | 模型:SD 1.5

然后发送图片:

> MEDIA: <输出文件路径>


Step 6 - 结果与迭代

图片发送后,询问后续操作:

> 🐱 图片已送达!

> - ✅ 满意的话可以继续生成

> - 🔄 想换风格/参数?告诉我

> - 📐 想换尺寸?比如横版或竖版

> - 🎨 想加特效?比如加LoRA

ComfyUI 执行脚本

当用户确认后,调用 scripts/generate.py 执行生成。

脚本用法

# Windows PowerShell
python scripts/generate.py --prompt "一只可爱的小猫" --style "写实摄影" --size "512x512" --steps 20

模型检测逻辑

脚本自动检测可用模型,优先级:

  1. SD 1.5 checkpoint (*.safetensors in checkpoints/)
  2. SDXL checkpoint
  3. 其他可用模型

若检测失败,回退到 SD 1.5 默认路径:

  • C:\Users\\Documents\ComfyUI\models\checkpoints\

工作流构建

根据检测到的模型类型自动选择:

SD 1.5 工作流字段:

  • CheckpointLoaderSimple → clip, model, vae
  • CLIPTextEncode → positive/negative
  • EmptyLatentImage → latent
  • KSampler → sampling
  • VAEDecode → decode
  • SaveImage → output

输出路径

图片保存到 C:\Users\\Documents\ComfyUI\output\

环境自适应(首次运行检测)

首次使用时,Agent 必须检测并缓存以下环境信息:

0. ComfyUI API 地址(固定)

> ⚠️ 重要:ComfyUI 桌面端默认端口是 8000,不要尝试其他端口!

固定配置

  • API 地址:http://127.0.0.1:8000
  • 端口:8000(不是 8188 或其他)

检查服务状态

# 检查 ComfyUI 是否运行
Invoke-RestMethod -Uri "http://127.0.0.1:8000/system_stats" -TimeoutSec 2
  • 成功 → ComfyUI 已运行,继续生成
  • 失败 → 提示用户启动 ComfyUI 桌面版

禁止行为

  • ❌ 不要尝试 8188、7860 等其他端口
  • ❌ 不要循环尝试多个端口
  • ❌ 不要猜测端口号

1. 检测 ComfyUI 安装路径

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

2. 输出目录缓存

关键发现:ComfyUI 可能有多个输出目录,API 返回的文件名可能在任一目录。

检测流程

  1. 先检查用户目录输出
  2. 再检查安装目录输出
  3. 缓存实际输出路径

3. 环境缓存文件格式

保存到 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_urlcomfyui_port 是固定值,无需检测
  • 只需检测路径相关配置

每次生成前检查缓存

  • 缓存存在且路径有效 → 直接使用,跳过检测
  • 缓存过期或路径无效 → 重新检测并更新缓存

执行优化(避免重复 API 调用)

1. API 请求格式规范

正确格式(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 构建工作流时必须确保节点连接格式正确!

2. 利用执行缓存

ComfyUI 有内置缓存机制:

  • 相同的 checkpoint + 相同的参数 → 自动缓存,跳过重复计算
  • 首次加载 checkpoint 后,后续生成会复用缓存

优化策略

  • 生成前不重复检测已缓存的节点
  • 查看 /history 接口确认缓存命中(execution_cached 消息)

3. 状态检查合并

一次请求获取完整状态

# 同时检查队列和历史(避免多次 API 调用)
$queue = Invoke-RestMethod -Uri "http://127.0.0.1:8000/queue"
$history = Invoke-RestMethod -Uri "http://127.0.0.1:8000/history"

4. 轮询优化

生成任务提交后,避免频繁轮询

  • CPU 模式:每 30 秒检查一次(10 步约需 2-3 分钟)
  • GPU 模式:每 5 秒检查一次

5. 输出文件检查

生成完成后,优先检查缓存目录

# 先读取缓存确定输出目录
$env = Get-Content memory/comfyui-env.json | ConvertFrom-Json
$outputFile = Join-Path $env.output_dir $filename

错误处理

错误处理方式
----------------
ComfyUI 未运行提示用户启动 ComfyUI 桌面版
模型未找到提示检查模型路径,列出可用模型
生成失败重试一次,失败则说明具体错误
显存不足建议降低分辨率或质量
API 格式错误检查节点连接格式,确保使用数组而非字符串
输出文件找不到检查缓存目录 vs 用户目录,更新环境缓存

注意事项

  • 必须交互:禁止跳过 Step 1-3 直接生成
  • 参数完整:每个参数都要确认,不能假设
  • 跨平台兼容:脚本必须在任何 QClaw 环境下运行
  • Windows 编码:Python 脚本避免 emoji 输出,使用纯 ASCII 日志
  • 模型路径:使用用户本地的 ComfyUI 模型目录,不要硬编码固定路径

给其他用户的说明

这个技能会自动学习您的环境

当您首次使用此技能时,Agent 会:

  1. 自动检测 ComfyUI 的安装位置
  2. 自动找到输出目录和模型目录
  3. 将检测结果保存到 memory/comfyui-env.json

下次使用时,Agent 会直接读取缓存,无需重复检测,为您节省时间。

如果您换了电脑或重新安装了 ComfyUI

删除 memory/comfyui-env.json 文件,技能会重新检测并更新缓存。

常见问题

Q: 为什么输出目录不在用户文档目录?

A: ComfyUI 便携版可能将输出目录放在安装路径下。技能会自动检测正确的位置。

Q: 生成速度很慢怎么办?

A: 如果您使用 CPU 模式,建议减少步数(如 10-15 步)或使用更小的分辨率。GPU 模式会快很多。

Q: 如何使用自定义模型?

A: 将模型文件(.safetensors)放到 ComfyUI 的 models/checkpoints/ 目录下,技能会自动检测并列出可用模型。


技能版本历史

版本日期更新内容
----------------------
1.1.02026-04-20添加环境自适应机制,缓存检测结果,减少重复调用
1.0.0-初始版本,5步交互式生图流程

版本历史

共 3 个版本

  • v1.0.2 添加边界条件 当前
    2026-04-21 10:55 安全 安全
  • v1.0.1 Initial release
    2026-04-20 17:24 安全 安全
  • v1.0.0 Initial release
    2026-04-20 15:47 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

design-media

UI/UX Pro Max

xobi667
提供 UI/UX 设计智能与实现指导,帮助打造精美界面。适用于 UI 设计、UX 流程、信息架构、视觉风格、设计系统/标记、组件规格、文案/微文案、无障碍及前端 UI(HTML/CSS/JS、React、Next.js、Vue、Svelte
★ 223 📥 48,355
design-media

Nano Banana Pro

steipete
使用 Nano Banana Pro (Gemini 3 Pro Image) 生成或编辑图像。支持文生图、图生图及 1K/2K/4K 分辨率,适用于图像创建、修改及编辑请求,使用 --input-image 指定输入图像。
★ 431 📥 117,515
office-efficiency

feishu-ownership-transfer

user_99514c20
转移飞书文档/多维表格的所有权给指定用户。触发场景:(1) 使用 feishu_doc 创建文档后自动转移所有权;(2) 用户说"把权限给我"或要求转移文档所有权时;(3) 使用 feishu_bitable_create_app 创建多维
★ 0 📥 92