
布局 JSON 提示词实战用 MOSS-Image 把「方框」画成真图【免费下载链接】MOSS-Image项目地址: https://ai.gitcode.com/hf_mirrors/Comfy-Org/MOSS-Image文生图模型最强的地方是「写意」最头疼的地方是「定位」。你告诉模型海报上方一个大标题、下方一张产品图它常常把标题放到中间把产品图画到角落里甚至把中文渲染成一团乱码。这是所有自然语言扩散模型的通病提示词描述的是应该有什么而不是东西在哪里。OpenMOSS 团队开源的 MOSS-Image 系列给出了一个不同的思路——把「方框」直接写进提示词。模型原生支持一种带空间坐标的 JSON Layout 提示词你用包围盒bounding box框定每个文字块和物体的位置、尺寸与层级模型按图索骥地填空。这一能力在社区中引发了不小的讨论多家媒体将 MOSS-Image 的布局 JSON 与 FLUX 3 的方框控制并称为把方框放入提示词的两种方式也有开发者专门撰文拆解其 Prompt Enhancer 工作流。本文基于官方用户指南与本仓库ComfyUI 重打包版的工程细节逐字段拆解 Layout JSON并用同一句话做有布局/无布局的对照实战。一、布局 JSON 是什么从方框到画面的控制协议MOSS-Image 是 OpenMOSS 的 5B 参数单流 DiTDiffusion Transformer文生图模型支持三种提示词输入形态自然语言提示词、逗号分隔的 Tag 标签序列以及带包围盒坐标的 JSON Layout。其中 Layout 是官方定位为实验性、但能力最强的形态——它把一次生成从描述式扩散变成了结构化排布summary.caption描述整张画面的内容、风格与氛围相当于全局设计说明items数组逐条声明每个元素是文字还是物体、长什么样、渲染什么内容、落在画布的哪个方框里。模型允许自然语言与结构化输入混合使用也就是说你既可以把全部信息塞进 JSON也可以只把关键的文字和物体框出来其余交给summary.caption自由发挥。这种全局描述 局部方框的设计正是 MOSS-Image 能同时做到复杂中文渲染与精确构图控制的核心。官方指出相比近期一些工作采用的相对坐标方案使用绝对像素坐标更适配跨分辨率、跨长宽比的布局控制——这直接决定了下面字段的语义。本仓库是该模型面向 ComfyUI 的重打包版本目录结构见 README.mddiffusion_models/下提供 Base 与 SFT 各两个变体moss_image_base_bf16.safetensors、moss_image_sft_bf16.safetensors及 INT8 量化版text_encoders/提供 Qwen3.5-9B 文本编码器的 BF16 / INT8 / W4A8-GPTQ 三档精度vae/则内置 FLUX.2 的 VAE 与小型解码器。部署时按该目录结构放入 ComfyUI 的models/对应子目录即可被原生节点加载。二、逐字段拆解坐标、尺寸、层级与中文标注官方用户指南给出的 Layout 标准格式如下此处为便于阅读做了格式化实际喂给模型的是单行 JSON{ summary: { meta: [poster], canvas: single, caption: A minimalist travel poster with a cream background, a blue mountain illustration, and the title EXPLORE at the top. }, items: [ { label: text, caption: Large dark-blue uppercase title centered at the top., text: EXPLORE, bbox: [-416, -384, -288, 384] }, { label: object, caption: A flat blue mountain illustration in the lower center., bbox: [-192, -288, 384, 288] } ], bbox_coord_space: abs_centralized, bbox_format: yxyx }顶层字段画布与坐标系summary.meta可选的媒介/风格标签数组如[poster]、[product campaign, studio photography]帮助模型把握画面整体品类summary.canvas画布组织方式取值single单图、multi_panel多格或collage拼贴summary.caption全局场景与风格描述决定画面内容基调bbox_format: yxyx包围盒四个数值的顺序是[y_min, x_min, y_max, x_max]即先上下、再左右bbox_coord_space: abs_centralized以画布中心为原点的绝对像素坐标x 轴向右增大、y 轴向下增大。对 1024×1024 的画布两个轴的范围都是 -512 到 512。从传统左上角为原点的坐标换算过来只需把横坐标减去W/2、纵坐标减去H/2。items 元素label、caption、text 与 bboxlabel元素类别取object物体、character角色或text文字三种caption该元素的可见外观描述——文字元素需描述字体、字号、字重、颜色等排版特征物体元素描述材质、角度与光影text仅text元素必填字段值必须是被精确渲染的可见字符串中文逐字保留、不得转写或翻译bbox包围盒坐标配合上面的yxyx与abs_centralized语义使用。中文标注的三条铁律原文精确入框要渲染的中文必须原样写进text字段多行文字用\n显式换行。官方示例中的便签写法是记得买牛奶和鸡蛋\n牛奶两盒鸡蛋一打。\n顺便带一袋面包。逐字渲染不增不减文字块独立成条需要独立定位的每一段文字都要拆成单独的items元素各行、各块互不干扰先定尺寸再定坐标坐标是相对画布计算的生成尺寸必须与 Layout 坐标空间一致——用 1024×1024 画的方框就用 1024×1024 出图否则文字和元素会整体偏移。Python API 要求宽高为16 的正整数倍。不要让模型手算坐标Prompt Enhancer 的职责MOSS-Image 系列原生支持布局但也带来了更高的使用门槛。官方为此提供了两套布局增强方案其中免训练方案是一个名为moss-image-prompt-enhancer的 Agent 技能把画面想法、期望输出形态caption 或 Layout与画布尺寸发给它它负责创意决策自带脚本负责坐标运算与序列化全程不调用任何图像生成服务。该技能内部采用两套坐标系分工草稿 JSON 使用便于人理解的bbox_coord_space: absbbox_format: xyxy从画布左上角计数的真实像素再通过scripts/compile_prompt.py编译成模型需要的abs_centralizedyxyx单行 JSON并自动完成中心化换算、越界校验与整型化。用户永远不需要手算yxyx中心化坐标——这正是 Layout 提示词从能用到好用的关键一步。三、实战同一句话有布局和无布局的成图差异以官方推荐的冰箱便签场景为例。先用纯自然语言A wide view of a refrigerator beside a kitchen counter with a fruit bowl. A small sticky note on the refrigerator door is handwritten in Chinese: 记得买牛奶和鸡蛋 牛奶两盒鸡蛋一打。 顺便带一袋面包。这段提示词完全依赖模型自主布局便签贴在哪、多大、字多粗都由扩散过程猜。模型虽然内置了自动换行能力但断行位置与文字落点不一定符合预期——可能便签太小装不下三行字也可能文字被挤到冰箱边缘。改用 Layout 后把便签这一元素用方框钉死在画布右下区域{ summary: { meta: [kitchen photo], canvas: single, caption: A wide view of a refrigerator beside a kitchen counter with a fruit bowl. }, items: [ { label: object, caption: A silver refrigerator with a fruit bowl on the counter beside it., bbox: [-416, -400, 96, 384] }, { label: text, caption: A small yellow sticky note handwritten in Chinese, three lines, clear readable handwriting., text: 记得买牛奶和鸡蛋\n牛奶两盒鸡蛋一打。\n顺便带一袋面包。, bbox: [-64, 128, 384, 416] } ], bbox_coord_space: abs_centralized, bbox_format: yxyx }出图时用json.dumps(layout, ensure_asciiFalse)序列化后作为正向提示词传入其余设置完全不变。同一句话、同一模型、同一种子下有布局的版本便签位置、字号、行数都落在方框语义内——方框不是画一个框的指令而是给模型的一块定位画布。配套采样参数与 ComfyUI 落地再精确的布局也需要正确的采样设置配合。官方默认参数为Flow-matching Euler 采样器、50 步、CFG 3.0、Shift 5.0、负分支在层索引 22 处跳过uncond_skip_layers[22]、负向提示词留空。SLGSkip Layer Guidance关闭时画面会更写实但细节容易塌陷换用 24、26 等跳过层也能改善画质。调试时建议锁定随机种子如manual_seed(42)一次只改一个变量只动 caption、或只移一个 bbox便于归因是描述问题还是坐标问题。在 ComfyUI 中本仓库的模型配合原生插件即可运行官方工作流默认即 50 步 / CFG 3 / Shift 5 / 层 22 负分支跳过以 1024×1024 出图。文件按 README.md 的目录结构放入后即可加载。Base 与 SFT 的选型策略同一份 Layout 提示词MOSS-Image-SFT 的文字分组更清晰、白板式排版更规整Base 则保留更多训练原始信息适合做 LoRA 微调底座与结构实验。目标如果是海报、白板笔记这类文字密集画面建议在 SFT 上出最终稿日常通用生成与可控性实验用 Base 即可。小结MOSS-Image 的布局 JSON 提示词把提示词工程从修辞学变成了几何学summary管内容与风格items管元素与方框abs_centralizedyxyx管坐标系text字段管逐字渲染。同一句话纯文本靠模型猜布局Layout 靠方框定布局——前者是请帮我排版后者是按这个版式渲染。配合 Prompt Enhancer 的自动坐标编译上手成本进一步被压低。如果你正被文字乱飞、位置失控困扰不妨把方框写进提示词让模型在你的画布里完成创作。【免费下载链接】MOSS-Image项目地址: https://ai.gitcode.com/hf_mirrors/Comfy-Org/MOSS-Image创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考