MOSS-Image finally has proper pose, edge and depth control. On 10 November, Hugging Face user thedeoxen released seven open control LoRAs for MOSS-Image-SFT: Canny, Depth, Pose, Normal, Lineart, Scribble and Segmentation. Each one ships with a ready ComfyUI workflow.
This guide shows which LoRA to use for which job, the exact files and folders, the preprocessor settings for each control map, the workflow settings, and fixes for the usual problems.
- What: 7 ControlNet-style edit LoRAs (about 290 MB each, Apache 2.0) for MOSS-Image-SFT. You feed a control map in as the reference image, and your prompt decides everything else.
- Base files:
moss_image_sft_int8_convrot.safetensors(diffusion model),qwen3.5_9b_w4a8_gptq.safetensors(text encoder, typemoss_image) andflux2-vae_small.safetensors(VAE). - Settings: LoRA strength 1.0 (0.7 if too rigid), 30 steps, CFG 4, euler + simple, and
edit_formatset toai-toolkiton both text encode nodes. - Preprocessors: from comfyui_controlnet_aux, or skip them if you already have a control map.
- VRAM: about the same as normal MOSS-Image editing: roughly 12 GB with the INT8 model and W4A8 encoder.
Want the full picture? My complete MOSS-Image guide maps every file, setting, LoRA and fix in one place.
What These Control LoRAs Are
Classic ControlNets are separate models that steer the image while it is generated. These are different. They are edit LoRAs trained on top of MOSS-Image-SFT’s editing mode.
In practice, you give MOSS-Image a control map (an edge drawing, a depth map, a pose skeleton) as if it were the photo to edit. The LoRA has learned to read that map as a layout guide, so the output follows its shapes while the prompt sets the person, clothes, materials, lighting and style.
Key facts:
- Licence: Apache 2.0, the same as MOSS-Image.
- Size: about 290 MB per LoRA (rank 64 on linear layers, 16 on convolutions).
- Trigger word: none needed.
- Base model: MOSS-Image-SFT only, not bundled. They were trained with KV cache on.
The editing basics are in our MOSS-Image Edit LoRA guide.
The 7 LoRAs and When to Use Each
| Control | Best for | Input map | Preprocessor | Hugging Face repo |
|---|---|---|---|---|
| Pose | Copying a body pose, hands and face direction | Coloured DWPose skeleton on black | DWPose (body, hands, face) | thedeoxen/MOSS-Image-pose-controlnet |
| Canny | Keeping exact outlines of products, packaging and buildings | Thin white edges on black | Canny (low 100, high 200) | thedeoxen/MOSS-Image-canny-controlnet |
| Depth | Same layout and distance, new style or materials | Grey depth map, near is white | Depth Anything V2 (vitl) | thedeoxen/MOSS-Image-depth-controlnet |
| Lineart | Colouring sketches and line drawings | Fine white lines on black | Realistic Lineart, coarse mode | thedeoxen/MOSS-Image-lineart-controlnet |
| Scribble | Turning rough doodles into images | Loose, thick white strokes | HED soft edge, safe mode | thedeoxen/MOSS-Image-scribble-controlnet |
| Normal | Keeping surface shape and lighting direction (3D renders, relighting) | Camera-space normal map | BAE Normal Map | thedeoxen/MOSS-Image-normal-controlnet |
| Segmentation | Room and scene layouts: sky here, sofa there | Flat-colour regions | UniFormer semantic segmentation | thedeoxen/MOSS-Image-segmentation-controlnet |
Quick picks:
- Character art: Pose, or Depth if you want the whole figure shape and camera distance kept.
- Product shots: Canny for exact outlines.
- Interior design: Segmentation or Depth.
- Sketch to finished art: Lineart for clean drawings, Scribble for rough ones.
Files and Folders
You need the three MOSS-Image-SFT base files listed on each LoRA card, plus one LoRA per control type. The model and text encoder are the same files the official MOSS-Image templates use from Comfy-Org/MOSS-Image; the base model itself lives at OpenMOSS-Team/MOSS-Image-SFT.
| File | ComfyUI folder | Loaded by |
|---|---|---|
moss_image_sft_int8_convrot.safetensors (about 5.4 GB) |
ComfyUI/models/diffusion_models/ |
Load Diffusion Model |
qwen3.5_9b_w4a8_gptq.safetensors (about 7.3 GB) |
ComfyUI/models/text_encoders/ |
Load CLIP, type moss_image |
flux2-vae_small.safetensors |
ComfyUI/models/vae/ |
Load VAE |
moss_image_sft_pose_control_lora.safetensors (and the other six, about 290 MB each) |
ComfyUI/models/loras/ |
LoraLoaderModelOnly |
Each LoRA repo also has a workflow JSON named moss_image_<type>_control.json, for example moss_image_pose_control.json. Download the ones you need.
The LoRA files follow the same naming pattern as the pose one (moss_image_sft_<type>_control_lora.safetensors), but check the Files tab of each repo, as only the pose file name is confirmed on its card.
Tip: you only need the LoRAs you plan to use. Pose, Canny and Depth cover most jobs, which is under 1 GB in total.
Install the Preprocessor Nodes
The shipped workflows make control maps from a normal photo using comfyui_controlnet_aux, a community node pack. Core ComfyUI does not include these preprocessors.
- Open ComfyUI Manager, search for “ControlNet Auxiliary Preprocessors” and install it. Don’t have the Manager? See our ComfyUI Manager install guide.
- Or install it by hand:
cd ComfyUI/custom_nodes git clone https://github.com/Fannovel16/comfyui_controlnet_aux cd comfyui_controlnet_aux pip install -r requirements.txt - Restart ComfyUI. The first time you run each preprocessor, it downloads its own small model (DWPose, Depth Anything V2 and so on), so stay online.
If you already have a control map, for example a pose skeleton from another tool or a depth pass from Blender, you can skip the preprocessor and load the map with a Load Image node.
Load and Run the Workflow
- Update ComfyUI so it has the Text Encode MOSS-Image Edit node. Our update guide covers every install type.
- Drag
moss_image_pose_control.json(or another one) onto the canvas. - Check the loaders: model, text encoder (type
moss_image), VAE and the LoRA. Any red box means a file is missing or named differently. - Load your source image into the preprocessor, or load a ready control map.
- Write your prompt describing the subject, clothes, setting and style.
- Queue the prompt.
The settings that matter
| Setting | Value | Notes |
|---|---|---|
| LoRA strength | 1.0 | Drop toward 0.7 if the result copies the map too stiffly |
| Reference image | The control map only | Feed one map into Text Encode MOSS-Image Edit |
edit_format |
ai-toolkit |
On both the positive and negative encode nodes |
| Steps | 30 | |
| CFG | 4 | |
| Sampler / scheduler | euler / simple | |
| Negative prompt | nsfw, worst quality, bad anatomy, watermark, jpeg artifact | The one used in the training samples |
Building the graph yourself? Put LoraLoaderModelOnly between Load Diffusion Model and the sampler, and connect the control map image into the Text Encode MOSS-Image Edit node as its single reference.
The cards only show 30-step settings, and the fast 4-step and 8-step MOSS LoRAs need the bf16 SFT model rather than INT8, so stick to 30 steps unless you want to experiment. For a speed boost with no new weights, the SPEED sampler works with MOSS-Image.
Making Good Control Maps
The map is your layout, so its quality decides the result. These tips come from the model cards:
- Canny and Lineart: keep lines thin and clean, white on black. Too many edges (busy backgrounds, textures) lock the image up. Raise the Canny thresholds to drop small edges.
- Scribble: make strokes thicker and softer than canny lines. The model follows the big shapes, not every wobble.
- Pose: use a black background with hands and face included. For full-body shots, use a full-body skeleton. If a limb is missing from the skeleton, the prompt cannot reliably add it back.
- Depth: Depth Anything V2 with the large (vitl) model gives the cleanest maps.
- Segmentation: fill every region with a flat colour. Avoid large black areas with no label.
- Size: make the map the same aspect ratio as the image you want, at 1 to 2 megapixels in multiples of 16.
Prompting Tips
The control map already sets the layout, so spend your words on what the map cannot show:
- Describe the subject and scene, not the pose. With the Pose LoRA, “a dancer in a red silk dress on a rooftop at sunset” works better than listing every joint.
- Name materials and lighting. Depth and Normal maps carry shape, not colour, so say “brushed steel”, “warm window light” and so on.
- Use MOSS-Image’s text skills. MOSS renders text well, so you can ask for a shop sign or a poster title in the scene.
Example
Pose map from a photo of someone mid-stride, with the prompt:
A woman in a navy trench coat and white sneakers walking through a rainy Tokyo street at night, neon reflections on wet pavement, cinematic photo, 35mm
The output keeps the stride and arm swing from the skeleton, while the coat, city and lighting come from the prompt.
vs the Official Color/Depth Control
MOSS-Image already had one official control option in ComfyUI core: the Color/Depth Control adapter added in October. Here is how they differ:
| Official Color/Depth Control | thedeoxen Control LoRAs | |
|---|---|---|
| How it works | Concat adapter; starts from noise with a colour region map plus depth map | Edit LoRA; reads one control map as the reference image |
| Control types | Colour regions and depth | 7: pose, canny, depth, normal, lineart, scribble, segmentation |
| Made by | OpenMOSS / Comfy-Org template | Community (thedeoxen) |
| Best for | Colour layout plus depth together | Pose, edges and sketches |
For posing characters or keeping exact outlines, the new LoRAs are the only option today.
Troubleshooting
| Problem | Fix |
|---|---|
| Output ignores the map | Check edit_format is ai-toolkit on both encode nodes, the LoRA is connected and at 1.0, and the map is the reference image |
| Result looks stiff or traced | Lower LoRA strength to 0.7, or simplify the map (fewer canny edges) |
| Output looks like the control map (black with white lines) | The LoRA is not loaded, so the model is just editing the map. Check the LoRA loader and file name |
| Missing node “Text Encode MOSS-Image Edit” | Update ComfyUI to a version with MOSS-Image Edit support |
| Red preprocessor nodes | Install comfyui_controlnet_aux and restart |
| Preprocessor fails on first run | It downloads its model on first use; check your internet and the console for the download path |
| Red VAE loader | The workflow expects flux2-vae_small.safetensors. Download it, or choose the FLUX.2 VAE file you already use for MOSS-Image in the Load VAE node |
| Black images | An fp16 overflow issue in some setups; see our MOSS-Image black image fix |
| Extra or missing limbs with Pose | Use a full skeleton with hands; a missing joint in the map cannot be fixed by the prompt |
FAQ
Do these LoRAs work with MOSS-Image Base?
They were trained on MOSS-Image-SFT and the cards only list SFT. Use the SFT model for reliable results.
Can I combine two control LoRAs?
The cards do not cover stacking. Each LoRA expects one map as the single reference image, so combining two is an experiment. Start with both at around 0.6.
Are they free for commercial use?
Yes. The LoRAs are Apache 2.0, the same licence as MOSS-Image. Check the licence of any other LoRA you stack with them.
How much VRAM do I need?
About the same as normal MOSS-Image editing: around 12 GB with the INT8 model and W4A8 text encoder, and 16 GB for a comfortable setup. The LoRA adds very little.
Can I train my own control LoRA?
Yes. These were trained as edit adapters. Our KohakuMoss LoRA training guide covers MOSS-Image LoRA training on modest GPUs.
Sources
- ComfyUI Wiki: MOSS-Image Control LoRAs (all seven repos, settings)
- Hugging Face: thedeoxen/MOSS-Image-pose-controlnet (licence, files, tips)
- ArtRealm: MOSS-Image gets 7 open control LoRAs (preprocessor settings, map tips)
- Hugging Face: OpenMOSS-Team/MOSS-Image-SFT (base model)




