MOSS Prompt Studio
Chinese end-to-end MOSS-Image prompt studio for ComfyUI: canvas draft editing, LLM translation, official compile, and image reverse.
MOSS Prompt Studio(ComfyUI 插件)
当前版本:v1.10.0-beta3
本次更新(v1.10.0-beta3):仅 Comfy Registry 打包,节点行为与 v1.10.0-beta2 一致,无新节点功能。多格分镜等说明见「版本与更新」。
把上游 agent 产出的中文 MOSS-Image 提示词草稿或散文式提示词,在 ComfyUI 里可视化编辑、翻译成英文、按官方口径编译,直接接原生 MOSS-Image 节点生图。
LoadImage ──> ImageReverse(可选)──> Editor ──> Translator ──> Compiler ──> 原生 MOSS-Image 节点
▲ │
└────────── 生成图回接 Editor 当底图对比迭代 ──────────┘
上游 agent(可在其他设备运行 MOSS 官方 skill)产出的中文草稿,复制粘贴到 Editor 的 source 即可;也可以先用 ImageReverse 从图片反推出中文草稿。
核心功能
- Editor:可视化画布——拖拽/四角缩放/撤销重做、图层、重叠检测、比例与像素预设、16 倍数吸附、底图对比、实时校验;内置 📐 版式模板与文字容量提示;⤓提交 一键把当前画布冲进 edits 并体检(元素数/尺寸/归属签名,Queue 前也会自动做同样检查)。
- Translator:中→英——OpenAI 兼容 LLM;
reuse_translation复用上次成功译文,反复出图不重复计费;粘贴已编译 JSON 时用canvas_width/canvas_height反解真实画布坐标。 - Compiler:官方口径——按 OpenMOSS/MOSS-Image 官方 skill 编译与严格校验;caption 输出纯文本,layout/已编译输出单行 JSON。
- ImageReverse(可选)——图片 → 中文散文 / 中文草稿 / 画布 JSON;四档模式,默认关闭。
- AI 定向改稿(可选)——一句话修改要求 → LLM 只产操作清单 → 审批卡逐条采纳;未被提及的元素逐字节不动(详见「可选功能 · AI 定向改稿」)。
- 姿势参考(可选)——接 comfyui-pose-gallery 的
description,或手填/🎯 点选;支持 ⚡拆解展开与 📥本地短语注入。 - 服装参考(可选)——接 comfyui-costume-gallery 的
description,或手填;支持 ⚡拆解展开与 📥服装本地短语注入;与姿势段共存。
Editor 的界面布局(LLM/姿势/服装双列面板、固定两行工具栏等)见「Editor 使用要点 · 布局与尺寸」。
快速开始
- 安装:把本目录放进
ComfyUI/custom_nodes/,重启 ComfyUI。也可通过 ComfyUI Manager / Registry 安装:comfy node install moss-prompt-studio。插件不新增第三方依赖:HTTP/图像处理使用 ComfyUI 自带的 aiohttp / Pillow / numpy。 - 配置模型:复制
config.example.json为config.json,按 provider 填base_url/model/api_key;也可直接在节点 widget 填(节点值优先)。 - 主链接线:
Editor.draft → Translator.draft → Compiler.draft → CLIPTextEncode/采样器。caption 形态把 Editor 的width/height接 Compiler 的canvas_width/canvas_height(推荐工作流已接好)。 - 文字输入:把中文散文或 layout 草稿贴进 Editor 的
source;散文点 ⚡拆解 生成画布,layout 草稿会直接识别。 - 接生成节点:Compiler 的
prompt/clip_text接正向 CLIPTextEncode,negative接负向,width/height接空 Latent;不要再送 MOSS-Image Layout Prompt。 - 可选入口:图片反推接
LoadImage → ImageReverse → Editor.reverse_in;姿势接Pose Gallery.description → Editor.pose_in(_2);服装接Costume Gallery.description → Editor.costume_in(_2);改稿在 Editor 节点内完成(见「AI 定向改稿」)。都不影响主链。
推荐工作流:examples/MOSS-Image-生图.json(Editor → Translator → Compiler → 采样的完整文生图流;升级注意事项见「升级与兼容」)。
推荐工作流依赖
缺节点用 ComfyUI Manager 安装;模型可换官方 MOSS-Image 权重,但 CLIP/VAE 必须匹配。
| 类型 | 工作流中的文件/版本 | 放置/说明 |
|---|---|---|
| ComfyUI | 0.43+(工作流 core 节点记录 0.41–0.42) | 需要支持 CLIPLoader 的 moss_image 类型 |
| 本插件 | MOSS Prompt Studio v1.8.0+ | Editor / Translator / Compiler / ImageReverse |
| UNet | rayMossArtshoot_sftTurboV1.safetensors | ComfyUI/models/unet/;可替换为官方 MOSS-Image-Base/SFT,采样参数按模型卡调整 |
| CLIP | moss/qwen3.5_9b_int8_convrot.safetensors | ComfyUI/models/clip/,CLIPLoader 类型选 moss_image |
| VAE | moss/flux2-vae.safetensors | ComfyUI/models/vae/ |
| rgthree-comfy | 8ff50e4…(Seed;另含 Label / Fast Groups Bypasser) | Manager 安装,版本以工作流节点记录为准 |
| ComfyUI-Easy-Use | b0b47ca… / 005c578…(easy cleanGpuUsed / easy showAnything) | Manager 安装 |
| TESpeedMoss | 工作流节点 218 | 按该节点包来源安装 |
目录结构
custom_nodes/comfyui-moss-prompt-studio/
├── nodes/ + py/ # 四个节点与后端核心
├── web/ # 画布/反推前端
├── agents/ # 可下拉选择的追加注入指令
├── AGENT.example.md # 根目录注入文件模板
├── config.example.json # LLM 连接配置模板
├── examples/ # 推荐工作流 + 示例草稿
├── tests/ # 离线测试
└── LICENSE # MIT
节点概览
| 节点 | 作用 |
|---|---|
| Editor | 中文草稿/反推结果的可视化画布编辑,输出 draft + width/height |
| Translator | 中文草稿 → 英文草稿(LLM;可开启译文缓存复用;已编译 JSON 需设置 canvas_width/canvas_height) |
| Compiler | 官方口径编译 + 严格校验 |
| ImageReverse | 图片 → 中文散文 / 中文草稿 / 画布 JSON(可选入口,enabled 默认关闭) |
最小主链只需 Editor → Translator → Compiler;ImageReverse、姿势/服装图库与 AI 改稿都是可选入口。
Editor 使用要点
画布、模板与文字
source粘贴中文散文或 layout 草稿;edits是自动生成、也可手改的布局 JSON。散文点 ⚡拆解 生成画布,layout 草稿直接识别;普通 Queue 按输入哈希缓存,⚡拆解 每次强制重拆。- canvas 画布模式(检查器 summary 区下拉):
multi_panel多格分镜——用法见下方「多格分镜(multi_panel)」。 - 📐模板:内置竖版海报 / 方形社媒 / 电商主图 / 杂志封面 / 人物介绍卡 / 四格分镜 / 条漫 1×3 / 角色三视图,载入后可 ↶撤销。
- 文字框过小或过长会在状态行给出 ⚠ 容量提示(启发式估算,仅提示、不拦截提交)。
- 图层行默认折行显示完整 caption,方便直接阅读简单的 JSON 画布;上移/下移/删除按钮保持右上角。
- 画布支持拖拽、四角缩放、方向键微调、滚轮缩放、重叠检测;比例/像素预设会保持当前面积并自动对齐 16 倍数。
多格分镜(multi_panel)
canvas: "multi_panel" 是官方 layout 草稿的画布模式:一条 prompt 生成一张含多个分格的图(四格漫画/条漫/角色三视图)。分格由元素框在画面中的区域决定,分隔线由模型自行绘制(官方对该字段未提供语义文档,实测 bbox 布局是主要驱动力;该字段随草稿全程透传,未来模型强化其语义时零成本受益)。
路线一:从零开始(模板路线,推荐)
前提:画布里有一个 Editor 节点即可,不需要先 ⚡拆解。
Step 1 载入分镜骨架:点工具栏 📐模板 → 选一个分镜版式 → 「使用」:
| 模板 | 画布尺寸 | 自带元素 | |---|---|---| | 四格分镜 | 1024×1024 | 4 个格框(场景)+ 4 条台词条 | | 条漫 1×3 | 1024×1536 | 3 个横格 + 3 条台词条 | | 角色三视图 | 1536×1024 | 3 个角色框(正面/侧面/背面)+ 3 个视图标签 |
载入后画布直接出现全部元素,检查器 summary 区的「canvas 画布模式」下拉自动显示 multi_panel,操作可 ↶撤销。
Step 2 认识画布元素:图层列表的每一行对应画布上一个框——大框(label=object/character)是该格的场景描述(给模型看的),text 框是该格台词(会逐字渲染到画面上)。格与格之间靠框的位置区分:左上角的框就是第一格。
Step 3 填内容,两条路任选(可混用):
- 路线 A · ⤢改稿批量填格(推荐):
- 在「AI 改稿」输入框写一句话,按格列出内容,例:
把四格分别改为:①清晨窗台伸懒腰 ②中午碗边大快朵颐 ③傍晚追毛线球 ④夜里蜷在窝里,每格配一句简短台词 - 点 ⤢改稿 → 审批卡逐行核对(每行标了
#索引与改后内容,词级红绿 diff;单次最多 8 条操作,四格正好够用) - 勾选要的 → 「采纳所选」或「全部采纳」→ 画布更新,可 ↶撤销。改台词时若 🔒锁定画面文字 开着,改文字的行会被排除。
- 在「AI 改稿」输入框写一句话,按格列出内容,例:
- 路线 B · 手工逐项:图层列表点选元素 → 检查器改 caption(该格场景)与 text(该格台词逐字)→ 在画布拖框调整格内布局。
Step 4(可选)姿势/服装:先在画布选中那一格的角色,再点 📥姿势/📥服装——姿势短语只写进选中角色的描述(;姿势: 分段)。注意:
- 未选中时点注入会被拒绝(多格下自动分配按左右/面积假设单场景,跨格分配语义错误)。
- 同格双人 + 双人姿势:把检查器 canvas 切回
single→ 点注入(双人姿势整体生效)→ 再切回multi_panel。模式切换只改 summary 字段,已注入的姿势分段无损。
Step 5 Queue 出图:直接 Queue(走翻译 → 编译 → 采样)。canvas 字段随草稿直通模型;三个模板的画布尺寸已按格数配好,改尺寸用工具栏比例/像素选择器(会等比缩放所有框)。
路线二:从已有散文进 multi_panel
先 ⚡拆解 把散文拆成单画布 → 检查器 canvas 下拉切 multi_panel → 把元素框拖进各格区域(或直接再载一个分镜模板覆盖重摆)→ 按路线一 Step 3 填内容。注意 ⚡拆解/⚡反推 的产物固定是单画布(触发时状态行会提示),多格模式需要手动切回或重载模板。
已知行为与边界
- ⚡拆解 / ⚡反推 的产物固定为单画布(触发时状态行会提示),多格模式需重新选择或重新载入模板。
- 模板载入会覆盖当前 canvas 模式(模板自带该字段)。
- 多格草稿上 📥姿势/📥服装 的自动分配被禁用(左右/面积分配假设单场景,跨格分配语义错误)——选中角色后注入(逐 item 语义正确)或切回
single;「🔄 对调」仍可用。 - 同格双人 + 双人姿势:切
single注入后再切回multi_panel,姿势分段无损。 - 改稿(⤢)对多格草稿照常工作(操作是 item 级的),改 summary 的 canvas 字段也会出现在审批卡中。
- 实测参考:四格/条漫/三视图均已真机出图验证(分格结构、格序、台词条逐字渲染);模板自带的占位文案(如"第一格:场景开场")需替换成具体内容,过于抽象的格描述可能得到空格。
布局与尺寸### 布局与尺寸
- LLM/AI 选项双列:左列
ai_draft/provider/base_url/model/api_key,右列temperature/thinking/timeout/agent_md;ai_prompt横跨两列。 - 姿势参考双列:
pose_in/pose_in_2并排;服装参考双列:costume_in/costume_in_2紧随其后。两个面板的框都可拖右下角调整高度,节点会自动重新分配空间;有连线时输入框自动禁用(连线优先)。 ai_prompt也可拖拽拉伸;面板随内容重新布局。新控件均尾追在既有控件之后,旧工作流widgets_values不错位。- 工具栏固定两行:第一行 编辑工具 + 右端
⇄同步/⧉复制;第二行 注入/模板按钮 + 右端 ⚡拆解(主色按钮,位于 同步/复制 正下方)。 - 原标准 widget 被隐藏但仍参与工作流序列化,后端参数与 API 提交不变。
归属、撤销与反推写回
edits只对写入时的那份source生效(隐藏edits_source_sig记录归属);换source后旧画布自动失效,以新 source 为准。- 撤销/重做保留完整画布历史;📐模板载入会保留撤销点。
- 反推结果在执行结束后写回 Editor(prose/draft → source,canvas → edits),随后再 Queue 一次才会用新数据生成;同结果不覆盖手改。
LLM 配置
| Provider | 默认地址 / 模型 | 说明 |
|---|---|---|
| mimo | 套餐地址 / mimo-v2.6-flash | MiMo Token Plan key |
| deepseek | https://api.deepseek.com/v1 / deepseek-chat(官方别名,当前映射 flash) | 支持图片 |
| minimax | https://api.minimax.cn/v1 / MiniMax-M3.1-Flash | M Plan/按量 key 不可混用;思考关不掉,off→low |
| custom | 任意 OpenAI 兼容 URL | LM Studio / Ollama / 网关;本地 api_key=EMPTY |
配置与优先级
- 复制
config.example.json→config.json;widget 值优先于 config。 - 三个 LLM 节点(Editor / Translator / ImageReverse)的连接配置各自独立;任一节点的 ⇄同步 会把
provider/base_url/model/temperature/thinking/timeout复制到另外两个节点,api_key不参与同步。 - Translator 的
reuse_translation开启后,相同翻译输入(中文草稿/模型/思考/提示注入)复用上次成功译文,适合反复出图找最优图;关闭时强制重译并刷新缓存。 max_tokens=0表示"插件默认"(按 provider 由请求体组装逻辑决定),不是服务商默认值。
key 安全
- 建议 key 放
config.json,节点api_key保持EMPTY,避免分享工作流时泄露。widget 里的api_key会明文保存进工作流 JSON 和 ComfyUI 执行历史(/history的prompt.inputs.api_key);保存/分享工作流、导出历史前务必确认节点里没有真实 key。 - 只有目标
base_url等于该 provider 的 config/官方默认地址时才回退配置 key;把base_url改成别的地址(含内网/攻击者地址)时必须显式填 key,否则不发Authorization。custom如需使用 config 里的 key,请同时在 config 的custom.base_url写入与节点一致的地址。
连接测试
- 连接测试路由要求 ComfyUI 页面同源,跨源请求直接拒绝;连接测试与主 LLM 通道共用跨主机重定向防护:服务端 3xx 指向其他 host/port 时直接报错,
Authorization不会被转发。 - 连接测试默认拒绝
localhost/内网目标(即使请求来自同源页面);需要测本地 Ollama / LM Studio 时在config.json顶层加"probe_allow_private": true。
本地模型
- 本地 Ollama 用
provider=custom+http://127.0.0.1:11434/v1,并设置OLLAMA_CONTEXT_LENGTH=32768。反推的 custom 非 manual 模式输出预算自动压到 16384,避免 65536 超过本地 32K 上下文;manual 模式尊重手填值。
Translator 的已编译输入:canvas_width/canvas_height(默认 1024)只在粘贴已编译 JSON(abs_centralized/yxyx)时用于反解坐标;按原图尺寸填写,caption/草稿形态不影响译文。
可选功能
AI 定向改稿(⤢改稿)
对已拆解的画布做一句话修改:在「AI 改稿」框(edit_request)写要求(如「把标题改成『秋日』」「右侧加一只猫」),点工具栏 ⤢改稿。
- LLM 只产出操作清单(改描述/改文字/移动缩放/增删条目),不重写整稿;操作带目标指纹校验,指错条目会被拒收并在卡片中列出原因。
- 审批卡逐条采纳:词级 diff 预览、逐条勾选、全部采纳/采纳所选/全部拒绝;🔒锁定画面文字开关可排除改动可见文字的操作;采纳前实时显示文字容量与 token 提示。采纳写入画布后可 ↶撤销,拒绝零副作用。
- 未被提及的元素逐字节不动;选中某条目时自动限定只改该条目。
- 等待期间手改画布 → 提案自动作废(不会覆盖手改);反推写回画布后可直接 ⤢改稿 迭代。
- headless/API:无需前端,
edit_request填要求 +apply_edit=-2,节点输出即改稿结果(自动应用)。 - 改稿指令可通过
agent_md下拉追加(自带示例agents/revision-example.md:写要求的具体化建议)。
图像反推(ImageReverse)
随插件安装,最小接法 LoadImage → MOSS ImageReverse.image。enabled 默认关闭;要用时接好 Editor 后勾选并 Queue,或点 ⚡反推 单次执行。
provider/base_url/model/api_key 与 Editor/Translator 相同(留空读 config.json;本地 Ollama/LM Studio 用 custom + 准确模型 tag + EMPTY)。reverse_mode 提供 concise/standard/detailed/manual 四档:非 manual 使用预设,manual 才启用 temperature/thinking/max_items/max_tokens/image_detail/image_max_side 等细节控件。模式取值、预算与写回细节以节点 tooltip 为准;结果写回 Editor 后需再 Queue 一次。生图前建议关闭/旁路 enabled 的反推,避免完整 Queue 重跑并覆盖画布。
姿势参考(comfyui-pose-gallery)
不接时 Editor / Translator / Compiler 与旧版行为完全一致。需要姿势控制时:
- 用 ComfyUI Manager 或按其 README 安装 comfyui-pose-gallery 到
custom_nodes/,重启 ComfyUI(本地中文姿势图库);本插件只消费其description文本输出,不分发其图片/索引。 - 接法:
Pose Gallery.description → Editor.pose_in;双人时再接pose_in_2。pose_in/pose_in_2也支持手填和 🎯 点选(连线优先)。pose_mode默认自动。注意:📥姿势 只替换 caption 末尾的姿势分段,不清理正文里的旧动作词(反推画布常见"她双手叉腰站在…"式内联描写)——出现矛盾措辞时请用 ⚡拆解 彻底替换。 - 两种注入:⚡拆解(LLM 展开姿势,一次 LLM 调用)与 📥姿势(本地短语版,拆解后免费秒注入);
pose_mode控制自动/强制双人/关闭;检查器可「🔄 对调两人姿势」。 - 文字姿势约束弱于深度图,效果受模型影响;复杂姿势建议 ⚡拆解 +
thinking=low,骨骼级控制请走 pose-gallery 的深度链路。具体控件与注入规则以节点 tooltip 为准。
pose-gallery 许可与免责:其节点代码/画廊页面为 MIT;姿势图片、缩略图与原始数据不适用 MIT,权利归原作者 ギア(@giaaibusi),中文数据由 Anhao 整理(上游:wangweihong/ai-pose-gallery-zh、anhao/ai-pose-gallery-zh)。本插件不分发这些素材,仅运行时读取本地索引/缩略图;请阅读其 LICENSE/NOTICE 并保留署名。其 README 亦提示仅验证部分姿势组,手脚细节与精确关节角度可能偏离参考,请自行评估生成结果。
服装参考(comfyui-costume-gallery)
不接时 Editor / Translator / Compiler 与旧版行为完全一致。需要服装控制时:
- 按 comfyui-costume-gallery 的 README 安装到
custom_nodes/,重启 ComfyUI。该节点没有输出级惰性:即使只接description,每次执行也会解码 PNG,VALIDATE_INPUTS还要求原图存在,因此必须安装完整图库(约 1.42 GiB,其中library/png/约 1.33 GiB);不能只装索引。 - 接法:
Costume Gallery.description → Editor.costume_in;双人时再接第二个 Costume Gallery 的description → costume_in_2。costume_in/costume_in_2也支持手填(连线优先)。costume_mode默认自动,可选关闭做 A/B 对照。也可在「服装参考」面板手填:在 Costume Gallery 自带图库选中服装后复制description文本粘贴过来。 - 两种注入:⚡拆解(LLM 把关键词展开成完整服装描述,一次 LLM 调用)与 📥服装(本地短语版:
分类 / 关键词…→身穿…,拆解后免费秒注入);检查器可「🔄 对调两人服装」,与「对调两人姿势」互不影响。- 📥服装会移除与目标角色重叠的旧服装
object条目(反推草稿常把旧连衣裙/网袜单独拆成 object,不移除会被画回去);不重叠的场景服装(橱窗里的裙子)与背景/配饰不受影响。 - 注意混合:📥服装只追加「;服装:」段;若画布
summary/角色描述里已写有旧衣服(反推草稿尤其常见),模型可能新旧混穿。检测到旧服装措辞时状态行会给出 ⚠;要彻底替换请用 ⚡拆解(LLM 会改写 summary 与角色服装)。
- 📥服装会移除与目标角色重叠的旧服装
- 分配规则:单参考给最突出角色;双参考按 bbox 左右分配(左→
costume_in,右→costume_in_2);也可在画布选中角色后只注入它。服装没有"双人整体"语义。 - 不要把
Costume Gallery.image接到Editor.underlay:underlay 是铺满画布的背景底图,不是 bbox 参考,而且会让 Editor 每次 Queue 都重跑。服装图只用于图库选择,不进主链路。 - 敏感分类:「内衣 / 性感 / 泳装」共 393 条(27.9%)。⚠ 提示是尽力而为:手填或常量节点连线时可读到服装文本,⚡拆解/📥服装 状态行会提示;直接连
Costume Gallery.description(计算输出)时前端读不到文本、可能不提示(📥服装 的后端控制台仍会记录)。均不拦截,走云端 LLM/翻译前请自行确认内容合规。具体控件与注入规则以节点 tooltip 为准。
costume-gallery 的许可与免责条款统一见文末「使用须知与免责声明」。
输入格式(上游契约)
上游 agent 的产物:中文 layout 草稿(abs/xyxy、宽高 16 倍数)或中文散文;画面可见文字在 text 字段原样保留。整段粘贴即可,不需要英文版或备注文件。
提示词注入
四个注入口可叠加:AGENT.md/agent_md(追加持久指令)、system_prompt(整体改写契约)、extra_instructions(连线逐次指令)、extra_body(最后合并请求体)。节点内可直接编辑,具体规则见 tooltip。
升级与兼容
- 旧 Editor 节点(≤v1.7.x 布局):删除后重新添加并重新连线;旧节点/旧连线的布局兼容不在保证范围内。示例工作流基于 v1.7.1 布局,同此处理。
- 旧工作流
widgets_values错位:≤v1.7.2 的控件错位曾导致「运行成功但不出图」(v1.8.0 起canvas_width等已归一);v1.10.0-beta 新增控件的错位(如apply_edit被解成空串致 400)由前端加载归一 + 后端兜底双保险处理,旧工作流直接 Queue 不再报错。 - v1.8.0 参考输入口缺失(issue #1,v1.9.0 已修复):原因是参考输入框被整合进节点内双列面板后 ComfyUI 不再渲染输入口。v1.8.x 的绕过方法:在「姿势参考/服装参考」面板手填(或从图库复制
description粘贴),🎯姿势①② 点选不受影响;v1.9.0+ 已恢复输入口,可直接连线。
测试
python tests/run_tests.py # 147 用例
node --test tests/*.test.mjs # 140 用例(glob 自动包含所有前端测试)
覆盖编译/识别/翻译/反推/连接测试/姿势注入/服装注入,以及前端纯逻辑、生命周期、写回和模式预设。控制台会打印 [MOSS Studio] LLM ... 日志,可用于排查耗时、重试和截断。真实 LLM 的姿势注入对照实验:python tests/bench_ai_draft.py --variants pose_solo,pose_dual,pose_pair(需 config.json)。
版本与更新
- v1.10.0-beta3 Registry 打包:仅增加 Comfy Registry 发布元数据(
pyproject.toml、.comfyignore、手动workflow_dispatch发布工作流)。节点行为与 v1.10.0-beta2 一致,无新节点功能。 - v1.10.0-beta2 多格分镜:检查器 summary 区 canvas 下拉(single/multi_panel,始终可见;collage 未实验不提供);📐模板 新增「条漫 1×3」(1024×1536)与「角色三视图」(1536×1024),「四格分镜」本就是 multi_panel;⚡拆解/⚡反推 产物固定 single——多格模式回退时状态行提示;multi_panel 下 📥姿势/📥服装 自动分配禁用(跨格左右/面积分配语义错误;选中注入、🔄对调、⤢改稿 不受影响,同格双人可切 single 注入后切回、姿势分段无损);README 新增多格分镜 step-by-step。修复:改稿 LLM 偶发漏 reason 字段导致空提案卡(自动补全,不再整卡拒收;指纹/scope/未知字段严格拒收不变)。官方 multi_panel 字段经三条件对照实验(multi_panel vs [PANEL n] vs 纯空间措辞)与真机出图验证。测试 Python 148 / Node 141。
- v1.10.0-beta AI 定向改稿(P1a 全量):Editor 新增 ⤢改稿 + 审批卡(词级 diff/🔒锁定画面文字/lint/采纳带回滚/撤销);LLM 只产 ops(7 种操作 + target 指纹核验 + scope),未被 op 引用的条目逐字节不动;
ui.mps_ops独立通道防版本偏斜;双 sig 锚定防在飞手改碾压;headless 自动应用(edit_request+apply_edit=-2);agents/revision-example.md 示例指令;反推 canvas 写回后引导直接改稿。契约加固:官方编译器 vendor 差分(tests/vendor/compile_prompt_official.py+ 300 例固定种子 fuzz 逐字节一致)+ 编译 item 键序对齐官方;拆解提示词补 3 条官方写作规则(一段文字一个 item/知识图实内容/海报层级);text_fit 补官方处置口径。修复:旧工作流 apply_edit 错位 400(前端归一+后端兜底)、锁文字被全部采纳绕过(B1)、mps_ops 双投递重复开卡(B2)。示例工作流清除失效 base_url/model(401 陷阱)。测试 Python 145 / Node 140;六轮验证(单测→双 ponytail 审查→真机交互→嵌入缝隙→全链路出图+视觉确认→终审 GAP 闭环)。 - v1.9.2:修复画布手调在防抖窗口内 Queue 被静默回滚的问题(翻译节点因此拿不到最新 JSON 的根因;注入前会先采纳防抖窗口内的手改);新增工具栏 ⤓提交 按钮——一键把当前画布冲进 edits 并体检(元素盘点/全局描述字数/尺寸/官方校验/文字容量与 token/归属签名)。Python 120 / Node 131。
- v1.9.1 数据安全:粘贴非法 source 不再清空画布与撤销栈(保留原画布并提示冲突);Queue 前手改 edits 解析失败直接否决提交并提示,不再等后端报错中止整条队列;LLM 输出中途截断(content_filter/网关截断,
finish_reason异常)改为报错重试,绝不静默补全成半截稿。行为回归:layout 出图尺寸恢复跟草稿走(与 v1.8.x 一致;改尺寸用工具栏比例/像素选择器,前端确认后等比缩放所有框)。交互:换图自动启用反推仅在已接reverse_in时生效并同步勾选框 UI(未接线不再弹假提示);注入/服装/提交在飞时改 source 不再重置画布、丢弃结果。健壮性:MiniMax 限流类业务码可重试(仅鉴权/参数/模型不存在判永久);base_url 显式:443/:80与省略写法归一(config key 安全回退不再误拒);snap16.5 边界恒定向上取近;tags/palette 数组只收非空字符串(垃圾元素不再混进编译 prompt);底图保存失败输出日志不再静默。链路审计补漏:直接在 widget 数字框改画布尺寸不再把已拆解布局静默打回散文(守卫提示改用工具栏选择器或 ⚡拆解);换 source 后 700ms 内的手改 edits 不再被错误归属到新 source(拒绝接管并提示,防旧画布冒充新稿);手改 JSON 删掉summary不再崩掉检查器;finish_reason的end_turn/eos/stop_sequence合法变体放行(custom provider 常见);外部 API 传 bool 的apply_pose/costume回落为不注入。可维护性:官方字段集归一compile_prompt单一来源;新增前后端常量对拍测试与 FNV 黄金值(marker/反推预设/词表任一侧漂移即红);两处 ComfyUI 前端内部结构 hack 加降级提示(issue #1 复发路径可感知)。 - v1.9.0:反推三输出(散文/草稿/画布)接入
reverse_in后自动写回(prose/draft 写入 source、canvas 写入 edits,写回后需手动 ⚡拆解),更换上传图片自动启用反推(仅在已接 reverse_in 时生效并同步勾选框);恢复pose_in/costume_in的左侧输入口(issue #1),可直接连线 Costume/Pose Gallery;修复注入结果卡死(队列空自愈 + 超时兜底随 LLM timeout 放宽)与翻译顶层 meta 容错;后端/前端/测试按职责模块化重构,行为兼容 v1.8.x。服装注入不再误删画面文字条目;layout 出图尺寸跟草稿走(与 v1.8.x 一致),改尺寸用工具栏比例/像素选择器(前端确认后等比缩放所有框并写回画布)。Python 106 / Node 130。 - v1.9.0-beta0:纯架构重构版,用户可见行为零变化(节点名/输入输出/工作流兼容性不变)。
py/translate.py(1402 行)拆为 llm_client/agent_md/caption_segments/inject_pose/inject_costume/draft_repair 六个职责模块,原文件保留为门面 re-export;web/js/editor_canvas.js(2705 行)拆为 11 个editor/模块(styles/dom_shell/canvas_render/items/inspector/edits_sync/template_panel/pose_panel/inject_flows/run_status/translator_panel),主文件仅剩组装骨架(441 行);tests/run_tests.py(3237 行)拆为tests/py/11 个用例文件 + 自动收集 runner(新增测试不再需要注册列表)。拆分经逐字节一致校验与行为冒烟轨迹对比验证;Python 102 / Node 128 与拆分前完全一致。测试 runner 勿并发运行(见文件头注释)。 - v1.8.0:新增可选服装注入(comfyui-costume-gallery
description → costume_in(_2)、costume_mode、📥服装、🔄 对调两人服装);caption 改为通用分段解析,姿势/服装/遮挡后缀可共存且互不删除;修复连续快速注入的结果误判(submit token)与反推草稿旧服装 object 残留;新增敏感分类/旧服装混合提示;⚡拆解 改为主色大按钮;Editor/Translator 画布宽高控件类型归一(旧工作流错位导致的「运行成功但不出图」)。Python 102 / Node 128。 - v1.7.2:Editor 布局更新(LLM/AI 选项双列、姿势框双列可调高、
ai_prompt可拉伸、图层全文折行);Translator 译文缓存与非 1024 已编译输入(canvas_width/canvas_height);P0 官方契约修正(caption 纯文本、空meta/tags/palette、非 texttext、bbox 精度);修复 Python/JS 验证器分叉、队列结果归属/重复卡死/事务写回、SSRF 100.64/10、探测错误体限长、agent_md删除锁死、检查器焦点、画布高度与指针清理。Python 90 / Node 112。 - v1.7.1:新增可选姿势注入节点并加固连接测试、缓存与资源生命周期。
设计依据与致谢
- 编译器与校验规则移植自 OpenMOSS/MOSS-Image 官方 skill(
skills/moss-image-prompt-enhancer),保证与官方口径一致;tests/vendor/compile_prompt_official.py为原样引入的官方编译脚本(Apache-2.0,仅测试差分对拍用,不参与运行时),tests/py/test_golden_official.py用它对每个边界语料与 300 例固定种子 fuzz 做逐字节差分。 - 画布交互改编自 swan7-py/json-prompt-visualizer 的 canvas.py(拖拽/缩放/撤销/重叠闸门/坐标换算思路),适配为 ComfyUI 前端扩展。
- 指令文件的追加注入语义参考了 Codex-X 的 Append 托管块设计。
- 姿势图库集成与中文姿势数据来自 wangweihong/comfyui-pose-gallery;感谢开发者 wangweihong,以及原始姿势画作者 ギア(@giaaibusi)与中文数据整理 Anhao。
- 服装图库集成与中文服装数据来自 wangweihong/comfyui-costume-gallery;感谢 wangweihong、Deeyu 与原始素材作者 ギア(@giaaibusi)。
使用须知与免责声明
本项目只提供提示词编辑、翻译和格式转换,本身不生成、不托管、不审核图像内容。请仅用于合法目的,并自行确保输入、生成内容和发布行为符合适用法律法规、目标平台条款及第三方模型/API 政策;API key 由你自行保管。
本项目可选集成 comfyui-pose-gallery 与 comfyui-costume-gallery:两者节点代码均为 MIT(costume-gallery 的 LICENSE 含仅覆盖代码/脚本的 Scope 条款,GitHub 因此把该仓库识别为 NOASSERTION);姿势/服装图片、缩略图与原始数据均不适用 MIT——权利归原作者 ギア(@giaaibusi),中文数据分别由 Anhao(姿势)与 Deeyu(服装)整理,节点与中文版由 wangweihong 维护。本插件不分发这些素材:姿势侧仅运行时读取本地索引/缩略图,服装侧仅消费本地已安装节点输出的 description 文本;请阅读各仓库的 LICENSE/NOTICE.md/THIRD_PARTY_NOTICES.md 并保留署名。
严禁用于制作或传播违法内容(包括 CSAM、非自愿色情、暴力、仇恨、骚扰、恐怖主义、诈骗、虚假信息,以及侵犯他人合法权益的内容),严禁绕过平台安全机制或冒充他人。AI 输出可能不准确或不合适,请自行审核并对使用结果负责;在适用法律允许的范围内,作者与贡献者不对任何直接或间接损失、法律责任或第三方索赔负责。本项目按 MIT 许可"按原样"提供,不附带任何担保;本声明不构成法律建议。
For lawful prompt engineering only. Users are solely responsible for their inputs, outputs, and compliance with applicable laws and third-party terms. No warranty; no liability for misuse.
许可
MIT(见 LICENSE)。