ComfyPilotComfyPilot
文档 / 教程 / MOSS-Image 在 ComfyUI 中:文生图、编辑与布局工作流

MOSS-Image 在 ComfyUI 中:文生图、编辑与布局工作流

在 ComfyUI 中本地运行 MOSS-Image:这是一个 5B 开放权重的图像模型,支持提示词增强、布局框、编辑 LoRA 以及从照片进行深度控制。

教程 moss-image 更新于 2026-11-02

查看官方原文

MOSS-Image 在 ComfyUI 中:文生图、编辑与布局工作流

在 ComfyUI 中本地运行 MOSS-Image:这是一个 5B 开放权重的图像模型,支持提示词增强、布局框、编辑 LoRA 以及从照片进行深度控制。

关于 MOSS-Image

MOSS-Image 是 OpenMOSS 的开放权重文生图模型:一个 5B 单流 DiT,可将完整的场景描述转换为一张成品图像。它在文字与排版至关重要的场景中表现最出色,因为它能渲染英文与中文字体,可接受约 4K token 的提示词,并且能读取描述每个对象和每行文字所在位置的 JSON 布局。权重以 Apache 2.0 发布,因此只需下载一次,即可在自己的 GPU 上运行,无需 API 密钥,也没有按图像计费的积分。

该系列包含两个模型。模板加载的是经过指令微调的 SFT 模型:它对文本的分组和场景的排布更整洁。Base 模型没有经过后训练,也没有进行 CFG 蒸馏,因此成为社区 LoRA 的起点。两者在同一节点图中运行,因此切换模型只需更换一个加载器。

在 ComfyUI 中,该模型以 int8 和 bf16 的单文件模型运行,文本编码器使用以 moss_image 类型加载的 Qwen3.5 9B,VAE 使用 FLUX.2 small VAE。文生图模板还内置了提示词增强器,它会在采样之前把简短的请求改写为完整的描述,所使用的正是模型本身已经需要的那个文本编码器。

模型亮点:

  • 5B 单流 DiT,支持英文与中文双语文字渲染
  • 原生布局引导:画出盒子,为每个盒子指定文字,文字盒子会渲染出自身的文字
  • 文生图模板内置提示词增强器,一句话的想法就足够
  • 两个模型:SFT 适合更整洁的布局,Base 适合微调与 LoRA 工作
  • 约 4K token 的长提示词,以及宽高均为 16 的倍数的画布尺寸

许可证:Apache 2.0

相关链接:

版本要求:四个文生图模板需要 ComfyUI 0.42.0 或更高版本。图像编辑与颜色/深度控制模板需要 0.43.0 或更高版本。

[!TIP] > [tab] 本地用户 > > 请确保你的 ComfyUI 已经更新。 > > ComfyUI 下载 > ComfyUI 更新教程 > > 本指南里的工作流可以在工作流模板中找到。如果找不到,可能是 ComfyUI 没有更新。 > > 如果加载工作流时有节点缺失,可能原因有: > > 1. 你用的不是最新版(每夜版)。 > 2. 启动时有些节点导入失败。 > [tab] 云端用户 > > * Cloud 会在 ComfyUI 稳定版本发布后更新。 > > 所以,如果你发现本文档中有任何核心节点缺失,可能是因为新核心节点尚未在最新稳定版中发布。请等待下一个稳定版发布。

MOSS-Image 工作流

四个文本到图像模板都使用同一个子图。打开该子图即可访问加载器、采样器和画布尺寸。编辑模板以及颜色/深度模板使用各自的图,具体说明见下文对应章节。

[card] 了解子图 此工作流使用子图节点进行模块化处理。请查看子图文档,了解如何自定义和扩展工作流。

MOSS-Image:文本到图像

仅凭提示词生成图像,无需输入文件。提示词增强器已开启,因此简短描述会在进入模型之前扩展为完整描述。实际使用的描述会显示在 Preview Any 中。

MOSS-Image 文本到图像工作流预览

[card] 下载工作流 下载 JSON,或在模板库中搜索 "MOSS-Image: Text to Image"

开始使用

  1. 将 ComfyUI 更新到 0.42.0 或更高版本
  2. 转到 模板 并搜索 MOSS-Image
  3. 选择 MOSS-Image: Text to Image
  4. 下载 模型下载 中列出的模型
  5. 在正向提示词中输入你的想法,然后点击 队列

MOSS-Image Base:文生图

同一张工作流图,只是加载了 Base checkpoint。可用于将原始输出与 SFT checkpoint 进行对比,或作为 LoRA 训练的起点。

MOSS-Image Base 文生图工作流预览

[card] 下载工作流 下载 JSON,或在模板库中搜索 "MOSS-Image Base: Text to Image"

示例输出

MOSS-Image Base 文生图示例输出

开始使用

  1. 将 ComfyUI 更新至 0.42.0 或更高版本
  2. 进入 模板,搜索 MOSS-Image Base
  3. 选择 MOSS-Image Base: Text to Image
  4. 下载 模型下载 中列出的模型,包括 moss_image_base_int8_convrot.safetensors
  5. 在正向提示词中输入你的想法,然后点击 队列

MOSS-Image:布局引导的文本到图像

根据提示词加上你绘制的布局生成图像。打开 Create Bounding Boxes,为每个元素拖出一个盒子;每个盒子都带有自己的描述文本,标记为文本的盒子会在其中渲染对应文本。MOSS-Image Layout Prompt 会把盒子转换成模型读取的布局提示词,因此盒子里的描述与你写的场景提示词都会被使用。

先绘制背景盒子,最后绘制前景元素:盒子按你绘制的顺序输出。如果你把某个盒子标记为文本,它就会被标注为 text,否则标注为 object。若要把一个包含人物的盒子标注为角色,请在 MOSS-Image Layout Prompt 的 character_boxes 中列出该盒子在 Create Bounding Boxes 预览里的编号,例如 1, 3。指向文本盒子的编号不会生效。两个布局模板都已填好该字段(SFT 中为 2,Base 中为 1),因此在加入队列之前,请对照你自己的盒子核对一下。

在至少连接一个盒子的情况下,MOSS-Image Layout Prompt 会输出一段 JSON 提示词:一段场景描述加上每个盒子对应的一项。布局模板默认关闭 enable_prompt_enhancer,因此这段 JSON 会原样传给模型。开启后,提示词增强器会改写文本,这可能会把盒子丢掉。

MOSS-Image 布局引导的文本到图像工作流预览

[card] 下载工作流 下载 JSON,或在模板库中搜索 "MOSS-Image: Layout-Guided Text to Image"

示例输出

MOSS-Image 布局引导的文本到图像示例输出

开始使用

  1. 将 ComfyUI 更新至 0.42.0 或更高版本
  2. 进入 模板 并搜索 MOSS-Image,然后选择布局变体
  3. 下载 模型下载 中列出的模型
  4. 在 Create Bounding Boxes 中为每个元素绘制一个盒子,然后为每个盒子输入描述文本。对于文本盒子,输入你希望渲染的文本
  5. 在提示词中描述整体场景,然后点击 队列

MOSS-Image Base:布局引导的文本到图像

使用 Base checkpoint 的布局工作流。当你想要比较两个模型如何遵循相同的盒子布局时,这个工作流会很有用。

MOSS-Image Base 布局引导的文本到图像工作流预览

[card] 下载工作流 下载 JSON,或在模板库中搜索 "MOSS-Image Base: Layout-Guided Text to Image"

示例输出

MOSS-Image Base 布局引导的文本到图像示例输出

开始使用

  1. 将 ComfyUI 更新到 0.42.0 或更高版本
  2. 转到 模板,搜索 MOSS-Image Base,然后选择布局变体
  3. 下载模型下载中列出的模型,包括 moss_image_base_int8_convrot.safetensors
  4. 绘制盒子,为每个盒子添加描述,并撰写场景提示词
  5. 点击 队列

MOSS-Image:图像编辑

使用简短指令编辑一张照片。编辑 LoRA 运行在 SFT checkpoint 之上,你的指令会与来源图像一起编码,因此采样器会重绘同一画面,并且只应用所描述的更改。颜色、材质、服装和背景替换会保持面部、头发、姿势和构图不变。

需要 ComfyUI 0.43.0 或更高版本。

MOSS-Image 图像编辑工作流预览

[card] 下载工作流 下载 JSON 或在模板库中搜索 "MOSS-Image: Image Edit LoRA"

输入素材

[card] two\_women\_berets\_floral\_jackets.png 加载到 Load Image。任何照片都可以:该工作流会将其缩放到 1.0 MP 并保持其宽高比。

开始使用

  1. 更新 ComfyUI 到 0.43.0 或更高版本
  2. 转到 模板 并搜索 MOSS-Image: Image Edit
  3. 下载模型下载中列出的模型,包括 moss_image_edit_lora_rank_64_bf16.safetensors
  4. 加载要编辑的照片,并仅在正向提示词中描述更改
  5. 点击 队列

编辑技巧

  • 按照 LoRA 训练时的方式描述更改。 Change only the X to Y. Keep the character, face, hair, pose, background and composition unchanged. 效果最好。像 “improve it” 这样含糊的指令会给模型过多自由度。
  • 将 edit_format 保持为 Moss-Image-Edit。 两个编码节点都必须使用 LoRA 训练时所用的值。不同的值仍会返回图像,但人物身份、构图和精细细节会偏离来源图像。
  • 将 CFG 保持在 4.0。 负面分支对该 LoRA 很重要。较低的值可能会添加来源照片中不存在的项链等配饰。
  • 最多连接四个参考图。 连接后,编码节点会增加额外槽位,因此服装、面部和道具可以分别放入。在提示词中说明每张参考图的用途。

MOSS-Image:颜色与深度控制

在保持照片几何结构不变的同时,重新调整姿态并重塑风格。工作流使用 MoGe 3 估算参考图的几何结构,并通过控制适配器 LoRA 将其传递给模型,因此姿态、构图和轮廓由映射图保持,而提示词决定角色、服装、场景和光照。

需要 ComfyUI 0.43.0 或更高版本。

MOSS-Image 颜色与深度控制工作流预览

[card] 下载工作流 下载 JSON,或在模板库中搜索 "MOSS-Image: Color & Depth Control"

输入素材

[card] fashion\_portrait\_red\_canyon.png 加载到 Load Image。工作流会从中估算几何结构,因此任何光照清晰的肖像都可以使用。

开始使用

  1. 将 ComfyUI 更新到 0.43.0 或更高版本
  2. 转到 模板,然后搜索 MOSS-Image: Color & Depth Control
  3. 下载模型下载中列出的模型,包括 moss_image_color_depth_control.safetensors 和 moge_3_vitg_fp16.safetensors
  4. 加载参考照片,并描述你想要的角色和场景
  5. 点击 队列

控制技巧

  • Render MoGe Geometry 默认使用遮罩。 仅控制轮廓。当面部轮廓、肩部和背景衰减也应跟随参考图时,将其切换为 depth:姿态会更严格,提示词的空间会更小。
  • end_percent 设置映射图保持多久。 在 0.6 时,最后几步会自由渲染表面和光照。在 1.0 时,几何结构会固定到最后一步。
  • LoRA 是让映射图生效的关键。 控制适配器会在控制节点之前加载,缺少它时该节点不会产生效果。
  • 当估算结果不正确时,可以手动绘制映射图。 Painter 已包含在画面中:将其输出连接到 depth_map,近处为白色,远处为黑色。color_map 默认未连接,每个区域使用一种纯色,并且必须与输出尺寸匹配。

MOSS-Image 模型下载

模型文件在 Hugging Face 上的 Comfy-Org/MOSS-Image 仓库中,MoGe 3 几何估算模型除外,它在 Comfy-Org/MoGe。模板加载的是 int8 模型;两个模型的 bf16 版本也在同一仓库中,适合显存更大的情况。

[card] moss\_image\_sft\_int8\_convrot.safetensors 扩散模型,指令微调模型。由两个 SFT 模板加载。
[card] moss\_image\_base\_int8\_convrot.safetensors 扩散模型,Base 模型。由两个 Base 模板加载。
[card] qwen3.5\_9b\_w4a8\_gptq.safetensors 四个文生图模板和图像编辑模板使用的文本编码器。用 CLIPLoader 类型 moss_image 加载。
[card] qwen3.5\_9b\_int8\_convrot.safetensors 颜色与深度控制模板加载的文本编码器。其他模板使用上面的 w4a8 版本。
[card] flux2-vae\_small.safetensors MOSS-Image 使用的 VAE。
[card] moss\_image\_edit\_lora\_rank\_64\_bf16.safetensors 编辑 LoRA,297 MB。由图像编辑模板加载。
[card] moss\_image\_color\_depth\_control.safetensors 颜色/深度控制适配器 LoRA,313 MB。由颜色与深度控制模板以强度 1.0 加载。
[card] moge\_3\_vitg\_fp16.safetensors MoGe 3 几何估计器,2.50 GB。由颜色与深度控制模板使用。来自 Comfy-Org/MoGe。

模型存放位置

📂 ComfyUI/
├── 📂 models/
│   ├── 📂 diffusion_models/
│   │      ├── moss_image_sft_int8_convrot.safetensors
│   │      └── moss_image_base_int8_convrot.safetensors
│   ├── 📂 text_encoders/
│   │      ├── qwen3.5_9b_w4a8_gptq.safetensors
│   │      └── qwen3.5_9b_int8_convrot.safetensors
│   ├── 📂 vae/
│   │      └── flux2-vae_small.safetensors
│   ├── 📂 loras/
│   │      ├── moss_image_edit_lora_rank_64_bf16.safetensors
│   │      └── moss_image_color_depth_control.safetensors
│   └── 📂 geometry_estimation/
│          └── moge_3_vitg_fp16.safetensors
[!NOTE] bf16 版本 moss_image_sft_bf16.safetensors 和 moss_image_base_bf16.safetensors 位于同一仓库中。如果显存足够,可以在 UNET Loader 中换用它们。

提示技巧

  • 描述最终图像,而不是提出请求。 该模型是在描述文本上训练的,因此请写出画面看起来是什么样,而不是写“帮我做一张海报”这样的指令。提示词增强器遵循同一规则,所以简短提示词仍然有效。
  • 基础模型也读标签序列。 关闭提示词增强器后,MOSS-Image-Base 既接受描述文本,也接受逗号分隔的标签,顺序为质量、评分、元信息、年份、角色、作品、画师,最后是通用标签,例如 best quality, highres, hatsune miku, vocaloid, @foo bar, 1girl, blue hair。
  • 关闭提示词增强器以控制措辞。 在子图节点上将 enable_prompt_enhancer 设为 false,提示词就会原样传给模型。开启提示词增强器时,prompt_enhancer_seed 会改变提示词的改写方式。两种设置都会在 Preview Any 中显示结果,因此可以对比。
  • 自行控制换行。 自动换行可能不会落在你期望的位置。当换行位置很重要时,在要渲染的文本中放入实际换行符或 \n。
  • 位置很重要时,使用布局工作流。 框会为每个元素和每个文本块向模型提供明确的位置,这比用文字描述位置更可靠。
  • 将画布保持在推荐范围内。 ResolutionSelector 选择宽高比和像素数(默认 1 MP)。推荐输出范围为 1 MP 至 2 MP,模型可在约 0.25 MP 至 4 MP 之间外推;宽度和高度必须是 16 的倍数。
  • 从模板设置开始,然后为官方效果放慢速度。 模板使用 er_sde 采样器、以 CFG 2.5 运行 25 步。基础模型的官方设置是 euler 采样器、CFG 3、50 步,因此如果结果效果不足,可以尝试这些设置。
  • 在基础模型上为短提示词调高 CFG。 基础模型的官方 CFG 范围是 3.0 到 6.0,高于模板的 2.5。短提示词要关闭提示词增强器才能原样传给模型:长提示词保持 3.0,需要时再调高。
  • 保持负面提示词简短。 模板默认附带 nsfw, worst quality, bad anatomy, watermark, jpeg artifact。
  • 跳过层引导使用第 22 层。 子图节点上有一个 SLG 开关,22 是官方层号。关闭它可能看起来更真实,但可能丢失细节;其他层只能在子图内部调整。
  • 基础模型用于微调。 在 MOSS-Image 上训练 LoRA 时,请冻结文本编码器。

高于 2 MP 的输出

推荐输出范围是 1 MP 至 2 MP,模型最多可外推到约 4 MP。再大的尺寸就落在外推范围之外,因此大图要靠分步放大,而不是一次画一张巨大的画布。

模板给采样器接的是固定的 Empty Flux 2 Latent,所以这一步要在子图里改:

  1. 第一遍在 1 MP 或 2 MP 下渲染。
  2. 解码结果,用 Upscale Image 在像素空间放大,再用 VAE Encode 编码回去。直接放大潜空间是对潜张量重采样,丢掉的细节第二遍补不回来。
  3. 把编码后的潜空间接到采样器上,替换 Empty Flux 2 Latent,1.5 倍放大时把 denoise 设为约 0.6:更低会保留第一遍,更高会重做构图。

重复“放大再重绘”,不要直接跳到最终尺寸。从 2 MP 一次跳到 8K 往往只是重复细节而不是增加细节,而 8K 画布需要 VAE Decode (Tiled)。

参考图与提示词增强器

子图节点上有一个可选的 ref_image (for llm) 输入。它只进入提示词增强器,不进入扩散模型:MOSS-Image 本身没有图像输入,无法照搬参考图。提示词增强器开启时,图像会影响它写出的描述文本;关闭时,这个输入会被忽略。

提示词增强器跑在模型本来就要加载的 Qwen3.5 文本编码器上,通过 Generate Text 节点执行,系统提示词取自官方的 MOSS-Image 提示词增强 skill。输出长度由 max_length 控制,模板中是 4096 token。在 MOSS-Image: Text to Image 和 MOSS-Image Base: Text to Image 模板里,prompt_enhancer_seed 可以复现同一段描述,Preview Any 显示最终送到采样器的文本。