{
  "id": "e8f30439-267f-45de-b260-db0d114b2c85",
  "revision": 0,
  "last_node_id": 32,
  "last_link_id": 51,
  "nodes": [
    {
      "id": 9,
      "type": "SaveImage",
      "pos": [
        850,
        0
      ],
      "size": [
        570,
        700
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 22
        }
      ],
      "outputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "widgets_values": [
        "moss_image_t2i_base"
      ],
      "widgets_values_named": {
        "filename_prefix": "moss_image_t2i_base"
      }
    },
    {
      "id": 18,
      "type": "3301b744-2960-415a-83b0-fe8a89d99fdb",
      "pos": [
        330,
        0
      ],
      "size": [
        430,
        680
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "label": "positive_prompt",
          "name": "value",
          "type": "STRING",
          "widget": {
            "name": "value"
          },
          "link": null
        },
        {
          "label": "enable_prompt_enhancer",
          "name": "switch",
          "type": "BOOLEAN",
          "widget": {
            "name": "switch"
          },
          "link": null
        },
        {
          "label": "negative_prompt",
          "name": "text",
          "type": "STRING",
          "widget": {
            "name": "text"
          },
          "link": null
        },
        {
          "name": "width",
          "type": "INT",
          "widget": {
            "name": "width"
          },
          "link": 40
        },
        {
          "name": "height",
          "type": "INT",
          "widget": {
            "name": "height"
          },
          "link": 41
        },
        {
          "label": "SLG",
          "name": "switch_1",
          "type": "BOOLEAN",
          "widget": {
            "name": "switch_1"
          },
          "link": null
        },
        {
          "label": "unet_model",
          "name": "unet_name",
          "type": "COMBO",
          "widget": {
            "name": "unet_name"
          },
          "link": null
        },
        {
          "label": "clip_model",
          "name": "clip_name",
          "type": "COMBO",
          "widget": {
            "name": "clip_name"
          },
          "link": null
        },
        {
          "label": "vae_model",
          "name": "vae_name",
          "type": "COMBO",
          "widget": {
            "name": "vae_name"
          },
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            22
          ]
        }
      ],
      "properties": {
        "previewExposures": []
      },
      "widgets_values": [
        "Black-and-white grunge event poster: a model in an oversized black hoodie and wide black trousers sits low on a concrete floor, photographed from a low wide angle so the sneakers are huge in the foreground, grey concrete wall behind, torn newspapers lying scattered on the floor around them. The word \"MOSS\" is set in gigantic heavy condensed capitals filling the top half of the poster behind the figure, slightly cropped by the frame edges. Along the bottom a grid of small info blocks separated by thin rules: \"SATURDAY\" and \"01 SEPT 2026\" and \"DOORS OPEN 10:00 PM\" on the left, \"MOSS IMAGE\" with \"TEXT / LAYOUT / TYPE\" in the middle, \"SUPPORTING ACT\" with \"MOSS\" on the right, and a barcode block in the bottom right corner. Monochrome, high contrast, fine film grain, editorial print, paper texture.",
        true,
        "nsfw, worst quality, bad anatomy, watermark, jpeg artifact",
        1024,
        1024,
        516372714759857,
        25,
        2.5,
        true,
        "er_sde",
        "simple",
        "moss_image_base_int8_convrot.safetensors",
        "qwen3.5_9b_w4a8_gptq.safetensors",
        "flux2-vae_small.safetensors"
      ],
      "widgets_values_named": {
        "value": "Black-and-white grunge event poster: a model in an oversized black hoodie and wide black trousers sits low on a concrete floor, photographed from a low wide angle so the sneakers are huge in the foreground, grey concrete wall behind, torn newspapers lying scattered on the floor around them. The word \"MOSS\" is set in gigantic heavy condensed capitals filling the top half of the poster behind the figure, slightly cropped by the frame edges. Along the bottom a grid of small info blocks separated by thin rules: \"SATURDAY\" and \"01 SEPT 2026\" and \"DOORS OPEN 10:00 PM\" on the left, \"MOSS IMAGE\" with \"TEXT / LAYOUT / TYPE\" in the middle, \"SUPPORTING ACT\" with \"MOSS\" on the right, and a barcode block in the bottom right corner. Monochrome, high contrast, fine film grain, editorial print, paper texture.",
        "switch": true,
        "text": "nsfw, worst quality, bad anatomy, watermark, jpeg artifact",
        "width": 1024,
        "height": 1024,
        "seed": 516372714759857,
        "steps": 25,
        "cfg": 2.5,
        "switch_1": true,
        "sampler_name": "er_sde",
        "scheduler": "simple",
        "unet_name": "moss_image_base_int8_convrot.safetensors",
        "clip_name": "qwen3.5_9b_w4a8_gptq.safetensors",
        "vae_name": "flux2-vae_small.safetensors"
      }
    },
    {
      "id": 19,
      "type": "ResolutionSelector",
      "pos": [
        10,
        350
      ],
      "size": [
        280,
        190
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "showAdvanced": true,
      "inputs": [],
      "outputs": [
        {
          "name": "width",
          "type": "INT",
          "links": [
            40
          ]
        },
        {
          "name": "height",
          "type": "INT",
          "links": [
            41
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ResolutionSelector"
      },
      "widgets_values": [
        "1:1 (Square)",
        1,
        16
      ],
      "widgets_values_named": {
        "aspect_ratio": "1:1 (Square)",
        "megapixels": 1,
        "multiple": 16
      }
    },
    {
      "id": 30,
      "type": "MarkdownNote",
      "pos": [
        -1170,
        -40
      ],
      "size": [
        580,
        630
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "Guide: [Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Model Links\n\n- [Hugging Face:Comfy-Org/MOSS-Image](https://huggingface.co/Comfy-Org/MOSS-Image)\n\n**diffusion_models**\n\n- [moss_image_base_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_base_int8_convrot.safetensors) (5.04 GB)\n\n**text_encoders**\n\n- [qwen3.5_9b_w4a8_gptq.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors) (9.08 GB)\n\n**vae**\n\n- [flux2-vae_small.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae_small.safetensors) (249.5 MB)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│   ├── 📂 diffusion_models/\n│   │   └── moss_image_base_int8_convrot.safetensors\n│   ├── 📂 text_encoders/\n│   │   └── qwen3.5_9b_w4a8_gptq.safetensors\n│   └── 📂 vae/\n│       └── flux2-vae_small.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
      ],
      "widgets_values_named": {
        "text": "Guide: [Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Model Links\n\n- [Hugging Face:Comfy-Org/MOSS-Image](https://huggingface.co/Comfy-Org/MOSS-Image)\n\n**diffusion_models**\n\n- [moss_image_base_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_base_int8_convrot.safetensors) (5.04 GB)\n\n**text_encoders**\n\n- [qwen3.5_9b_w4a8_gptq.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors) (9.08 GB)\n\n**vae**\n\n- [flux2-vae_small.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae_small.safetensors) (249.5 MB)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│   ├── 📂 diffusion_models/\n│   │   └── moss_image_base_int8_convrot.safetensors\n│   ├── 📂 text_encoders/\n│   │   └── qwen3.5_9b_w4a8_gptq.safetensors\n│   └── 📂 vae/\n│       └── flux2-vae_small.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
      },
      "color": "#222",
      "bgcolor": "#000"
    },
    {
      "id": 31,
      "type": "MarkdownNote",
      "pos": [
        -560,
        -40
      ],
      "size": [
        520,
        1200
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "## MOSS-Image capabilities and limits\n\nSources: [USERGUIDE](https://github.com/OpenMOSS/MOSS-Image/blob/main/USERGUIDE.md), README, HF Base/SFT cards; cross-checked against community benchmark notes.\n\n### Resolution\n\n| Item | Official |\n|------|----------|\n| Recommended total pixels | **1M, 1.5M, or 2M** |\n| Extrapolation range | **0.25M (512×512) to 4M (~2K)** |\n| Aspect ratio | Arbitrary; width/height must be positive multiples of **16** |\n| This template default | 1024×1024 (~1M) |\n\n### Strengths\n\n- ~**5B** single-stream DiT (Muon); FLUX.2 small VAE; Qwen-family text encoder.\n- Strong bilingual English and Chinese text rendering and auto layout; JSON Layout control for text/objects; long prompts (~**4K** tokens); anime and photorealistic.\n- **SFT** clearer text grouping/layouts; **Base** has no post-training / CFG distillation (better for community LoRAs).\n- Inputs: natural language, tag sequences, JSON layout (layout is experimental). Prefer English (most training data); Chinese supported.\n\n### Limits / notes\n\n- Auto line breaks may not match intent — use `\\n` or real newlines for precise text.\n- Turning off SLG looks more realistic but can collapse details; official negative-branch skip layer **22** (24/26 also help). kijai notes SLG can overblow anime styles.\n- Recommended negative prompt: `nsfw, worst quality, bad anatomy, watermark, jpeg artifact`\n- If VRAM is tight, lower resolution or use Sequential / CPU offload.\n- When training LoRA yourself, **freeze the text encoder**.\n- License: Apache 2.0.\n\n---\n\n## Sampling settings vs. official defaults\n\n| Setting | This template | OpenMOSS official |\n|---------|---------------|-------------------|\n| Steps | 25 | 50 |\n| CFG | 2.5 | 3 |\n| Sampler | er_sde | Euler |\n| Scheduler | simple | default |\n| Denoise | 1 | 1 |\n| Shift | 5 (model default) | 5 (same) |\n\nThis template follows the faster settings from kijai's ComfyUI MOSS-Image PR [#17095](https://github.com/comfyanonymous/ComfyUI/pull/17095). That is a speed trade-off, not a bug. For results closer to the official ones, try 50 steps and CFG 3.\n\n### Community notes\n\n- **Skip layer guidance:** can overblow anime styles; no alternative values were suggested (template keeps official layer 22). You can check the detail settings inside the subgraph\n- **Shift:** adjust with ModelSamplingAuraFlow or ModelSamplingFlux — ModelSamplingSD3 uses a completely different scale. You can enter the subgraph to adjust it\n- **SFT banding:** experimental LoRA at about −0.5 strength: [moss_image_sft_lora_blocks_21_to_49…](https://huggingface.co/Kijai/MOSS-image_experimental/blob/main/loras/moss_image_sft_lora_blocks_21_to_49_rank_512_bf16.safetensors)\n\n\n## Prompt skill\n\nThe system prompt driving the upsampler is written from the official [MOSS-Image Prompt Enhancer skill](https://github.com/OpenMOSS/MOSS-Image/blob/main/skills/moss-image-prompt-enhancer/SKILL.md). The same skill turns an idea into a caption or a Layout prompt outside ComfyUI, and it is the reference for the caption style this model was trained on."
      ],
      "widgets_values_named": {
        "text": "## MOSS-Image capabilities and limits\n\nSources: [USERGUIDE](https://github.com/OpenMOSS/MOSS-Image/blob/main/USERGUIDE.md), README, HF Base/SFT cards; cross-checked against community benchmark notes.\n\n### Resolution\n\n| Item | Official |\n|------|----------|\n| Recommended total pixels | **1M, 1.5M, or 2M** |\n| Extrapolation range | **0.25M (512×512) to 4M (~2K)** |\n| Aspect ratio | Arbitrary; width/height must be positive multiples of **16** |\n| This template default | 1024×1024 (~1M) |\n\n### Strengths\n\n- ~**5B** single-stream DiT (Muon); FLUX.2 small VAE; Qwen-family text encoder.\n- Strong bilingual English and Chinese text rendering and auto layout; JSON Layout control for text/objects; long prompts (~**4K** tokens); anime and photorealistic.\n- **SFT** clearer text grouping/layouts; **Base** has no post-training / CFG distillation (better for community LoRAs).\n- Inputs: natural language, tag sequences, JSON layout (layout is experimental). Prefer English (most training data); Chinese supported.\n\n### Limits / notes\n\n- Auto line breaks may not match intent — use `\\n` or real newlines for precise text.\n- Turning off SLG looks more realistic but can collapse details; official negative-branch skip layer **22** (24/26 also help). kijai notes SLG can overblow anime styles.\n- Recommended negative prompt: `nsfw, worst quality, bad anatomy, watermark, jpeg artifact`\n- If VRAM is tight, lower resolution or use Sequential / CPU offload.\n- When training LoRA yourself, **freeze the text encoder**.\n- License: Apache 2.0.\n\n---\n\n## Sampling settings vs. official defaults\n\n| Setting | This template | OpenMOSS official |\n|---------|---------------|-------------------|\n| Steps | 25 | 50 |\n| CFG | 2.5 | 3 |\n| Sampler | er_sde | Euler |\n| Scheduler | simple | default |\n| Denoise | 1 | 1 |\n| Shift | 5 (model default) | 5 (same) |\n\nThis template follows the faster settings from kijai's ComfyUI MOSS-Image PR [#17095](https://github.com/comfyanonymous/ComfyUI/pull/17095). That is a speed trade-off, not a bug. For results closer to the official ones, try 50 steps and CFG 3.\n\n### Community notes\n\n- **Skip layer guidance:** can overblow anime styles; no alternative values were suggested (template keeps official layer 22). You can check the detail settings inside the subgraph\n- **Shift:** adjust with ModelSamplingAuraFlow or ModelSamplingFlux — ModelSamplingSD3 uses a completely different scale. You can enter the subgraph to adjust it\n- **SFT banding:** experimental LoRA at about −0.5 strength: [moss_image_sft_lora_blocks_21_to_49…](https://huggingface.co/Kijai/MOSS-image_experimental/blob/main/loras/moss_image_sft_lora_blocks_21_to_49_rank_512_bf16.safetensors)\n\n\n## Prompt skill\n\nThe system prompt driving the upsampler is written from the official [MOSS-Image Prompt Enhancer skill](https://github.com/OpenMOSS/MOSS-Image/blob/main/skills/moss-image-prompt-enhancer/SKILL.md). The same skill turns an idea into a caption or a Layout prompt outside ComfyUI, and it is the reference for the caption style this model was trained on."
      },
      "color": "#222",
      "bgcolor": "#000"
    }
  ],
  "links": [
    [
      22,
      18,
      0,
      9,
      0,
      "IMAGE"
    ],
    [
      40,
      19,
      0,
      18,
      3,
      "INT"
    ],
    [
      41,
      19,
      1,
      18,
      4,
      "INT"
    ]
  ],
  "groups": [],
  "definitions": {
    "subgraphs": [
      {
        "id": "3301b744-2960-415a-83b0-fe8a89d99fdb",
        "version": 1,
        "state": {
          "lastGroupId": 5,
          "lastNodeId": 32,
          "lastLinkId": 51,
          "lastRerouteId": 0
        },
        "revision": 0,
        "config": {},
        "name": "Text to Image (MOSS-Image)",
        "inputNode": {
          "id": -10,
          "bounding": [
            -1020,
            -120,
            191.44921875,
            328
          ]
        },
        "outputNode": {
          "id": -20,
          "bounding": [
            1790,
            30,
            128,
            68
          ]
        },
        "inputs": [
          {
            "id": "35437e31-565b-4d42-bc06-d95c5929e7d8",
            "name": "value",
            "type": "STRING",
            "linkIds": [
              25
            ],
            "label": "positive_prompt",
            "pos": [
              -852.55078125,
              -96
            ]
          },
          {
            "id": "853a4192-ebce-42de-bdff-77c36b59cc1a",
            "name": "switch",
            "type": "BOOLEAN",
            "linkIds": [
              26
            ],
            "label": "enable_prompt_enhancer",
            "pos": [
              -852.55078125,
              -76
            ]
          },
          {
            "id": "c11f1876-7b42-4679-a736-8deaa8f21fd7",
            "name": "text",
            "type": "STRING",
            "linkIds": [
              43
            ],
            "label": "negative_prompt",
            "pos": [
              -852.55078125,
              -56
            ]
          },
          {
            "id": "1514590b-7a78-450b-82b4-cfbe7820a9db",
            "name": "width",
            "type": "INT",
            "linkIds": [
              27
            ],
            "pos": [
              -852.55078125,
              -36
            ]
          },
          {
            "id": "f2e18bfe-65b0-4d24-9c78-bec0b9573e97",
            "name": "height",
            "type": "INT",
            "linkIds": [
              28
            ],
            "pos": [
              -852.55078125,
              -16
            ]
          },
          {
            "id": "32c26da2-7e60-44bf-851a-72690937b4b4",
            "name": "seed",
            "type": "INT",
            "linkIds": [
              30
            ],
            "pos": [
              -852.55078125,
              4
            ]
          },
          {
            "id": "dae5d571-ced0-46d6-8a0a-5a71b8ca945a",
            "name": "steps",
            "type": "INT",
            "linkIds": [
              42
            ],
            "pos": [
              -852.55078125,
              24
            ]
          },
          {
            "id": "6c064d6f-9925-4808-83cc-7e3409190ca7",
            "name": "cfg",
            "type": "FLOAT",
            "linkIds": [
              44
            ],
            "pos": [
              -852.55078125,
              44
            ]
          },
          {
            "id": "e3037e0e-7d1a-43ce-9585-b255c7017615",
            "name": "switch_1",
            "type": "BOOLEAN",
            "linkIds": [
              51
            ],
            "label": "SLG",
            "pos": [
              -852.55078125,
              64
            ]
          },
          {
            "id": "46e71c72-9f95-4c32-89d2-2dab4b63b284",
            "name": "sampler_name",
            "type": "COMBO",
            "linkIds": [
              33
            ],
            "pos": [
              -852.55078125,
              84
            ]
          },
          {
            "id": "8ba10fc2-8e73-4ece-8f77-27515bbe2698",
            "name": "scheduler",
            "type": "COMBO",
            "linkIds": [
              34
            ],
            "pos": [
              -852.55078125,
              104
            ]
          },
          {
            "id": "bc8e2627-1b51-4333-9d88-0cb6307f7545",
            "name": "unet_name",
            "type": "COMBO",
            "linkIds": [
              35
            ],
            "label": "unet_model",
            "pos": [
              -852.55078125,
              124
            ]
          },
          {
            "id": "fe422dee-acbe-4c34-898b-62bb878ddb83",
            "name": "clip_name",
            "type": "COMBO",
            "linkIds": [
              36
            ],
            "label": "clip_model",
            "pos": [
              -852.55078125,
              144
            ]
          },
          {
            "id": "29a73fdf-7b55-4612-8966-bba0b4cab854",
            "name": "vae_name",
            "type": "COMBO",
            "linkIds": [
              37
            ],
            "label": "vae_model",
            "pos": [
              -852.55078125,
              164
            ]
          }
        ],
        "outputs": [
          {
            "id": "fa9fefe4-677e-4f8b-aba5-35459b097c37",
            "name": "IMAGE",
            "type": "IMAGE",
            "linkIds": [
              6
            ],
            "localized_name": "IMAGE",
            "pos": [
              1814,
              54
            ]
          }
        ],
        "widgets": [],
        "nodes": [
          {
            "id": 17,
            "type": "PrimitiveStringMultiline",
            "pos": [
              -120,
              -780
            ],
            "size": [
              490,
              280
            ],
            "flags": {},
            "order": 13,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "value",
                "name": "value",
                "type": "STRING",
                "widget": {
                  "name": "value"
                },
                "link": 25
              }
            ],
            "outputs": [
              {
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING",
                "links": [
                  15,
                  17
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "PrimitiveStringMultiline"
            },
            "widgets_values": [
              "Editorial studio photograph of a model in a structured ivory wool coat standing against a seamless warm grey backdrop, single softbox from the left carving sculpted shadows, 85mm lens, muted cream and charcoal palette, subtle film grain"
            ],
            "widgets_values_named": {
              "value": "Editorial studio photograph of a model in a structured ivory wool coat standing against a seamless warm grey backdrop, single softbox from the left carving sculpted shadows, 85mm lens, muted cream and charcoal palette, subtle film grain"
            }
          },
          {
            "id": 14,
            "type": "PrimitiveStringMultiline",
            "pos": [
              -120,
              -430
            ],
            "size": [
              470,
              270
            ],
            "flags": {},
            "order": 0,
            "mode": 0,
            "inputs": [],
            "outputs": [
              {
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING",
                "links": [
                  13
                ]
              }
            ],
            "title": "Text (System prompt)",
            "properties": {
              "Node name for S&R": "PrimitiveStringMultiline"
            },
            "widgets_values": [
              "You turn a user's image idea into one detailed caption for a text-to-image model. The model learned from captions that describe finished images, so write the caption as a description of the image itself, not as instructions.\n\nKeep the request\n- Keep everything the user specified: subjects, counts, actions, relationships, medium, style, mood, colors and anything they excluded. Never contradict or drop it.\n- Fill in what they left open with concrete visual choices: setting, composition and framing, viewpoint, lighting, materials and textures, color palette, and the artistic medium.\n- Describe only what can be seen. Leave out sounds, smells, backstory and intentions.\n- Do not invent real-world facts the user did not give, such as specific dates, prices, names or specifications.\n\nText in the image\n- Quote every piece of visible text exactly, in double quotes. Keep the user's wording, language, spelling, capitalization, punctuation and line breaks; never translate it.\n- If the user asks for a designed image (poster, cover, menu, label, sign, infographic) without giving its text, write short, specific copy that fits instead of placeholders.\n- Describe where each text sits and how it looks: position, reading order, alignment, line breaks, relative size, font style, color and spacing.\n- Do not mention watermarks or artist signatures.\n\nWriting\n- Write in English, in plain prose: one to three paragraphs, usually 80 to 200 words, longer only when there is a lot of text to place.\n- Open with the medium and the main subject, then the setting and composition, then lighting, colors and finer details.\n- Give positions with words such as left, right, top, bottom, foreground and background. No coordinates, lists, headings, JSON or Markdown.\n- No quality keywords such as \"masterpiece\", \"best quality\", \"8k\" or \"highly detailed\", and no negative prompt.\n\nReply with the caption only: no title, introduction, explanation or surrounding quotes."
            ],
            "widgets_values_named": {
              "value": "You turn a user's image idea into one detailed caption for a text-to-image model. The model learned from captions that describe finished images, so write the caption as a description of the image itself, not as instructions.\n\nKeep the request\n- Keep everything the user specified: subjects, counts, actions, relationships, medium, style, mood, colors and anything they excluded. Never contradict or drop it.\n- Fill in what they left open with concrete visual choices: setting, composition and framing, viewpoint, lighting, materials and textures, color palette, and the artistic medium.\n- Describe only what can be seen. Leave out sounds, smells, backstory and intentions.\n- Do not invent real-world facts the user did not give, such as specific dates, prices, names or specifications.\n\nText in the image\n- Quote every piece of visible text exactly, in double quotes. Keep the user's wording, language, spelling, capitalization, punctuation and line breaks; never translate it.\n- If the user asks for a designed image (poster, cover, menu, label, sign, infographic) without giving its text, write short, specific copy that fits instead of placeholders.\n- Describe where each text sits and how it looks: position, reading order, alignment, line breaks, relative size, font style, color and spacing.\n- Do not mention watermarks or artist signatures.\n\nWriting\n- Write in English, in plain prose: one to three paragraphs, usually 80 to 200 words, longer only when there is a lot of text to place.\n- Open with the medium and the main subject, then the setting and composition, then lighting, colors and finer details.\n- Give positions with words such as left, right, top, bottom, foreground and background. No coordinates, lists, headings, JSON or Markdown.\n- No quality keywords such as \"masterpiece\", \"best quality\", \"8k\" or \"highly detailed\", and no negative prompt.\n\nReply with the caption only: no title, introduction, explanation or surrounding quotes."
            }
          },
          {
            "id": 11,
            "type": "TextGenerate",
            "pos": [
              480,
              -780
            ],
            "size": [
              400,
              550
            ],
            "flags": {},
            "order": 9,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "clip",
                "name": "clip",
                "type": "CLIP",
                "link": 10
              },
              {
                "localized_name": "image",
                "name": "image",
                "shape": 7,
                "type": "IMAGE",
                "link": null
              },
              {
                "localized_name": "video",
                "name": "video",
                "shape": 7,
                "type": "IMAGE",
                "link": null
              },
              {
                "localized_name": "audio",
                "name": "audio",
                "shape": 7,
                "type": "AUDIO",
                "link": null
              },
              {
                "localized_name": "system_prompt",
                "name": "system_prompt",
                "shape": 7,
                "type": "STRING",
                "link": 13
              },
              {
                "localized_name": "prompt",
                "name": "prompt",
                "type": "STRING",
                "widget": {
                  "name": "prompt"
                },
                "link": 17
              }
            ],
            "outputs": [
              {
                "localized_name": "generated_text",
                "name": "generated_text",
                "type": "STRING",
                "links": [
                  19
                ]
              },
              {
                "localized_name": "thinking",
                "name": "thinking",
                "type": "STRING",
                "links": null
              }
            ],
            "properties": {
              "Node name for S&R": "TextGenerate"
            },
            "widgets_values": [
              "",
              4096,
              "on",
              0.7,
              64,
              0.95,
              0.05,
              1,
              0,
              0,
              false,
              true,
              "auto"
            ],
            "widgets_values_named": {
              "prompt": "",
              "max_length": 4096,
              "sampling_mode": "on",
              "sampling_mode.temperature": 0.7,
              "sampling_mode.top_k": 64,
              "sampling_mode.top_p": 0.95,
              "sampling_mode.min_p": 0.05,
              "sampling_mode.repetition_penalty": 1,
              "sampling_mode.seed": 0,
              "sampling_mode.presence_penalty": 0,
              "thinking": false,
              "use_default_template": true,
              "mtp": "auto"
            }
          },
          {
            "id": 1,
            "type": "UNETLoader",
            "pos": [
              -150,
              80
            ],
            "size": [
              350,
              90
            ],
            "flags": {},
            "order": 1,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "unet_name",
                "name": "unet_name",
                "type": "COMBO",
                "widget": {
                  "name": "unet_name"
                },
                "link": 35
              }
            ],
            "outputs": [
              {
                "localized_name": "MODEL",
                "name": "MODEL",
                "type": "MODEL",
                "slot_index": 0,
                "links": [
                  1,
                  50
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "UNETLoader",
              "models": [
                {
                  "name": "moss_image_base_int8_convrot.safetensors",
                  "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_base_int8_convrot.safetensors",
                  "directory": "diffusion_models"
                }
              ]
            },
            "widgets_values": [
              "moss_image_base_int8_convrot.safetensors",
              "default"
            ],
            "widgets_values_named": {
              "unet_name": "moss_image_base_int8_convrot.safetensors",
              "weight_dtype": "default"
            },
            "color": "#223",
            "bgcolor": "#335"
          },
          {
            "id": 4,
            "type": "CLIPTextEncode",
            "pos": [
              380,
              80
            ],
            "size": [
              450,
              520
            ],
            "flags": {},
            "order": 4,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "clip",
                "name": "clip",
                "type": "CLIP",
                "link": 2
              },
              {
                "localized_name": "text",
                "name": "text",
                "type": "STRING",
                "widget": {
                  "name": "text"
                },
                "link": 20
              }
            ],
            "outputs": [
              {
                "localized_name": "CONDITIONING",
                "name": "CONDITIONING",
                "type": "CONDITIONING",
                "slot_index": 0,
                "links": [
                  8
                ]
              }
            ],
            "title": "Positive Prompt",
            "properties": {
              "Node name for S&R": "CLIPTextEncode"
            },
            "widgets_values": [
              "Editorial studio photograph of a model in a structured ivory wool coat standing against a seamless warm grey backdrop, single softbox from the left carving sculpted shadows, 85mm lens, muted cream and charcoal palette, subtle film grain"
            ],
            "widgets_values_named": {
              "text": "Editorial studio photograph of a model in a structured ivory wool coat standing against a seamless warm grey backdrop, single softbox from the left carving sculpted shadows, 85mm lens, muted cream and charcoal palette, subtle film grain"
            },
            "color": "#232",
            "bgcolor": "#353"
          },
          {
            "id": 2,
            "type": "CLIPLoader",
            "pos": [
              -150,
              690
            ],
            "size": [
              350,
              140
            ],
            "flags": {},
            "order": 2,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "clip_name",
                "name": "clip_name",
                "type": "COMBO",
                "widget": {
                  "name": "clip_name"
                },
                "link": 36
              }
            ],
            "outputs": [
              {
                "localized_name": "CLIP",
                "name": "CLIP",
                "type": "CLIP",
                "slot_index": 0,
                "links": [
                  2,
                  3,
                  10
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "CLIPLoader",
              "models": [
                {
                  "name": "qwen3.5_9b_w4a8_gptq.safetensors",
                  "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors",
                  "directory": "text_encoders"
                }
              ]
            },
            "widgets_values": [
              "qwen3.5_9b_w4a8_gptq.safetensors",
              "moss_image",
              "default"
            ],
            "widgets_values_named": {
              "clip_name": "qwen3.5_9b_w4a8_gptq.safetensors",
              "type": "moss_image",
              "device": "default"
            },
            "color": "#432",
            "bgcolor": "#653"
          },
          {
            "id": 7,
            "type": "KSampler",
            "pos": [
              930,
              50
            ],
            "size": [
              290,
              290
            ],
            "flags": {},
            "order": 7,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "model",
                "name": "model",
                "type": "MODEL",
                "link": 48
              },
              {
                "localized_name": "positive",
                "name": "positive",
                "type": "CONDITIONING",
                "link": 8
              },
              {
                "localized_name": "negative",
                "name": "negative",
                "type": "CONDITIONING",
                "link": 9
              },
              {
                "localized_name": "latent_image",
                "name": "latent_image",
                "type": "LATENT",
                "link": 39
              },
              {
                "localized_name": "seed",
                "name": "seed",
                "type": "INT",
                "widget": {
                  "name": "seed"
                },
                "link": 30
              },
              {
                "localized_name": "steps",
                "name": "steps",
                "type": "INT",
                "widget": {
                  "name": "steps"
                },
                "link": 42
              },
              {
                "localized_name": "cfg",
                "name": "cfg",
                "type": "FLOAT",
                "widget": {
                  "name": "cfg"
                },
                "link": 44
              },
              {
                "localized_name": "sampler_name",
                "name": "sampler_name",
                "type": "COMBO",
                "widget": {
                  "name": "sampler_name"
                },
                "link": 33
              },
              {
                "localized_name": "scheduler",
                "name": "scheduler",
                "type": "COMBO",
                "widget": {
                  "name": "scheduler"
                },
                "link": 34
              }
            ],
            "outputs": [
              {
                "localized_name": "LATENT",
                "name": "LATENT",
                "type": "LATENT",
                "slot_index": 0,
                "links": [
                  4
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "KSampler"
            },
            "widgets_values": [
              0,
              "randomize",
              25,
              2.5,
              "er_sde",
              "simple",
              1
            ],
            "widgets_values_named": {
              "seed": 0,
              "control_after_generate": "randomize",
              "steps": 25,
              "cfg": 2.5,
              "sampler_name": "er_sde",
              "scheduler": "simple",
              "denoise": 1
            }
          },
          {
            "id": 3,
            "type": "VAELoader",
            "pos": [
              -150,
              910
            ],
            "size": [
              350,
              60
            ],
            "flags": {},
            "order": 3,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "vae_name",
                "name": "vae_name",
                "type": "COMBO",
                "widget": {
                  "name": "vae_name"
                },
                "link": 37
              }
            ],
            "outputs": [
              {
                "localized_name": "VAE",
                "name": "VAE",
                "type": "VAE",
                "slot_index": 0,
                "links": [
                  5
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "VAELoader",
              "models": [
                {
                  "name": "flux2-vae_small.safetensors",
                  "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae_small.safetensors",
                  "directory": "vae"
                }
              ]
            },
            "widgets_values": [
              "flux2-vae_small.safetensors"
            ],
            "widgets_values_named": {
              "vae_name": "flux2-vae_small.safetensors"
            },
            "color": "#323",
            "bgcolor": "#535"
          },
          {
            "id": 13,
            "type": "PreviewAny",
            "pos": [
              1280,
              -780
            ],
            "size": [
              350,
              600
            ],
            "flags": {},
            "order": 10,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "source",
                "name": "source",
                "type": "*",
                "link": 21
              }
            ],
            "outputs": [
              {
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING",
                "links": [
                  20
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "PreviewAny"
            },
            "widgets_values": [],
            "widgets_values_named": {}
          },
          {
            "id": 16,
            "type": "ComfySwitchNode",
            "pos": [
              940,
              -780
            ],
            "size": [
              280,
              110
            ],
            "flags": {},
            "order": 12,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "on_false",
                "name": "on_false",
                "shape": 7,
                "type": "STRING",
                "link": 15
              },
              {
                "localized_name": "on_true",
                "name": "on_true",
                "shape": 7,
                "type": "STRING",
                "link": 19
              },
              {
                "localized_name": "switch",
                "name": "switch",
                "type": "BOOLEAN",
                "widget": {
                  "name": "switch"
                },
                "link": 26
              }
            ],
            "outputs": [
              {
                "localized_name": "output",
                "name": "output",
                "type": "STRING",
                "links": [
                  21
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "ComfySwitchNode"
            },
            "widgets_values": [
              true
            ],
            "widgets_values_named": {
              "switch": true
            }
          },
          {
            "id": 6,
            "type": "EmptyFlux2LatentImage",
            "pos": [
              -140,
              1130
            ],
            "size": [
              300,
              120
            ],
            "flags": {},
            "order": 6,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "width",
                "name": "width",
                "type": "INT",
                "widget": {
                  "name": "width"
                },
                "link": 27
              },
              {
                "localized_name": "height",
                "name": "height",
                "type": "INT",
                "widget": {
                  "name": "height"
                },
                "link": 28
              }
            ],
            "outputs": [
              {
                "localized_name": "LATENT",
                "name": "LATENT",
                "type": "LATENT",
                "slot_index": 0,
                "links": [
                  39
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "EmptyFlux2LatentImage"
            },
            "widgets_values": [
              1024,
              1024,
              1
            ],
            "widgets_values_named": {
              "width": 1024,
              "height": 1024,
              "batch_size": 1
            },
            "color": "#323",
            "bgcolor": "#535"
          },
          {
            "id": 5,
            "type": "CLIPTextEncode",
            "pos": [
              380,
              660
            ],
            "size": [
              460,
              180
            ],
            "flags": {},
            "order": 5,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "clip",
                "name": "clip",
                "type": "CLIP",
                "link": 3
              },
              {
                "localized_name": "text",
                "name": "text",
                "type": "STRING",
                "widget": {
                  "name": "text"
                },
                "link": 43
              }
            ],
            "outputs": [
              {
                "localized_name": "CONDITIONING",
                "name": "CONDITIONING",
                "type": "CONDITIONING",
                "slot_index": 0,
                "links": [
                  9
                ]
              }
            ],
            "title": "Negative Prompt (empty = reference default)",
            "properties": {
              "Node name for S&R": "CLIPTextEncode"
            },
            "widgets_values": [
              ""
            ],
            "widgets_values_named": {
              "text": ""
            },
            "color": "#223",
            "bgcolor": "#335"
          },
          {
            "id": 8,
            "type": "VAEDecode",
            "pos": [
              1270,
              50
            ],
            "size": [
              230,
              70
            ],
            "flags": {},
            "order": 8,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "samples",
                "name": "samples",
                "type": "LATENT",
                "link": 4
              },
              {
                "localized_name": "vae",
                "name": "vae",
                "type": "VAE",
                "link": 5
              }
            ],
            "outputs": [
              {
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE",
                "slot_index": 0,
                "links": [
                  6
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "VAEDecode"
            }
          },
          {
            "id": 15,
            "type": "SkipLayerGuidanceDiTSimple",
            "pos": [
              -160,
              230
            ],
            "size": [
              350,
              210
            ],
            "flags": {},
            "order": 11,
            "mode": 0,
            "showAdvanced": true,
            "inputs": [
              {
                "localized_name": "model",
                "name": "model",
                "type": "MODEL",
                "link": 1
              }
            ],
            "outputs": [
              {
                "localized_name": "MODEL",
                "name": "MODEL",
                "type": "MODEL",
                "links": [
                  49
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "SkipLayerGuidanceDiTSimple"
            },
            "widgets_values": [
              "",
              "22",
              0,
              0.5
            ],
            "widgets_values_named": {
              "double_layers": "",
              "single_layers": "22",
              "start_percent": 0,
              "end_percent": 0.5
            }
          },
          {
            "id": 32,
            "type": "ComfySwitchNode",
            "pos": [
              -150,
              500
            ],
            "size": [
              340,
              110
            ],
            "flags": {},
            "order": 14,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "on_false",
                "name": "on_false",
                "shape": 7,
                "type": "MODEL",
                "link": 50
              },
              {
                "localized_name": "on_true",
                "name": "on_true",
                "shape": 7,
                "type": "MODEL",
                "link": 49
              },
              {
                "localized_name": "switch",
                "name": "switch",
                "type": "BOOLEAN",
                "widget": {
                  "name": "switch"
                },
                "link": 51
              }
            ],
            "outputs": [
              {
                "localized_name": "output",
                "name": "output",
                "type": "MODEL",
                "links": [
                  48
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "ComfySwitchNode"
            },
            "widgets_values": [
              false
            ],
            "widgets_values_named": {
              "switch": false
            }
          }
        ],
        "groups": [
          {
            "id": 1,
            "title": "Models",
            "bounding": [
              -210,
              -10,
              480,
              1010
            ],
            "color": "#3f789e",
            "flags": {}
          },
          {
            "id": 2,
            "title": "Prompt",
            "bounding": [
              300,
              -10,
              580,
              880
            ],
            "color": "#3f789e",
            "flags": {}
          },
          {
            "id": 3,
            "title": "Image Size",
            "bounding": [
              -220,
              1020,
              490,
              290
            ],
            "color": "#3f789e",
            "flags": {}
          },
          {
            "id": 4,
            "title": "Prompt Enhancer",
            "bounding": [
              -200,
              -880,
              1900,
              840
            ],
            "color": "#444",
            "flags": {}
          }
        ],
        "links": [
          {
            "id": 2,
            "origin_id": 2,
            "origin_slot": 0,
            "target_id": 4,
            "target_slot": 0,
            "type": "CLIP"
          },
          {
            "id": 20,
            "origin_id": 13,
            "origin_slot": 0,
            "target_id": 4,
            "target_slot": 1,
            "type": "STRING"
          },
          {
            "id": 1,
            "origin_id": 1,
            "origin_slot": 0,
            "target_id": 15,
            "target_slot": 0,
            "type": "MODEL"
          },
          {
            "id": 8,
            "origin_id": 4,
            "origin_slot": 0,
            "target_id": 7,
            "target_slot": 1,
            "type": "CONDITIONING"
          },
          {
            "id": 9,
            "origin_id": 5,
            "origin_slot": 0,
            "target_id": 7,
            "target_slot": 2,
            "type": "CONDITIONING"
          },
          {
            "id": 21,
            "origin_id": 16,
            "origin_slot": 0,
            "target_id": 13,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 15,
            "origin_id": 17,
            "origin_slot": 0,
            "target_id": 16,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 19,
            "origin_id": 11,
            "origin_slot": 0,
            "target_id": 16,
            "target_slot": 1,
            "type": "STRING"
          },
          {
            "id": 3,
            "origin_id": 2,
            "origin_slot": 0,
            "target_id": 5,
            "target_slot": 0,
            "type": "CLIP"
          },
          {
            "id": 4,
            "origin_id": 7,
            "origin_slot": 0,
            "target_id": 8,
            "target_slot": 0,
            "type": "LATENT"
          },
          {
            "id": 5,
            "origin_id": 3,
            "origin_slot": 0,
            "target_id": 8,
            "target_slot": 1,
            "type": "VAE"
          },
          {
            "id": 6,
            "origin_id": 8,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 39,
            "origin_id": 6,
            "origin_slot": 0,
            "target_id": 7,
            "target_slot": 3,
            "type": "LATENT"
          },
          {
            "id": 48,
            "origin_id": 32,
            "origin_slot": 0,
            "target_id": 7,
            "target_slot": 0,
            "type": "MODEL"
          },
          {
            "id": 49,
            "origin_id": 15,
            "origin_slot": 0,
            "target_id": 32,
            "target_slot": 1,
            "type": "MODEL"
          },
          {
            "id": 50,
            "origin_id": 1,
            "origin_slot": 0,
            "target_id": 32,
            "target_slot": 0,
            "type": "MODEL"
          },
          {
            "id": 25,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 17,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 26,
            "origin_id": -10,
            "origin_slot": 1,
            "target_id": 16,
            "target_slot": 2,
            "type": "BOOLEAN"
          },
          {
            "id": 43,
            "origin_id": -10,
            "origin_slot": 2,
            "target_id": 5,
            "target_slot": 1,
            "type": "STRING"
          },
          {
            "id": 27,
            "origin_id": -10,
            "origin_slot": 3,
            "target_id": 6,
            "target_slot": 0,
            "type": "INT"
          },
          {
            "id": 28,
            "origin_id": -10,
            "origin_slot": 4,
            "target_id": 6,
            "target_slot": 1,
            "type": "INT"
          },
          {
            "id": 30,
            "origin_id": -10,
            "origin_slot": 5,
            "target_id": 7,
            "target_slot": 4,
            "type": "INT"
          },
          {
            "id": 42,
            "origin_id": -10,
            "origin_slot": 6,
            "target_id": 7,
            "target_slot": 5,
            "type": "INT"
          },
          {
            "id": 44,
            "origin_id": -10,
            "origin_slot": 7,
            "target_id": 7,
            "target_slot": 6,
            "type": "FLOAT"
          },
          {
            "id": 51,
            "origin_id": -10,
            "origin_slot": 8,
            "target_id": 32,
            "target_slot": 2,
            "type": "BOOLEAN"
          },
          {
            "id": 33,
            "origin_id": -10,
            "origin_slot": 9,
            "target_id": 7,
            "target_slot": 7,
            "type": "COMBO"
          },
          {
            "id": 34,
            "origin_id": -10,
            "origin_slot": 10,
            "target_id": 7,
            "target_slot": 8,
            "type": "COMBO"
          },
          {
            "id": 35,
            "origin_id": -10,
            "origin_slot": 11,
            "target_id": 1,
            "target_slot": 0,
            "type": "COMBO"
          },
          {
            "id": 36,
            "origin_id": -10,
            "origin_slot": 12,
            "target_id": 2,
            "target_slot": 0,
            "type": "COMBO"
          },
          {
            "id": 37,
            "origin_id": -10,
            "origin_slot": 13,
            "target_id": 3,
            "target_slot": 0,
            "type": "COMBO"
          },
          {
            "id": 10,
            "origin_id": 2,
            "origin_slot": 0,
            "target_id": 11,
            "target_slot": 0,
            "type": "CLIP"
          },
          {
            "id": 13,
            "origin_id": 14,
            "origin_slot": 0,
            "target_id": 11,
            "target_slot": 4,
            "type": "STRING"
          },
          {
            "id": 17,
            "origin_id": 17,
            "origin_slot": 0,
            "target_id": 11,
            "target_slot": 5,
            "type": "STRING"
          }
        ],
        "extra": {}
      }
    ]
  },
  "config": {},
  "extra": {
    "frontendVersion": "1.55.17",
    "ds": {
      "scale": 0.9841444964112566,
      "offset": [
        2027.0278346087223,
        391.24986276434487
      ]
    }
  },
  "version": 0.4
}