MOSS Layout Prompt 是一款专为 ComfyUI 设计的自定义节点插件,旨在解决 MOSS-Image 模型在生成图像时,JSON Layout 提示词编写繁琐且缺乏直观性的问题。该插件将抽象的坐标与文本输入转化为可视化的画布操作,允许用户直接在画布上绘制边界框,并在右侧面板为每个元素配置属性,最终输出编译后的标准提示词及匹配的画布尺寸。
- GitHub:https://github.com/LinXce/Comfyui-Moss-LayoutPrompt

环境配置与安装部署
该插件作为独立包发布,不与其他插件共享代码,仅依赖 ComfyUI 原生环境。正确的安装与配置是确保画布编辑器正常渲染的前提。
1. 节点安装
将插件目录直接放置于 ComfyUI 的自定义节点目录下,确保最终路径结构为 ComfyUI/custom_nodes/moss-layoutPrompt-LP/。完成后重启 ComfyUI 服务,节点将自动注册至 moss-layoutPrompt-LP 分类下。
2. 工作流加载与依赖说明
- 下载官方提供的
moss-layout-prompt.json示例工作流并拖入 ComfyUI 画布。 - 依赖注意:示例工作流通过
MOSS-Image HF Loader节点加载模型,因此运行该示例前,必须确保已另行安装 MOSS-Image 节点包。 - 在加载器中填写本地模型目录,在画布上绘制布局后点击 Run 即可生成图像。工作流已预设将
prompt输出连接至CLIPTextEncode,将width/height连接至EmptyFlux2LatentImage,确保布局画布与生成图像的像素尺寸严格一致。
核心节点与参数配置
插件提供两个共用同一画布编辑器且输出完全相同的节点,以满足不同稳定性的需求:
1. MOSS Layout Prompt(稳定版)
- 节点 ID:
MOSSImageLayoutPrompt - 定位:适用于需要长期稳定运行的生产工作流。
- 输入:
width、height(须为 16 的正整数倍)以及layout(草稿 JSON)。其layout输入兼容 MOSS-Image 旧版的 scene schema(包含scene_type/gen_brief/elements),节点会自动按当前画布尺寸进行转换。
2. MOSS Layout Prompt (Advance)(实验阶段)
- 节点 ID:
MOSSImageLayoutPromptAdvance - 定位:在稳定版基础上增加了外部草稿输入功能,目前处于实验阶段,输入与行为可能随版本迭代发生变化。
- 新增输入
source:接受外部草稿 JSON、已编译提示词或旧版 scene 提示词。该输入与画布实现双向同步:在source中粘贴内容会载入画布;在画布上的任何修改也会将当前草稿实时写回source。输入框带有source标签条,点击可弹出完整内容的编辑窗口。若无编辑器环境,节点会直接编译source,但前提是画布上没有任何边界框。
共同输出:
prompt:供CLIPTextEncode使用的编译后提示词。width/height:供潜空间节点使用的画布尺寸。
可视化编辑器交互指南
编辑器基于 ComfyUI 前端的 DOM Widget 构建,提供了精细的布局控制能力。
1. 画布尺寸管理
- 预设与自定义:顶部提供“自定义”与“预设”两种模式。预设模式通过选择比例(如 16:9)、长边数值及横竖屏方向自动计算宽高;自定义模式直接输入宽高值。
- 网格吸附:所有输入的尺寸均会自动向上取整,吸附至 16 的倍数,以匹配后端模型的要求。导入外部草稿时同样会触发吸附(仅放大不缩小,防止裁切贴边框)。若加载旧工作流时画布非 16 倍数,系统不会强制修改数据,仅在标题栏提示。
- 信息反馈:卡片标题右侧实时显示百万像素面积(如 2560 × 1440 · 3.69 M)。自定义模式下会显示当前尺寸对应的实际比例。
2. 边界框绘制与调整
- 基础操作:在空白处拖动新建框,框内拖动移动,拖动右下角圆点缩放。支持在右侧面板直接输入
x1, y1, x2, y2像素值或百分比,画布会即时响应。 - 重叠处理:当多个框重叠时,左上角的编号标签条是最佳交互抓手。点击标签条可选中该框,在重叠区重复点击会在堆叠的框之间轮换选中状态,避免拖动冲突。
- 对齐工具:提供“对齐到 8”功能,将所有框的四条边向上取整至 8 的整数倍,确保宽高落在 8 的网格上,便于与 Latent 网格对齐,同时限制框不会塌缩为 0 面积。
3. 属性编辑与元数据
- 右侧面板支持编辑总提示词,以及每个框的
label(object/character/text)、caption(外观描述)和text(文字元素需渲染的具体内容)。 - 校验规则:
caption允许为空,但text框的内容不可为空。若text被删空,分区列表上方会出现常驻警告并标红卡片。 - Meta 标签:以胶囊形式展示,支持回车添加、点击就地编辑及删除操作。
数据流转与编译机制
理解草稿与编译后提示词的区别,是正确使用该插件的关键。
1. 坐标系转换
- 草稿状态:编辑器保存的草稿采用画布左上角为原点的
[x1, y1, x2, y2]绝对像素坐标(xyxy 格式)。 - 编译输出:执行时,节点会将每条坐标减去画布中心点,并重排为
yxyx格式,最终生成 MOSS-Image 所需的abs_centralized提示词。若画布上没有框,草稿将退化为纯文本的 summary caption。
2. 编译结果预览与导出
- 底部预览区支持在 JSON(规范写法,反斜杠转义)与文本(还原反斜杠,便于阅读)之间切换。
- 提供“复制”(复制当前编译结果)与“复制草稿”(复制含画布尺寸与原始坐标的完整草稿)功能。若要完整还原编辑状态,必须使用“复制草稿”。
3. Source 输入的容错解析
Advance 节点的 source 输入采用了极度宽松的解析策略,以适应复杂的提示词传递场景:
- 自动提取:能够自动从夹杂无关文字或代码块的文本中提取 JSON 对象;支持拆解
{"layout": ...}等外层信封(最多四层)。 - 语法修补:针对提示词处理中常见的括号转义(如
\( \)被误认为 JSON 非法转义),解析器会预先修补反斜杠,确保读入节点后caption仍保留\(。 - 反解能力:若导入的是已编译的
abs_centralized/yxyx提示词或旧版提示词,节点会根据当前的width/height反解回草稿坐标。若反解后的框超出画布,会围绕中心等比缩放。
前端兼容性与已知限制
- 前端要求:画布编辑器依赖支持 DOM Widget 的 ComfyUI 前端。若前端版本过低不支持该特性,节点仍可正常运行,但用户需退化为在
layout文本框中手动编写 JSON。 - 数据覆盖逻辑:在 Advance 节点中,编辑或粘贴
source会立即重新应用并载入画布;反之,画布的修改会同步写回source。只要画布上存在边界框,系统始终以画布草稿为准,刷新界面或执行生成不会重放过期的source内容。
© 版权声明
文章版权归作者所有,未经允许请勿转载。














