ComfyUI plugin: enhance plain-language prompts into Qwen Image 2.1 official-PE-style prompts. 4 channels (official PE / local LLaMA / API) + 31 built-in templates.
Python
12
54 commits
updated Oct 18, 2026
基于千问(Qwen)家族系列大模型的 ComfyUI 提示词增强 / 图像反推插件。 把大白话提示词按官方规则增强为高质量出图提示词,或用多模态模型对图片进行反推描述。 三合一后端一键切换:官方PE / 本地LLaMA / API。
中文 | English
把 Viggle 官方
viggle_turbo.py(Qwen-Image-2.1 蒸馏节点的单文件 ComfyUI 实现)vendored 进本插件official_viggle_vendor/,插件加载时自动注册ViggleTurboSigmas与ViggleTurboLora。本机已独立安装官方节点时自动跳过,不重复注册、不互斥。任何电脑git pull本仓库后,含这两节点的 v5/viggle-turbo 工作流即可直接打开运行,无需再单独安装外部插件。
新增内容:
official_viggle_vendor/viggle_turbo.py:官方原版文件(保留原名与内容,MD5 与 HF Viggle/Qwen-Image-2.1-viggle-turbo comfyui/ 目录一致),提供 ViggleTurboSigmas(6 步固定调度,随 latent 分辨率动态 shift)与 ViggleTurboLora(unmerged 运行时侧支路挂载,避免 bf16/int8 下融合损失)。__init__.py 自动注册:插件加载时检测——若本机已存在官方独立 viggle_turbo 模块且含节点 → 跳过(不冲突);否则从 vendor 文件以独立模块名 bsai_vendored_viggle_turbo 加载并合并进 NODE_CLASS_MAPPINGS / NODE_DISPLAY_NAME_MAPPINGS。BSAI_Qwen_Image21_Sampler 的 sigmas 输入直连 ViggleTurboSigmas 的 v5 工作流与 BSAI-Qwen-Image-2.1-viggle-turbo-t2i 工作流均可直接打开。EN: v1.10.0 — Vendored Viggle's official
viggle_turbo.py(the single-file ComfyUI implementation of the Qwen-Image-2.1 distillation nodes) intoofficial_viggle_vendor/. On load the plugin auto-registers ViggleTurboSigmas and ViggleTurboLora; if an official standaloneviggle_turbois already installed it is skipped (no duplicates, no conflict). Aftergit pull, any machine can open the v5 / viggle-turbo-t2i workflows that reference these two nodes without installing an extra plugin. The vendored file is the untouched official original (MD5-identical to the HF repocomfyui/copy).
全网检索 2026-09-23 ~ 09-29 发布的三大 2.1 蒸馏 LoRA 生态(Viggle Turbo v0.3 / Pruna 5·8步 / 阿里PAI Fun-Acc 4步),把插件加速档与指南从「Lightning 尚未发布」时代升级到「蒸馏加速已就绪」时代。
新增内容:
speed_preset 新增 5 个蒸馏 LoRA 加速档:Viggle Turbo 6步/CFG1 (官方节点,推荐)、Viggle Turbo 9步/CFG1 (仅diffusers)、Pruna 8步/CFG1 (质量优先,推荐)、Pruna 5步/CFG1 (极速)、官方Fun-Acc 4步/CFG1 (PAI,实验)——每档内置接线提示(对应 LoRA 仓库、固定 sigma 列表、Viggle Turbo Sigmas / ManualSigmas / PDD 用法),节点 UI 与纯预览模式对蒸馏档自动追加 ⚠ 蒸馏LoRA档 提示,防止误接到普通 KSampler 出噪图。ACCELERATION_GUIDE.md 重写为 v1.08.0:新增「2.1 专用蒸馏 LoRA 详情」(精确 sigma、HF 仓库、ComfyUI 接线、质量/VRAM 实测)、「质量提升方案」(官方 cfg/steps 行为、Qwen-Image 2.1 Fix LoRA 20步工作流参数、社区细节增强 LoRA、官方 PE 双模型、Alpha/2K、编辑技巧)、「暂不可用」清单(lightx2v 2.1 仍未发布 / TeaCache 冻结 / Fun-Acc 仅实验 / Nunchaku INT4 暂无)、硬件实测数据表(Pruna H100、Viggle demo Space、消费级估算)。EN: v1.08.0 — Globally researched the Qwen-Image-2.1 acceleration ecosystem released 2026-09-23~29 (Viggle Turbo v0.3 / Pruna 5·8-step / Alibaba PAI Fun-Acc 4-step) and upgraded the plugin from the "Lightning not yet released" era to the "distillation acceleration ready" era. New: 5 distilled-LoRA
speed_presetoptions (Viggle 6/9-step, Pruna 5/8-step, PAI Fun-Acc 4-step) with built-in wiring hints (fixed sigmas, HF repos, node requirements) and automatic ⚠ warnings in UI/preview text; fully rewritten ACCELERATION_GUIDE.md v1.08.0 (distilled-LoRA details with exact sigmas, quality-playbook incl. Qwen-Image 2.1 Fix LoRA 20-step workflow, hardware benchmarks); all legacy preset keys preserved — no breaking changes.
全球全网搜索精选 16 个节日贺卡平面设计模板(type=card,新增第 13 大类「节日祝福贺卡」):新年极简大字报 / 春节国潮剪纸 / 情人节水彩爱心 / 妇女节扁平花束 / 母亲节复古花艺 / 父亲节复古沉稳 / 儿童节3D卡通 / 端午新中式 / 七夕中式浪漫 / 教师节手绘插画 / 中秋水墨月圆 / 国庆红色喜庆 / 万圣节怪趣复古 / 感恩节暖调乡村 / 圣诞3D立体纸雕 / 生日派对气球。每个模板均为完整贺卡设计提示词(版式结构+风格锚点+文字规则),可直接用于 Qwen-Image 文生图生成贺卡。16 张缩略图全部带百声AI圆形logo,海报墙数量说明同步更新为 150 模板 / 13 分类。
新增内容:
templates/templates.json + web/templates.json 双份同步(134 → 150),覆盖全年主流节日(元旦/春节/情人节/妇女节/母亲节/父亲节/儿童节/端午/七夕/教师节/中秋/国庆/万圣节/感恩节/圣诞/生日),每个模板含节日专属版式结构、配色/技法/元素/字体风格锚点与祝福语文字规则。web/thumbnails/card_*.png(448×448),贺卡主题配色渐变+节日元素+中英标题+右下角百声AI圆形logo。templates_wall.html 新增「节日贺卡」统计(stat-card),分类说明 12 → 13 大类,WALL_VER 升级 20260925-v107(新缩略图强制刷新缓存),数量说明同步修改。EN: v1.07.0 — 16 globally-curated Festival Greeting Card templates (type=card, new 13th category): Minimal New Year / Guochao Spring Festival paper-cut / Watercolor Valentine / Flat Floral Women's Day / Vintage Mother's Day / Retro Father's Day / 3D Children's Day / Neo-Chinese Dragon Boat / Romantic Qixi / Hand-drawn Teachers' Day / Ink Mid-Autumn / Red National Day / Playful Halloween / Warm Thanksgiving / 3D Paper-cut Christmas / Birthday Party. Each is a complete greeting-card design prompt (layout + style anchors + text rules) ready for Qwen-Image T2I. All 16 thumbnails carry the BSAI round logo; wall stats synced to 150 templates / 13 categories;
WALL_VER=20260925-v107. Front-end dropdown / wall / all three backends auto-compatible, no restart needed.
合并节点(BSAI_Qwen_Prompt_Enhancer)底部新增两个按钮,一键把自定义提示词 / 模板 JSON 直接写入「用户模板区 user_templates/」——保存后立即出现在 system_template 下拉与海报墙「用户模板」分类,无需重启、无需手动放文件。
新增内容:
user_templates/{名称}.json,保存后下拉自动选中新模板。.json 模板文件(支持单模板对象 / {"templates":[...]} 多条目自动拆分)→ 校验后直接写入 user_templates/ → 下拉自动刷新。POST /bsai_save_user_template(JSON 保存)、POST /bsai_upload_user_template(multipart 文件上传);load_user_templates() 每次实时扫描目录,保存/上传后即时生效,海报墙与下拉同步可见。其他电脑更新:
cd ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer && git pull
# 重启 ComfyUI,合并节点底部即出现「💾 保存为模板」与「⬆ 上传模板」两个按钮
v1.06.0 补丁1 — 海报墙缩略图缓存问题根治(Thumbnail cache root-fix):
模板缩略图已换成真实风格示例图,但旧浏览器缓存会一直显示旧图(截图里卡片仍是"文字风格卡")。本补丁给缩略图/logo URL 加了版本参数(
?v=WALL_VER,URL 变化即强制重新下载),并为海报墙直达路由、模板 API 响应加Cache-Control: no-store,每次打开海报墙都是最新版本。其他电脑git pull后重启 ComfyUI、重新打开海报墙即可,无需手动清缓存;以后每次换图只需把templates_wall.html里的WALL_VER改成新值。
v1.06.0 补丁2 — 旧工作流报「无效输入 / 输入值类型错误」(threads / timeout)一键自愈(Numeric self-heal):
旧工作流存档里
threads、timeout等数值参数若存成字符串/错误类型,选中模板预览时会红框报"无效输入"。本补丁在前端新增autoFixNumericValues:加载工作流时自动把所有 INT/FLOAT 数值参数重置为正确的 number 并同步存档(后端另有int()强转双保险)。其他电脑git pull后重启 ComfyUI 即可,旧工作流打开即自动修复,无需手动改参数。
v1.06.0 补丁3 — 海报墙「🔄 刷新」按钮 + 模板 API 500 修复(Refresh button + template API 500 fix):
海报墙分类栏新增绿色「🔄 刷新」按钮:一键重新拉取模板库(后端实时合并用户模板区),新保存/上传的模板无需关闭重开海报墙,点击刷新立即出现;刷新期间按钮置灰,完成弹出成功/失败提示。 同时修复一个被长期掩盖的隐藏 BUG:模板 API
GET /api/bsai/templates的 handler 缺少request参数(aiohttp 必传)导致该接口一直返回 HTTP 500——海报墙此前靠静态文件回退才正常显示。现已修复,刷新按钮可正常获取含用户模板区的完整模板库。 注意:升级后必须重启 ComfyUI 让新后端代码生效;若升级后首次点刷新仍提示 500,说明 ComfyUI 尚未重启(旧代码仍在内存)。
v1.06.0 补丁4 — 模板缩略图自动同步(Auto thumbnail sync for saved/uploaded templates):
保存为模板时,自动把最近一张生成图作为模板缩略图下载到海报墙(
web/thumbnails/{id}.png);上传模板时自动同步 JSON 自带的缩略图(支持 base64 / http(s) URL / 本地路径,也可在 multipart 里带thumbnail文件字段);上传模板无缩略图时,后端自动用 PIL 程序合成 448×448 占位卡(绿色分类条 + 模板名 + 描述 + 百声AI 底标),老用户模板首次打开海报墙时也会惰性补齐。其他电脑git pull后重启 ComfyUI 即可,保存/上传模板后缩略图自动出现在海报墙,无需手动放图。 When you click Save as Template, the latest generated image is automatically downloaded as the template thumbnail onto the wall (web/thumbnails/{id}.png). When you upload a template, any thumbnail embedded in its JSON (base64 / http(s) URL / local path, or a multipartthumbnailfile field) is synced automatically; if there is no thumbnail, the backend programmatically renders a 448×448 placeholder card (green category bar + template name + description + "百声AI · BSAI" footer). Legacy user templates are lazily backfilled the first time the wall is opened. On other machines:git pull, restart ComfyUI, done — no manual steps. 新增后端接口GET /bsai_latest_output(返回 output 目录最近一张生成图,供前端保存模板时自动取用);前端「💾 保存为模板」按钮保存前自动请求该接口并把图片 URL 随保存请求一起提交。 New backend endpointGET /bsai_latest_output(returns the newest image in the output folder for the Save button to pick up); the front-end Save button now fetches it and submits the image URL along with the save request.
新增的 16 个排版设计 + 16 个艺术风格模板,缩略图已从程序合成的"文字风格卡"全部替换为 AI 生成的真实风格示例图 —— 与老模板(102 张)一致,每张缩略图都是一幅该风格的典型代表作品(瑞士国际主义海报、包豪斯几何构成、印象派睡莲、梵高星月夜、波普玛丽莲、蒸汽波雕塑、酸性设计金属星体……),海报墙观感统一、一眼识别风格。
升级内容:
其他电脑更新:
cd ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer && git pull
# 然后 Ctrl+F5 强刷海报墙即可看到新缩略图
其他电脑点击「🖼 打开模板海报墙」报
ERR_INVALID_RESPONSE(网页似乎有问题 / 已永久移动)? 这是/extensions/前端静态路由在部分 ComfyUI 版本或系统代理环境下返回无效响应导致的。v1.04.0 已彻底修复:
修复内容:
GET /bsai_templates_wall,由插件直接返回海报墙 HTML,完全绕开 /extensions/ 静态路由——任何 ComfyUI 版本、任何网络环境都能打开。fix_wall.bat:双击即完成——探测 ComfyUI 端口 → 测试直达路由 → 若系统代理拦截了 127.0.0.1/localhost 自动加入例外(原值备份为 fix_wall_proxy_backup.reg)→ 自动打开海报墙。http://127.0.0.1:8188/bsai_templates_wall一键解决步骤(其他电脑):
# 方式一(推荐):更新插件后重启 ComfyUI,按钮直接可用
cd ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer && git pull
# 方式二:双击插件目录里的 fix_wall.bat,自动诊断、自愈并打开海报墙
fix_wall.bat
内置模板库从 102 个扩到 134 个(11 大分类),并新增「用户模板区」——把你自己的自定义模板 JSON 放进
user_templates/目录,自动汇聚成共享模板,所有工作流与海报墙即时可用。
新增内容:
typography):全球经典与前沿排版风格——
瑞士国际主义 / 包豪斯 / 苏联构成主义 / 新丑风 / 孟菲斯 / 复古雕花 / 极简大字 / 杂志编辑设计 / 报纸版面 / 日式和风排版 / 中国书法海报 / 故障艺术字 / 霓虹灯字 / 立体3D字 / 像素字 / 手写涂鸦字。user):插件根目录新增 user_templates/。支持三种 JSON 格式(单个模板 / 模板+外部文件 / 模板列表),支持 {{KEY}} 变量占位,id 冲突自动加 user_ 前缀。其他电脑 git pull 后同样获得全部共享模板。GET /api/bsai/templates:海报墙优先走该接口(内置+用户实时合并,含全文),静态文件作为回退——新增模板无需改静态文件。用户模板区怎么用: 打开 custom_nodes/BSAI_Qwen_Prompt_Enhancer/user_templates/README.md(含格式说明),把模板 JSON 丢进该目录 → 完全重启 ComfyUI → 模板下拉与海报墙「用户模板」分类即可看到。示例见同目录 示例模板.json。
新增 2 个节点:BSAI_Jev_Schema(Schema 构建器)+ BSAI_Jev_Decision(Jev 并行决策)。
Jev(llama.cpp 新技术的 ComfyUI 落地)不再让模型逐 token 手写 JSON,而是为每个字段构造 字段名: 前缀、只读取候选选项 token 的 logits,一次前向同时得到全部字段的值与置信度——类型安全、不可能产生 Schema 外的输出,毫秒级完成结构化决策。
BSAI_Jev_Schema 里每行写一个字段(字段名: 选项1|选项2|选项3)→ 接入 BSAI_Jev_Decision,选本地 GGUF 模型(与主节点"本地LLaMA"后端同一套加载通道)→ 填 context → 输出 result_json / confidence_json / text。llm_model_name / mmproj_name / chat_handler / n_ctx / n_gpu_layers / load_mtp 与主节点完全一致(含 MTP 自动剥离、handler 自动识别、模型缓存)。force_offload 可一键卸载全部缓存的本地模型。其他电脑打开示例工作流报红框
node type not found / undefined(如SetNode、GetNode、Image Comparer (rgthree)、QwenImage21_T2IPromptRewrite、DLSS5Settings、DLSS5EnhanceImages)? 这些都不是 BSAI 插件缺失,而是示例工作流依赖了 5 个第三方节点插件。v1.02.0 已把潜空间放大示例收进插件,并提供一键安装脚本,双击即可装齐全部依赖:v1.02.0 bundles the latent-upscale example workflow and ships a one-click dependency installer. If another PC reports missing/undefined nodes (SetNode / GetNode / Image Comparer (rgthree) / QwenImage21_T2IPromptRewrite / DLSS5Settings / DLSS5EnhanceImages), just double-click the installer:
# 在插件目录下双击(或运行): ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer/install_example_deps.bat该脚本自动
git clone5 个依赖插件(已存在的跳过),装完完全重启 ComfyUI 即全部亮灯: The script auto-clones the 5 dependency plugins (skips existing ones); after a full ComfyUI restart every node lights up:
工作流里的节点 提供插件 SetNode/GetNode(无线隧道)ComfyUI-KJNodes(前端虚拟连接) Image Comparer (rgthree)rgthree-comfy QwenImage21_T2IPromptRewriteComfyUI-Qwen-Image-2.1-Prompt-Enhancer(需下载官方 PE-T2I 模型放 models/text_encoders/)DLSS5Settings/DLSS5EnhanceImages(潜空间放大)ComfyUI-DLSS5-Enhancer(NVIDIA DLSS5 神经渲染;需按需运行 install_runtime.py下载运行时)⚠️ install_runtime.py内置 URL 已过时(404),请用install_example_deps.bat提示的--url命令(tag 为v3.0);国内网络不通时在 URL 前加镜像前缀https://gh-proxy.com/或https://ghfast.top/。easy cleanGpuUsed/easy clearCacheAllComfyUI-Easy-Use PathchSageAttentionKJ/GetImageSizeAndCountComfyUI-KJNodes 其它常见节点(
ResolutionSelector、ComfyMathExpression、SaveImageAdvanced、QwenImage21Cache、TextEncodeQwenImage21)均为 ComfyUI 官方内置,无需安装。 The rest (ResolutionSelector / ComfyMathExpression / SaveImageAdvanced / QwenImage21Cache / TextEncodeQwenImage21) are built into ComfyUI — no install needed.另外 v1.02.0 内置
MarkdownNote兼容节点:新版 rgthree 已移除该注释节点,BSAI 插件自带同名节点,示例工作流开箱即用。 v1.02.0 also bundles aMarkdownNote-compatible node (removed from new rgthree builds), so BSAI example workflows load cleanly on any machine.
新版 ComfyUI 上报
Custom validation failed for node: backend - None(每个输入都报)? 新版以VALIDATE_INPUTS(**全部输入)方式调用并要求返回True(返回 None/False 都判失败);旧版则以VALIDATE_INPUTS(input_name, input_value)两位置参调用、返回 None 表示通过。 v1.01.2 已按调用形态自动判别返回值(kwargs 形态返回 True、两位置参返回 None),新旧版 ComfyUI 全部通过校验,开图即用。请更新到 v1.01.2。Newer ComfyUI shows
Custom validation failed for node: backend - None(for every input)? New builds callVALIDATE_INPUTS(**all_inputs)and requireTrue(None/False both count as failure); legacy builds callVALIDATE_INPUTS(input_name, input_value)and treat None as pass. v1.01.2 detects the calling convention and returns the right value (True for kwargs form, None for two-positional form), so both old and new ComfyUI pass validation cleanly on load. Update to v1.01.2.
v1.01 在部分 ComfyUI 版本上会报新错:
Exception when validating inner node: BSAI_Qwen_Prompt_Enhancer.VALIDATE_INPUTS() missing 2 required positional arguments: 'input_name' and 'input_value'。 原因:这些版本以无参方式调用VALIDATE_INPUTS(),v1.01 固定签名(input_name, input_value)因而抛错。 v1.01.1 已改为可变参数签名VALIDATE_INPUTS(*args, **kwargs),兼容无参 / 两参 / 带 kwargs 的所有调用方式,任何 ComfyUI 版本都开图即用、不再红框。 请把插件更新到 v1.01.1(git pull或重新下载)。v1.01 could fail on some ComfyUI builds with:
Exception when validating inner node: ...VALIDATE_INPUTS() missing 2 required positional arguments: 'input_name' and 'input_value'— those builds callVALIDATE_INPUTS()with no arguments. v1.01.1 switches to a variadic signatureVALIDATE_INPUTS(*args, **kwargs)that accepts any calling convention (no args / two args / kwargs), so every ComfyUI version loads cleanly with no red frame. Update the plugin to v1.01.1 (git pullor re-download).
遇到
Value not in list: hf_model_name: 'Florence-2-base [...]' not in ['<未发现 HF 模型>']、节点红框「无效输入」、控制台刷Output will be ignored? 这是旧工作流存档的下拉值在本机不存在(例如另一台电脑选了 Florence-2,本机models/LLM下没这个模型)。 升级到 v1.01 后自动解决,无需任何手动操作:后端VALIDATE_INPUTS放行 combo 校验(不再红框/阻塞整图)+ 前端加载时自动把非法下拉值重置为列表首项。手动根治方法见文末「常见问题 / Troubleshooting」。See
Value not in list: hf_model_name: ... not in ['<未发现 HF 模型>'], a red "Invalid input" frame, orOutput will be ignoredspam? The workflow saved a dropdown value that does not exist on this machine (e.g. Florence-2 was selected on another PC but is not in this PC'smodels/LLM). v1.01 fixes this automatically — zero manual steps: backendVALIDATE_INPUTSpass-through (no red frame / no blocked graph) + frontend auto-reset of invalid combo values on load. Manual root-cause fix in "Troubleshooting" at the end of this README.
核心:彻底解决"本地 LLaMA 首次调用 Invalid chat handler: None"报错;清除模板后不再残留;预览选模板时 ENHANCED_PROMPT 正确走模板输出。 Fixes: "Invalid chat handler: None" on first local-LLaMA call; no stale output after clearing the template; ENHANCED_PROMPT now correctly follows the selected template in preview mode.
keep_loaded 默认关闭 + 用后清理:修复 llama-cpp 在 keep_loaded=false 路径下加载后立即 _clear_cache() 提前 close LLM,导致 chat handler 被置空(Invalid chat handler: None)的问题。现在模型用完才清理,handler 始终有效 / keep_loaded now defaults off with post-use cleanup — the LLM is closed only after the call finishes, so the chat handler stays valid (fixes Invalid chat handler: None)_enhance_local 的缓存清理不再干扰本轮调用,多后端(官方PE / 本地LLaMA / 本地HF / API)首次调用均稳定 / Cleanup timing fixed so it never interrupts the current call; all backends (Official PE / Local LLaMA / Local HF / API) are stable on first call本插件的 本地 LLaMA 后端 支持千问家族全系列多模态模型的本地推理与图像反推:
| 模型系列 | Chat Handler | 说明 |
|---|---|---|
| Qwen 3.8-VL | Qwen35ChatHandler | 最新旗舰多模态,27B / 7B 等规格 |
| Qwen 3.6-VL | Qwen35ChatHandler | 高效多模态,支持 MTP 加速 |
| Qwen 3.5-VL | Qwen35ChatHandler | 9B / 72B 等,官方 PE 底层 |
| Qwen 3-VL | Qwen3VLChatHandler | 第三代多模态 |
| Qwen 2.5-VL / Qwen 2-VL | Qwen25VLChatHandler | 经典多模态系列 |
同时兼容其他主流多模态模型:
Gemma4ChatHandler💡 自动识别:
chat_handler选auto时,节点按模型名自动匹配对应 handler,开箱即用。
| 后端 | 特点 | 适用场景 |
|---|---|---|
| 官方 PE | 本地加载 Qwen Image 2.1 PE 权重,按官方 8 步规则增强 | 追求官方效果、有显卡跑 PE |
| 本地 LLaMA | 本地 GGUF + mmproj,支持千问全系列多模态模型 | 离线使用、图像反推、自定义模型 |
| API | OpenAI 兼容接口(如阿里云百炼) | 在线服务、无需本地显存 |
Qwen Image 2.1 官方增强提示词模板 节点内置 134 个增强模板:
设计/电影/角色类模板内置 {{TITLE}} {{SUBTITLE}} {{BRAND}} {{MAIN_SUBJECT}} {{COLOR}} {{STYLE}} 等占位符。
在节点的 variables 输入框按 KEY: value 逐行填写,节点自动替换并输出完整 SYSTEM_PROMPT:
TITLE: 夏日新品发布会
SUBTITLE: 2026 秋季系列
BRAND: BSAI
MAIN_SUBJECT: 一个穿红裙的女孩站在樱花树下
COLOR: 深蓝+橙金
STYLE: 商业摄影
:USED_VARS 报告实际替换了哪些 key、哪些未填system_templateimage_1 输入💡 想修改模板内容(覆盖 / 追加要求 / 改库文件 / 新增模板)?详见 TEMPLATE_GUIDE.md。
模板节点自带 可视化海报墙,点击节点上的「🖼 打开模板海报墙」按钮即可弹出:
| 功能 | 说明 |
|---|---|
| 大图预览 | 134 个模板全部配有缩略图(新模板为百声AI圆形logo统一风格),一眼看清版式布局 |
| 分类筛选 | 10 大分类一键切换:全部 / 官方规则 / 官方文档 / 社区实践 / 设计版式 / 电影资产 / 角色卡 / 电影海报 / 艺术风格 / 人物姿势 / 灵感精选 |
| 点击即用 | 点击任意卡片自动回填到节点,无需手动选择下拉 |
| 中英双语 | 右上角 🌐 切换使用说明语言 |
| 变量提示 | 每张卡片显示该模板支持的所有变量名 |
海报墙路径:web/templates_wall.html
将本插件放入 ComfyUI/custom_nodes/ 目录:
ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer/
依赖:
llama-cpp-python(推荐 0.3.36+,以支持 Qwen 3.5/3.6/3.8 全系列)
pip install llama-cpp-python
重启 ComfyUI
将 PE 权重放入 ComfyUI/models/text_encoders/:
qwen3.5_9b_qwen_image_2.1_pe_t2i.int8_convrot.safetensors(文生图)qwen3.5_9b_qwen_image_2.1_pe_i2i.int8_convrot.safetensors(图生图)用 CLIPLoader 加载 PE 权重,接到节点的 clip 输入
backend 选 官方PE,填写提示词 → 运行
将 GGUF 模型和 mmproj 投影器放入 ComfyUI/models/LLM/(相对路径):
ComfyUI/models/LLM/
├── Qwen3.8-27B-Instruct-Q6_K_L.gguf
└── Qwen3.8/
└── Qwen3.8-27B-f16_mmproj.gguf
添加 BSAI Qwen Prompt Enhancer 节点:
backend 选 本地LLaMA (GGUF + mmproj)llm_model_name 下拉选择主模型 GGUFmmproj_name 选择对应的 mmproj(多模态反推必填)chat_handler 选 auto(自动匹配千问系列专用 handler)image_1 ~ image_16 进行图像反推(最多 16 张图)运行即可得到增强后的提示词或图片反推描述
💡 MTP 层自动处理:含 MTP/NextN 预测层的模型(如 Qwen 3.6/3.8 CRACK 版)会自动检测并生成去 MTP 版本(
-noMTP.gguf),兼容各版本 llama-cpp-python。
backend 选 APIapi_base、api_key、api_model_name用于工单路由、邮件分类、评论打标、内容审核等结构化决策场景——不是生成文字,而是从你定义的合法选项中选值,并给出置信度。
添加 BSAI_Jev_Schema 节点,每行定义一个字段:
department: tech|billing|shipping
priority: low|medium|high
sentiment: positive|negative|neutral
instruction(可选)填字段判断规则,如 You are a support ticket router. Classify each field strictly based on the context.
添加 BSAI_Jev_Decision 节点并连接 jev_schema:
context:待决策的文本(客户信息 / 邮件 / 工单内容)batch_mode:勾选后每行一条记录,逐条完成全部字段决策llm_model_name / mmproj_name / chat_handler / n_ctx / n_gpu_layers / load_mtp:与"本地LLaMA"后端完全一致(MTP 自动剥离 / handler 自动识别 / 模型缓存)输出:
result_json:{"department": "billing", ...}(可直接接下游)confidence_json:每个字段的值 + 置信度 + 全选项得分text:人类可读摘要💡 与逐 token 生成的区别:Jev 一次前向同时得到全部字段(同记录内并行),模型只能从选项里选,不可能产生 Schema 外的输出;配合 KV 前缀缓存,毫秒级返回。字段间互依赖的规则型任务(需要回看已写内容)不适合 Jev。
BSAI_Qwen_Prompt_Enhancer/
├── __init__.py # 节点注册
├── common.py # 公共工具:规则加载/消息构造/输出解析/图片转换
├── nodes_enhancer.py # 三合一增强节点(官方PE / 本地LLaMA / API)
├── nodes_jev.py # Jev 结构化并行决策节点(Schema + Decision)
├── jev_mode.py # Jev 引擎(与 ComfyUI-llama-cpp_vlm 同步的独立副本)
├── nodes_template.py # 模板库节点
├── system_prompts/ # 官方 PE-T2I/I2I system_prompt 原文
├── templates/ # 模板库(cinema / design / 官方公式)
├── web/ # 前端 JS + 缩略图
├── examples/ # 示例工作流
└── README.md
增强节点统一输出 10 路:
| 输出 | 说明 |
|---|---|
ENHANCED_PROMPT | 增强后的提示词(可直接接 KSampler positive) |
WH_RATIO | 输出的宽高比(文生图模式时) |
RATIO_FOLLOW | 是否按参考图比例输出 |
RAW_OUTPUT | 模型原始输出 JSON |
THINKING | 模型思考过程(thinking 模式时返回) |
RECOMMENDED_STEPS | 推荐的采样步数(随 speed_preset 档位联动) |
RECOMMENDED_CFG | 推荐的 CFG 值(Qwen Image 2.1 为 1.0) |
RECOMMENDED_SAMPLER | 推荐的采样器(euler) |
RECOMMENDED_SCHEDULER | 推荐的调度器(simple) |
MERGED_TEXT | 模板原文 + 用户要求拼接文本(可直接接下游文本节点) |
KSampler 上右键
steps/cfg→ Convert to input,接上RECOMMENDED_STEPS/RECOMMENDED_CFG,切换 speed_preset 档位即自动联动采样参数。
preview_only(仅预览)开启时,所有后端都不会调用模型,节点直接输出文本预览,不做任何增强:
ENHANCED_PROMPT = 你的原始 prompt_text(原文直出,不增强)MERGED_TEXT = 模板 + 用户要求拼接(无模板时为空)适用场景:模板海报墙选卡时的快速预览、查看模板拼接效果。 正式出图必须关闭「仅预览」,否则官方PE / 本地LLaMA 不会真正增强,出图用的是你的原文。
提示:用模板海报墙选模板会自动勾选「仅预览」用于秒出预览,选完记得关闭再出图。
models/LLM/、models/text_encoders/),插件移动到任何位置都能正常工作keep_loaded 保持模型驻留显存,批量处理时不用反复加载Qwen Image 2.1(7B DiT)为 CFG-distilled 架构,官方 day-0 推荐参数为 25步 / cfg=1.0 / euler / simple。 不要再用旧版 20B 的 cfg=3~4,否则会过饱和、过曝、构图僵硬,且每步要多跑一次模型前向。
选档后 RECOMMENDED_STEPS / RECOMMENDED_CFG 直接输出对应参数,KSampler 接线即可联动:
| 档位 | steps | 用途 |
|---|---|---|
| 官方标准 25步/CFG1(默认) | 25 | 日常出图(官方推荐,画质最优) |
| 快速 15步/CFG1 | 15 | 迭代预览,更快 |
| 极速 10步/CFG1 | 10 | 快速草稿(画质略降) |
| 高质量 35步/CFG1 | 35 | 精细出图 |
| 缓存加速 20步/CFG1 | 20 | 配合 EasyCache / Cache 节点 |
| Lightning 8/4步/CFG1 | 8/4 | 待 2.1 专用 Lightning LoRA 发布后使用 |
| 旧版兼容档 ×4 | 修正值 | 保留旧 key,防旧工作流失效 |
qwen_image_2.1_int8_convrot.safetensors(显存减半、更快)--fast --use-sage-attention(fused kernels + SageAttention 注意力加速,采样阶段快 20-40%)UNETLoader → QwenImage21Cache → TE-Speed → KSampler,提速 30-40%QwenImage21Cache,编辑工作流加速明显TorchCompileModel 节点,10-30%(首次编译有冷启动)RTX 4090 / 1024×1024 / int8 / 25步 ≈ 7.5 秒/张;叠加 SageAttention + EasyCache 后约 4-5 秒。
Qwen-Image-Lightning-8steps-V2.0,架构不同,权重形状不匹配)详细加速方案与硬件实测见 ACCELERATION_GUIDE.md,技术调研见 RESEARCH_REPORT.md。模板机制与修改方法见 TEMPLATE_GUIDE.md。
Value not in list: hf_model_name: 'Florence-2-base [...]' not in ['<未发现 HF 模型>'],节点弹红框「无效输入」,控制台刷 Output will be ignored?原因:工作流是在另一台电脑保存的,hf_model_name(本地 HF 后端)选了 Florence-2-base [Florence2ForConditionalGeneration];当前电脑的 ComfyUI/models/LLM 下没有该模型(未下载 / 目录不同),下拉列表只剩 <未发现 HF 模型>,ComfyUI 校验失败 → 红框 + 整图被忽略。
✅ 一键解决(v1.01.1+,无需任何手动操作):升级到 v1.01.1,插件内置两层自愈:
VALIDATE_INPUTS 跳过 combo 的 value-in-list 校验 → 开图不再红框、不再阻塞整图;升级后打开工作流即恢复正常,在 hf_model_name 下拉里重新选择本机实际存在的模型即可。
手动解决(根治):把 Florence-2 模型放入 ComfyUI/models/LLM/(目录结构:models/LLM/<模型目录>/model.safetensors + config.json 等 Transformers 目录格式)。下载参考:
pip install -U huggingface_hub
hf download microsoft/Florence-2-base --local-dir ComfyUI/models/LLM/Florence-2-base
Value not in list?同一原因(旧存档值不在当前选项列表,如模板库版本变化后的 system_template、模型目录变化后的 llm_model_name)。v1.01.1 对全部下拉统一做了自愈,重启 ComfyUI 后打开工作流即自动重置,无需手动改节点。
Value not in list / Output will be ignored。后端 VALIDATE_INPUTS 放行 + 前端加载时自动重置非法下拉值,开图即用 / Fixes red-frame validation errors when opening workflows saved on another PC (stored combo values missing on this machine, e.g. Florence-2 not downloaded): backend VALIDATE_INPUTS pass-through + frontend auto-reset of invalid combo values on load.症状:其他电脑打开工作流仍报
Custom validation failed for node: X - None或Value not in list。 99% 是因为插件没更新到 v1.02.0(或更新后没重启)。 请按下面两步确认:
第 1 步 — 更新插件到 v1.02.0(在插件目录 ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer 执行):
git pull origin main
# 或重新下载最新仓库 zip 覆盖(ComfyUI Manager 用户:点 UPDATE ALL 后选本插件)
第 2 步 — 完全重启 ComfyUI(不是刷新浏览器页面):关掉 ComfyUI 进程,重新启动。
自查是否已生效:重启后看 ComfyUI 控制台第一屏,应有横幅:
[BSAI_Qwen_Prompt_Enhancer] 插件已加载 | 版本 v1.02.0 (2026-09-24) | ...
v1.02.0 → 已更新,重新打开工作流即正常。git pull 是否成功、ComfyUI 是否完全重启、或从 G 盘/旧 zip 拷的是不是旧文件。命令行确认版本:
git -C ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer log --oneline -1
# 应显示本次 v1.02.0 提交或更新的提交
ComfyUI plugin: enhance plain-language prompts into Qwen Image 2.1 official-PE-style prompts. 4 channels (official PE / local LLaMA / API) + 31 built-in templates.
Python
12
54 commits
updated Oct 18, 2026
基于千问(Qwen)家族系列大模型的 ComfyUI 提示词增强 / 图像反推插件。 把大白话提示词按官方规则增强为高质量出图提示词,或用多模态模型对图片进行反推描述。 三合一后端一键切换:官方PE / 本地LLaMA / API。
中文 | English
把 Viggle 官方
viggle_turbo.py(Qwen-Image-2.1 蒸馏节点的单文件 ComfyUI 实现)vendored 进本插件official_viggle_vendor/,插件加载时自动注册ViggleTurboSigmas与ViggleTurboLora。本机已独立安装官方节点时自动跳过,不重复注册、不互斥。任何电脑git pull本仓库后,含这两节点的 v5/viggle-turbo 工作流即可直接打开运行,无需再单独安装外部插件。
新增内容:
official_viggle_vendor/viggle_turbo.py:官方原版文件(保留原名与内容,MD5 与 HF Viggle/Qwen-Image-2.1-viggle-turbo comfyui/ 目录一致),提供 ViggleTurboSigmas(6 步固定调度,随 latent 分辨率动态 shift)与 ViggleTurboLora(unmerged 运行时侧支路挂载,避免 bf16/int8 下融合损失)。__init__.py 自动注册:插件加载时检测——若本机已存在官方独立 viggle_turbo 模块且含节点 → 跳过(不冲突);否则从 vendor 文件以独立模块名 bsai_vendored_viggle_turbo 加载并合并进 NODE_CLASS_MAPPINGS / NODE_DISPLAY_NAME_MAPPINGS。BSAI_Qwen_Image21_Sampler 的 sigmas 输入直连 ViggleTurboSigmas 的 v5 工作流与 BSAI-Qwen-Image-2.1-viggle-turbo-t2i 工作流均可直接打开。EN: v1.10.0 — Vendored Viggle's official
viggle_turbo.py(the single-file ComfyUI implementation of the Qwen-Image-2.1 distillation nodes) intoofficial_viggle_vendor/. On load the plugin auto-registers ViggleTurboSigmas and ViggleTurboLora; if an official standaloneviggle_turbois already installed it is skipped (no duplicates, no conflict). Aftergit pull, any machine can open the v5 / viggle-turbo-t2i workflows that reference these two nodes without installing an extra plugin. The vendored file is the untouched official original (MD5-identical to the HF repocomfyui/copy).
全网检索 2026-09-23 ~ 09-29 发布的三大 2.1 蒸馏 LoRA 生态(Viggle Turbo v0.3 / Pruna 5·8步 / 阿里PAI Fun-Acc 4步),把插件加速档与指南从「Lightning 尚未发布」时代升级到「蒸馏加速已就绪」时代。
新增内容:
speed_preset 新增 5 个蒸馏 LoRA 加速档:Viggle Turbo 6步/CFG1 (官方节点,推荐)、Viggle Turbo 9步/CFG1 (仅diffusers)、Pruna 8步/CFG1 (质量优先,推荐)、Pruna 5步/CFG1 (极速)、官方Fun-Acc 4步/CFG1 (PAI,实验)——每档内置接线提示(对应 LoRA 仓库、固定 sigma 列表、Viggle Turbo Sigmas / ManualSigmas / PDD 用法),节点 UI 与纯预览模式对蒸馏档自动追加 ⚠ 蒸馏LoRA档 提示,防止误接到普通 KSampler 出噪图。ACCELERATION_GUIDE.md 重写为 v1.08.0:新增「2.1 专用蒸馏 LoRA 详情」(精确 sigma、HF 仓库、ComfyUI 接线、质量/VRAM 实测)、「质量提升方案」(官方 cfg/steps 行为、Qwen-Image 2.1 Fix LoRA 20步工作流参数、社区细节增强 LoRA、官方 PE 双模型、Alpha/2K、编辑技巧)、「暂不可用」清单(lightx2v 2.1 仍未发布 / TeaCache 冻结 / Fun-Acc 仅实验 / Nunchaku INT4 暂无)、硬件实测数据表(Pruna H100、Viggle demo Space、消费级估算)。EN: v1.08.0 — Globally researched the Qwen-Image-2.1 acceleration ecosystem released 2026-09-23~29 (Viggle Turbo v0.3 / Pruna 5·8-step / Alibaba PAI Fun-Acc 4-step) and upgraded the plugin from the "Lightning not yet released" era to the "distillation acceleration ready" era. New: 5 distilled-LoRA
speed_presetoptions (Viggle 6/9-step, Pruna 5/8-step, PAI Fun-Acc 4-step) with built-in wiring hints (fixed sigmas, HF repos, node requirements) and automatic ⚠ warnings in UI/preview text; fully rewritten ACCELERATION_GUIDE.md v1.08.0 (distilled-LoRA details with exact sigmas, quality-playbook incl. Qwen-Image 2.1 Fix LoRA 20-step workflow, hardware benchmarks); all legacy preset keys preserved — no breaking changes.
全球全网搜索精选 16 个节日贺卡平面设计模板(type=card,新增第 13 大类「节日祝福贺卡」):新年极简大字报 / 春节国潮剪纸 / 情人节水彩爱心 / 妇女节扁平花束 / 母亲节复古花艺 / 父亲节复古沉稳 / 儿童节3D卡通 / 端午新中式 / 七夕中式浪漫 / 教师节手绘插画 / 中秋水墨月圆 / 国庆红色喜庆 / 万圣节怪趣复古 / 感恩节暖调乡村 / 圣诞3D立体纸雕 / 生日派对气球。每个模板均为完整贺卡设计提示词(版式结构+风格锚点+文字规则),可直接用于 Qwen-Image 文生图生成贺卡。16 张缩略图全部带百声AI圆形logo,海报墙数量说明同步更新为 150 模板 / 13 分类。
新增内容:
templates/templates.json + web/templates.json 双份同步(134 → 150),覆盖全年主流节日(元旦/春节/情人节/妇女节/母亲节/父亲节/儿童节/端午/七夕/教师节/中秋/国庆/万圣节/感恩节/圣诞/生日),每个模板含节日专属版式结构、配色/技法/元素/字体风格锚点与祝福语文字规则。web/thumbnails/card_*.png(448×448),贺卡主题配色渐变+节日元素+中英标题+右下角百声AI圆形logo。templates_wall.html 新增「节日贺卡」统计(stat-card),分类说明 12 → 13 大类,WALL_VER 升级 20260925-v107(新缩略图强制刷新缓存),数量说明同步修改。EN: v1.07.0 — 16 globally-curated Festival Greeting Card templates (type=card, new 13th category): Minimal New Year / Guochao Spring Festival paper-cut / Watercolor Valentine / Flat Floral Women's Day / Vintage Mother's Day / Retro Father's Day / 3D Children's Day / Neo-Chinese Dragon Boat / Romantic Qixi / Hand-drawn Teachers' Day / Ink Mid-Autumn / Red National Day / Playful Halloween / Warm Thanksgiving / 3D Paper-cut Christmas / Birthday Party. Each is a complete greeting-card design prompt (layout + style anchors + text rules) ready for Qwen-Image T2I. All 16 thumbnails carry the BSAI round logo; wall stats synced to 150 templates / 13 categories;
WALL_VER=20260925-v107. Front-end dropdown / wall / all three backends auto-compatible, no restart needed.
合并节点(BSAI_Qwen_Prompt_Enhancer)底部新增两个按钮,一键把自定义提示词 / 模板 JSON 直接写入「用户模板区 user_templates/」——保存后立即出现在 system_template 下拉与海报墙「用户模板」分类,无需重启、无需手动放文件。
新增内容:
user_templates/{名称}.json,保存后下拉自动选中新模板。.json 模板文件(支持单模板对象 / {"templates":[...]} 多条目自动拆分)→ 校验后直接写入 user_templates/ → 下拉自动刷新。POST /bsai_save_user_template(JSON 保存)、POST /bsai_upload_user_template(multipart 文件上传);load_user_templates() 每次实时扫描目录,保存/上传后即时生效,海报墙与下拉同步可见。其他电脑更新:
cd ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer && git pull
# 重启 ComfyUI,合并节点底部即出现「💾 保存为模板」与「⬆ 上传模板」两个按钮
v1.06.0 补丁1 — 海报墙缩略图缓存问题根治(Thumbnail cache root-fix):
模板缩略图已换成真实风格示例图,但旧浏览器缓存会一直显示旧图(截图里卡片仍是"文字风格卡")。本补丁给缩略图/logo URL 加了版本参数(
?v=WALL_VER,URL 变化即强制重新下载),并为海报墙直达路由、模板 API 响应加Cache-Control: no-store,每次打开海报墙都是最新版本。其他电脑git pull后重启 ComfyUI、重新打开海报墙即可,无需手动清缓存;以后每次换图只需把templates_wall.html里的WALL_VER改成新值。
v1.06.0 补丁2 — 旧工作流报「无效输入 / 输入值类型错误」(threads / timeout)一键自愈(Numeric self-heal):
旧工作流存档里
threads、timeout等数值参数若存成字符串/错误类型,选中模板预览时会红框报"无效输入"。本补丁在前端新增autoFixNumericValues:加载工作流时自动把所有 INT/FLOAT 数值参数重置为正确的 number 并同步存档(后端另有int()强转双保险)。其他电脑git pull后重启 ComfyUI 即可,旧工作流打开即自动修复,无需手动改参数。
v1.06.0 补丁3 — 海报墙「🔄 刷新」按钮 + 模板 API 500 修复(Refresh button + template API 500 fix):
海报墙分类栏新增绿色「🔄 刷新」按钮:一键重新拉取模板库(后端实时合并用户模板区),新保存/上传的模板无需关闭重开海报墙,点击刷新立即出现;刷新期间按钮置灰,完成弹出成功/失败提示。 同时修复一个被长期掩盖的隐藏 BUG:模板 API
GET /api/bsai/templates的 handler 缺少request参数(aiohttp 必传)导致该接口一直返回 HTTP 500——海报墙此前靠静态文件回退才正常显示。现已修复,刷新按钮可正常获取含用户模板区的完整模板库。 注意:升级后必须重启 ComfyUI 让新后端代码生效;若升级后首次点刷新仍提示 500,说明 ComfyUI 尚未重启(旧代码仍在内存)。
v1.06.0 补丁4 — 模板缩略图自动同步(Auto thumbnail sync for saved/uploaded templates):
保存为模板时,自动把最近一张生成图作为模板缩略图下载到海报墙(
web/thumbnails/{id}.png);上传模板时自动同步 JSON 自带的缩略图(支持 base64 / http(s) URL / 本地路径,也可在 multipart 里带thumbnail文件字段);上传模板无缩略图时,后端自动用 PIL 程序合成 448×448 占位卡(绿色分类条 + 模板名 + 描述 + 百声AI 底标),老用户模板首次打开海报墙时也会惰性补齐。其他电脑git pull后重启 ComfyUI 即可,保存/上传模板后缩略图自动出现在海报墙,无需手动放图。 When you click Save as Template, the latest generated image is automatically downloaded as the template thumbnail onto the wall (web/thumbnails/{id}.png). When you upload a template, any thumbnail embedded in its JSON (base64 / http(s) URL / local path, or a multipartthumbnailfile field) is synced automatically; if there is no thumbnail, the backend programmatically renders a 448×448 placeholder card (green category bar + template name + description + "百声AI · BSAI" footer). Legacy user templates are lazily backfilled the first time the wall is opened. On other machines:git pull, restart ComfyUI, done — no manual steps. 新增后端接口GET /bsai_latest_output(返回 output 目录最近一张生成图,供前端保存模板时自动取用);前端「💾 保存为模板」按钮保存前自动请求该接口并把图片 URL 随保存请求一起提交。 New backend endpointGET /bsai_latest_output(returns the newest image in the output folder for the Save button to pick up); the front-end Save button now fetches it and submits the image URL along with the save request.
新增的 16 个排版设计 + 16 个艺术风格模板,缩略图已从程序合成的"文字风格卡"全部替换为 AI 生成的真实风格示例图 —— 与老模板(102 张)一致,每张缩略图都是一幅该风格的典型代表作品(瑞士国际主义海报、包豪斯几何构成、印象派睡莲、梵高星月夜、波普玛丽莲、蒸汽波雕塑、酸性设计金属星体……),海报墙观感统一、一眼识别风格。
升级内容:
其他电脑更新:
cd ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer && git pull
# 然后 Ctrl+F5 强刷海报墙即可看到新缩略图
其他电脑点击「🖼 打开模板海报墙」报
ERR_INVALID_RESPONSE(网页似乎有问题 / 已永久移动)? 这是/extensions/前端静态路由在部分 ComfyUI 版本或系统代理环境下返回无效响应导致的。v1.04.0 已彻底修复:
修复内容:
GET /bsai_templates_wall,由插件直接返回海报墙 HTML,完全绕开 /extensions/ 静态路由——任何 ComfyUI 版本、任何网络环境都能打开。fix_wall.bat:双击即完成——探测 ComfyUI 端口 → 测试直达路由 → 若系统代理拦截了 127.0.0.1/localhost 自动加入例外(原值备份为 fix_wall_proxy_backup.reg)→ 自动打开海报墙。http://127.0.0.1:8188/bsai_templates_wall一键解决步骤(其他电脑):
# 方式一(推荐):更新插件后重启 ComfyUI,按钮直接可用
cd ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer && git pull
# 方式二:双击插件目录里的 fix_wall.bat,自动诊断、自愈并打开海报墙
fix_wall.bat
内置模板库从 102 个扩到 134 个(11 大分类),并新增「用户模板区」——把你自己的自定义模板 JSON 放进
user_templates/目录,自动汇聚成共享模板,所有工作流与海报墙即时可用。
新增内容:
typography):全球经典与前沿排版风格——
瑞士国际主义 / 包豪斯 / 苏联构成主义 / 新丑风 / 孟菲斯 / 复古雕花 / 极简大字 / 杂志编辑设计 / 报纸版面 / 日式和风排版 / 中国书法海报 / 故障艺术字 / 霓虹灯字 / 立体3D字 / 像素字 / 手写涂鸦字。user):插件根目录新增 user_templates/。支持三种 JSON 格式(单个模板 / 模板+外部文件 / 模板列表),支持 {{KEY}} 变量占位,id 冲突自动加 user_ 前缀。其他电脑 git pull 后同样获得全部共享模板。GET /api/bsai/templates:海报墙优先走该接口(内置+用户实时合并,含全文),静态文件作为回退——新增模板无需改静态文件。用户模板区怎么用: 打开 custom_nodes/BSAI_Qwen_Prompt_Enhancer/user_templates/README.md(含格式说明),把模板 JSON 丢进该目录 → 完全重启 ComfyUI → 模板下拉与海报墙「用户模板」分类即可看到。示例见同目录 示例模板.json。
新增 2 个节点:BSAI_Jev_Schema(Schema 构建器)+ BSAI_Jev_Decision(Jev 并行决策)。
Jev(llama.cpp 新技术的 ComfyUI 落地)不再让模型逐 token 手写 JSON,而是为每个字段构造 字段名: 前缀、只读取候选选项 token 的 logits,一次前向同时得到全部字段的值与置信度——类型安全、不可能产生 Schema 外的输出,毫秒级完成结构化决策。
BSAI_Jev_Schema 里每行写一个字段(字段名: 选项1|选项2|选项3)→ 接入 BSAI_Jev_Decision,选本地 GGUF 模型(与主节点"本地LLaMA"后端同一套加载通道)→ 填 context → 输出 result_json / confidence_json / text。llm_model_name / mmproj_name / chat_handler / n_ctx / n_gpu_layers / load_mtp 与主节点完全一致(含 MTP 自动剥离、handler 自动识别、模型缓存)。force_offload 可一键卸载全部缓存的本地模型。其他电脑打开示例工作流报红框
node type not found / undefined(如SetNode、GetNode、Image Comparer (rgthree)、QwenImage21_T2IPromptRewrite、DLSS5Settings、DLSS5EnhanceImages)? 这些都不是 BSAI 插件缺失,而是示例工作流依赖了 5 个第三方节点插件。v1.02.0 已把潜空间放大示例收进插件,并提供一键安装脚本,双击即可装齐全部依赖:v1.02.0 bundles the latent-upscale example workflow and ships a one-click dependency installer. If another PC reports missing/undefined nodes (SetNode / GetNode / Image Comparer (rgthree) / QwenImage21_T2IPromptRewrite / DLSS5Settings / DLSS5EnhanceImages), just double-click the installer:
# 在插件目录下双击(或运行): ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer/install_example_deps.bat该脚本自动
git clone5 个依赖插件(已存在的跳过),装完完全重启 ComfyUI 即全部亮灯: The script auto-clones the 5 dependency plugins (skips existing ones); after a full ComfyUI restart every node lights up:
工作流里的节点 提供插件 SetNode/GetNode(无线隧道)ComfyUI-KJNodes(前端虚拟连接) Image Comparer (rgthree)rgthree-comfy QwenImage21_T2IPromptRewriteComfyUI-Qwen-Image-2.1-Prompt-Enhancer(需下载官方 PE-T2I 模型放 models/text_encoders/)DLSS5Settings/DLSS5EnhanceImages(潜空间放大)ComfyUI-DLSS5-Enhancer(NVIDIA DLSS5 神经渲染;需按需运行 install_runtime.py下载运行时)⚠️ install_runtime.py内置 URL 已过时(404),请用install_example_deps.bat提示的--url命令(tag 为v3.0);国内网络不通时在 URL 前加镜像前缀https://gh-proxy.com/或https://ghfast.top/。easy cleanGpuUsed/easy clearCacheAllComfyUI-Easy-Use PathchSageAttentionKJ/GetImageSizeAndCountComfyUI-KJNodes 其它常见节点(
ResolutionSelector、ComfyMathExpression、SaveImageAdvanced、QwenImage21Cache、TextEncodeQwenImage21)均为 ComfyUI 官方内置,无需安装。 The rest (ResolutionSelector / ComfyMathExpression / SaveImageAdvanced / QwenImage21Cache / TextEncodeQwenImage21) are built into ComfyUI — no install needed.另外 v1.02.0 内置
MarkdownNote兼容节点:新版 rgthree 已移除该注释节点,BSAI 插件自带同名节点,示例工作流开箱即用。 v1.02.0 also bundles aMarkdownNote-compatible node (removed from new rgthree builds), so BSAI example workflows load cleanly on any machine.
新版 ComfyUI 上报
Custom validation failed for node: backend - None(每个输入都报)? 新版以VALIDATE_INPUTS(**全部输入)方式调用并要求返回True(返回 None/False 都判失败);旧版则以VALIDATE_INPUTS(input_name, input_value)两位置参调用、返回 None 表示通过。 v1.01.2 已按调用形态自动判别返回值(kwargs 形态返回 True、两位置参返回 None),新旧版 ComfyUI 全部通过校验,开图即用。请更新到 v1.01.2。Newer ComfyUI shows
Custom validation failed for node: backend - None(for every input)? New builds callVALIDATE_INPUTS(**all_inputs)and requireTrue(None/False both count as failure); legacy builds callVALIDATE_INPUTS(input_name, input_value)and treat None as pass. v1.01.2 detects the calling convention and returns the right value (True for kwargs form, None for two-positional form), so both old and new ComfyUI pass validation cleanly on load. Update to v1.01.2.
v1.01 在部分 ComfyUI 版本上会报新错:
Exception when validating inner node: BSAI_Qwen_Prompt_Enhancer.VALIDATE_INPUTS() missing 2 required positional arguments: 'input_name' and 'input_value'。 原因:这些版本以无参方式调用VALIDATE_INPUTS(),v1.01 固定签名(input_name, input_value)因而抛错。 v1.01.1 已改为可变参数签名VALIDATE_INPUTS(*args, **kwargs),兼容无参 / 两参 / 带 kwargs 的所有调用方式,任何 ComfyUI 版本都开图即用、不再红框。 请把插件更新到 v1.01.1(git pull或重新下载)。v1.01 could fail on some ComfyUI builds with:
Exception when validating inner node: ...VALIDATE_INPUTS() missing 2 required positional arguments: 'input_name' and 'input_value'— those builds callVALIDATE_INPUTS()with no arguments. v1.01.1 switches to a variadic signatureVALIDATE_INPUTS(*args, **kwargs)that accepts any calling convention (no args / two args / kwargs), so every ComfyUI version loads cleanly with no red frame. Update the plugin to v1.01.1 (git pullor re-download).
遇到
Value not in list: hf_model_name: 'Florence-2-base [...]' not in ['<未发现 HF 模型>']、节点红框「无效输入」、控制台刷Output will be ignored? 这是旧工作流存档的下拉值在本机不存在(例如另一台电脑选了 Florence-2,本机models/LLM下没这个模型)。 升级到 v1.01 后自动解决,无需任何手动操作:后端VALIDATE_INPUTS放行 combo 校验(不再红框/阻塞整图)+ 前端加载时自动把非法下拉值重置为列表首项。手动根治方法见文末「常见问题 / Troubleshooting」。See
Value not in list: hf_model_name: ... not in ['<未发现 HF 模型>'], a red "Invalid input" frame, orOutput will be ignoredspam? The workflow saved a dropdown value that does not exist on this machine (e.g. Florence-2 was selected on another PC but is not in this PC'smodels/LLM). v1.01 fixes this automatically — zero manual steps: backendVALIDATE_INPUTSpass-through (no red frame / no blocked graph) + frontend auto-reset of invalid combo values on load. Manual root-cause fix in "Troubleshooting" at the end of this README.
核心:彻底解决"本地 LLaMA 首次调用 Invalid chat handler: None"报错;清除模板后不再残留;预览选模板时 ENHANCED_PROMPT 正确走模板输出。 Fixes: "Invalid chat handler: None" on first local-LLaMA call; no stale output after clearing the template; ENHANCED_PROMPT now correctly follows the selected template in preview mode.
keep_loaded 默认关闭 + 用后清理:修复 llama-cpp 在 keep_loaded=false 路径下加载后立即 _clear_cache() 提前 close LLM,导致 chat handler 被置空(Invalid chat handler: None)的问题。现在模型用完才清理,handler 始终有效 / keep_loaded now defaults off with post-use cleanup — the LLM is closed only after the call finishes, so the chat handler stays valid (fixes Invalid chat handler: None)_enhance_local 的缓存清理不再干扰本轮调用,多后端(官方PE / 本地LLaMA / 本地HF / API)首次调用均稳定 / Cleanup timing fixed so it never interrupts the current call; all backends (Official PE / Local LLaMA / Local HF / API) are stable on first call本插件的 本地 LLaMA 后端 支持千问家族全系列多模态模型的本地推理与图像反推:
| 模型系列 | Chat Handler | 说明 |
|---|---|---|
| Qwen 3.8-VL | Qwen35ChatHandler | 最新旗舰多模态,27B / 7B 等规格 |
| Qwen 3.6-VL | Qwen35ChatHandler | 高效多模态,支持 MTP 加速 |
| Qwen 3.5-VL | Qwen35ChatHandler | 9B / 72B 等,官方 PE 底层 |
| Qwen 3-VL | Qwen3VLChatHandler | 第三代多模态 |
| Qwen 2.5-VL / Qwen 2-VL | Qwen25VLChatHandler | 经典多模态系列 |
同时兼容其他主流多模态模型:
Gemma4ChatHandler💡 自动识别:
chat_handler选auto时,节点按模型名自动匹配对应 handler,开箱即用。
| 后端 | 特点 | 适用场景 |
|---|---|---|
| 官方 PE | 本地加载 Qwen Image 2.1 PE 权重,按官方 8 步规则增强 | 追求官方效果、有显卡跑 PE |
| 本地 LLaMA | 本地 GGUF + mmproj,支持千问全系列多模态模型 | 离线使用、图像反推、自定义模型 |
| API | OpenAI 兼容接口(如阿里云百炼) | 在线服务、无需本地显存 |
Qwen Image 2.1 官方增强提示词模板 节点内置 134 个增强模板:
设计/电影/角色类模板内置 {{TITLE}} {{SUBTITLE}} {{BRAND}} {{MAIN_SUBJECT}} {{COLOR}} {{STYLE}} 等占位符。
在节点的 variables 输入框按 KEY: value 逐行填写,节点自动替换并输出完整 SYSTEM_PROMPT:
TITLE: 夏日新品发布会
SUBTITLE: 2026 秋季系列
BRAND: BSAI
MAIN_SUBJECT: 一个穿红裙的女孩站在樱花树下
COLOR: 深蓝+橙金
STYLE: 商业摄影
:USED_VARS 报告实际替换了哪些 key、哪些未填system_templateimage_1 输入💡 想修改模板内容(覆盖 / 追加要求 / 改库文件 / 新增模板)?详见 TEMPLATE_GUIDE.md。
模板节点自带 可视化海报墙,点击节点上的「🖼 打开模板海报墙」按钮即可弹出:
| 功能 | 说明 |
|---|---|
| 大图预览 | 134 个模板全部配有缩略图(新模板为百声AI圆形logo统一风格),一眼看清版式布局 |
| 分类筛选 | 10 大分类一键切换:全部 / 官方规则 / 官方文档 / 社区实践 / 设计版式 / 电影资产 / 角色卡 / 电影海报 / 艺术风格 / 人物姿势 / 灵感精选 |
| 点击即用 | 点击任意卡片自动回填到节点,无需手动选择下拉 |
| 中英双语 | 右上角 🌐 切换使用说明语言 |
| 变量提示 | 每张卡片显示该模板支持的所有变量名 |
海报墙路径:web/templates_wall.html
将本插件放入 ComfyUI/custom_nodes/ 目录:
ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer/
依赖:
llama-cpp-python(推荐 0.3.36+,以支持 Qwen 3.5/3.6/3.8 全系列)
pip install llama-cpp-python
重启 ComfyUI
将 PE 权重放入 ComfyUI/models/text_encoders/:
qwen3.5_9b_qwen_image_2.1_pe_t2i.int8_convrot.safetensors(文生图)qwen3.5_9b_qwen_image_2.1_pe_i2i.int8_convrot.safetensors(图生图)用 CLIPLoader 加载 PE 权重,接到节点的 clip 输入
backend 选 官方PE,填写提示词 → 运行
将 GGUF 模型和 mmproj 投影器放入 ComfyUI/models/LLM/(相对路径):
ComfyUI/models/LLM/
├── Qwen3.8-27B-Instruct-Q6_K_L.gguf
└── Qwen3.8/
└── Qwen3.8-27B-f16_mmproj.gguf
添加 BSAI Qwen Prompt Enhancer 节点:
backend 选 本地LLaMA (GGUF + mmproj)llm_model_name 下拉选择主模型 GGUFmmproj_name 选择对应的 mmproj(多模态反推必填)chat_handler 选 auto(自动匹配千问系列专用 handler)image_1 ~ image_16 进行图像反推(最多 16 张图)运行即可得到增强后的提示词或图片反推描述
💡 MTP 层自动处理:含 MTP/NextN 预测层的模型(如 Qwen 3.6/3.8 CRACK 版)会自动检测并生成去 MTP 版本(
-noMTP.gguf),兼容各版本 llama-cpp-python。
backend 选 APIapi_base、api_key、api_model_name用于工单路由、邮件分类、评论打标、内容审核等结构化决策场景——不是生成文字,而是从你定义的合法选项中选值,并给出置信度。
添加 BSAI_Jev_Schema 节点,每行定义一个字段:
department: tech|billing|shipping
priority: low|medium|high
sentiment: positive|negative|neutral
instruction(可选)填字段判断规则,如 You are a support ticket router. Classify each field strictly based on the context.
添加 BSAI_Jev_Decision 节点并连接 jev_schema:
context:待决策的文本(客户信息 / 邮件 / 工单内容)batch_mode:勾选后每行一条记录,逐条完成全部字段决策llm_model_name / mmproj_name / chat_handler / n_ctx / n_gpu_layers / load_mtp:与"本地LLaMA"后端完全一致(MTP 自动剥离 / handler 自动识别 / 模型缓存)输出:
result_json:{"department": "billing", ...}(可直接接下游)confidence_json:每个字段的值 + 置信度 + 全选项得分text:人类可读摘要💡 与逐 token 生成的区别:Jev 一次前向同时得到全部字段(同记录内并行),模型只能从选项里选,不可能产生 Schema 外的输出;配合 KV 前缀缓存,毫秒级返回。字段间互依赖的规则型任务(需要回看已写内容)不适合 Jev。
BSAI_Qwen_Prompt_Enhancer/
├── __init__.py # 节点注册
├── common.py # 公共工具:规则加载/消息构造/输出解析/图片转换
├── nodes_enhancer.py # 三合一增强节点(官方PE / 本地LLaMA / API)
├── nodes_jev.py # Jev 结构化并行决策节点(Schema + Decision)
├── jev_mode.py # Jev 引擎(与 ComfyUI-llama-cpp_vlm 同步的独立副本)
├── nodes_template.py # 模板库节点
├── system_prompts/ # 官方 PE-T2I/I2I system_prompt 原文
├── templates/ # 模板库(cinema / design / 官方公式)
├── web/ # 前端 JS + 缩略图
├── examples/ # 示例工作流
└── README.md
增强节点统一输出 10 路:
| 输出 | 说明 |
|---|---|
ENHANCED_PROMPT | 增强后的提示词(可直接接 KSampler positive) |
WH_RATIO | 输出的宽高比(文生图模式时) |
RATIO_FOLLOW | 是否按参考图比例输出 |
RAW_OUTPUT | 模型原始输出 JSON |
THINKING | 模型思考过程(thinking 模式时返回) |
RECOMMENDED_STEPS | 推荐的采样步数(随 speed_preset 档位联动) |
RECOMMENDED_CFG | 推荐的 CFG 值(Qwen Image 2.1 为 1.0) |
RECOMMENDED_SAMPLER | 推荐的采样器(euler) |
RECOMMENDED_SCHEDULER | 推荐的调度器(simple) |
MERGED_TEXT | 模板原文 + 用户要求拼接文本(可直接接下游文本节点) |
KSampler 上右键
steps/cfg→ Convert to input,接上RECOMMENDED_STEPS/RECOMMENDED_CFG,切换 speed_preset 档位即自动联动采样参数。
preview_only(仅预览)开启时,所有后端都不会调用模型,节点直接输出文本预览,不做任何增强:
ENHANCED_PROMPT = 你的原始 prompt_text(原文直出,不增强)MERGED_TEXT = 模板 + 用户要求拼接(无模板时为空)适用场景:模板海报墙选卡时的快速预览、查看模板拼接效果。 正式出图必须关闭「仅预览」,否则官方PE / 本地LLaMA 不会真正增强,出图用的是你的原文。
提示:用模板海报墙选模板会自动勾选「仅预览」用于秒出预览,选完记得关闭再出图。
models/LLM/、models/text_encoders/),插件移动到任何位置都能正常工作keep_loaded 保持模型驻留显存,批量处理时不用反复加载Qwen Image 2.1(7B DiT)为 CFG-distilled 架构,官方 day-0 推荐参数为 25步 / cfg=1.0 / euler / simple。 不要再用旧版 20B 的 cfg=3~4,否则会过饱和、过曝、构图僵硬,且每步要多跑一次模型前向。
选档后 RECOMMENDED_STEPS / RECOMMENDED_CFG 直接输出对应参数,KSampler 接线即可联动:
| 档位 | steps | 用途 |
|---|---|---|
| 官方标准 25步/CFG1(默认) | 25 | 日常出图(官方推荐,画质最优) |
| 快速 15步/CFG1 | 15 | 迭代预览,更快 |
| 极速 10步/CFG1 | 10 | 快速草稿(画质略降) |
| 高质量 35步/CFG1 | 35 | 精细出图 |
| 缓存加速 20步/CFG1 | 20 | 配合 EasyCache / Cache 节点 |
| Lightning 8/4步/CFG1 | 8/4 | 待 2.1 专用 Lightning LoRA 发布后使用 |
| 旧版兼容档 ×4 | 修正值 | 保留旧 key,防旧工作流失效 |
qwen_image_2.1_int8_convrot.safetensors(显存减半、更快)--fast --use-sage-attention(fused kernels + SageAttention 注意力加速,采样阶段快 20-40%)UNETLoader → QwenImage21Cache → TE-Speed → KSampler,提速 30-40%QwenImage21Cache,编辑工作流加速明显TorchCompileModel 节点,10-30%(首次编译有冷启动)RTX 4090 / 1024×1024 / int8 / 25步 ≈ 7.5 秒/张;叠加 SageAttention + EasyCache 后约 4-5 秒。
Qwen-Image-Lightning-8steps-V2.0,架构不同,权重形状不匹配)详细加速方案与硬件实测见 ACCELERATION_GUIDE.md,技术调研见 RESEARCH_REPORT.md。模板机制与修改方法见 TEMPLATE_GUIDE.md。
Value not in list: hf_model_name: 'Florence-2-base [...]' not in ['<未发现 HF 模型>'],节点弹红框「无效输入」,控制台刷 Output will be ignored?原因:工作流是在另一台电脑保存的,hf_model_name(本地 HF 后端)选了 Florence-2-base [Florence2ForConditionalGeneration];当前电脑的 ComfyUI/models/LLM 下没有该模型(未下载 / 目录不同),下拉列表只剩 <未发现 HF 模型>,ComfyUI 校验失败 → 红框 + 整图被忽略。
✅ 一键解决(v1.01.1+,无需任何手动操作):升级到 v1.01.1,插件内置两层自愈:
VALIDATE_INPUTS 跳过 combo 的 value-in-list 校验 → 开图不再红框、不再阻塞整图;升级后打开工作流即恢复正常,在 hf_model_name 下拉里重新选择本机实际存在的模型即可。
手动解决(根治):把 Florence-2 模型放入 ComfyUI/models/LLM/(目录结构:models/LLM/<模型目录>/model.safetensors + config.json 等 Transformers 目录格式)。下载参考:
pip install -U huggingface_hub
hf download microsoft/Florence-2-base --local-dir ComfyUI/models/LLM/Florence-2-base
Value not in list?同一原因(旧存档值不在当前选项列表,如模板库版本变化后的 system_template、模型目录变化后的 llm_model_name)。v1.01.1 对全部下拉统一做了自愈,重启 ComfyUI 后打开工作流即自动重置,无需手动改节点。
Value not in list / Output will be ignored。后端 VALIDATE_INPUTS 放行 + 前端加载时自动重置非法下拉值,开图即用 / Fixes red-frame validation errors when opening workflows saved on another PC (stored combo values missing on this machine, e.g. Florence-2 not downloaded): backend VALIDATE_INPUTS pass-through + frontend auto-reset of invalid combo values on load.症状:其他电脑打开工作流仍报
Custom validation failed for node: X - None或Value not in list。 99% 是因为插件没更新到 v1.02.0(或更新后没重启)。 请按下面两步确认:
第 1 步 — 更新插件到 v1.02.0(在插件目录 ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer 执行):
git pull origin main
# 或重新下载最新仓库 zip 覆盖(ComfyUI Manager 用户:点 UPDATE ALL 后选本插件)
第 2 步 — 完全重启 ComfyUI(不是刷新浏览器页面):关掉 ComfyUI 进程,重新启动。
自查是否已生效:重启后看 ComfyUI 控制台第一屏,应有横幅:
[BSAI_Qwen_Prompt_Enhancer] 插件已加载 | 版本 v1.02.0 (2026-09-24) | ...
v1.02.0 → 已更新,重新打开工作流即正常。git pull 是否成功、ComfyUI 是否完全重启、或从 G 盘/旧 zip 拷的是不是旧文件。命令行确认版本:
git -C ComfyUI/custom_nodes/BSAI_Qwen_Prompt_Enhancer log --oneline -1
# 应显示本次 v1.02.0 提交或更新的提交