FitDiT Try-On
The actual swap — FitDiT Try-On runs on 8GB, but mind the resolution
- fitdit_model
- mask
- pose_image
- model_image
- garment_image
- IMAGE
This is the payoff node. Everything else in the ComfyUI-FitDit pack exists to feed this one. You give it the model's photo, a garment photo, the mask and pose map from the Mask Generator, and it hands back an image of the model wearing the new clothes. If you've ever wrestled with IDM-VTON or CatVTON, FitDiT is the modern sibling: a purpose-built diffusion-transformer try-on model rather than a generic inpainter doing its best impression of one.
How the swap happens
The mechanism is more interesting than the typical inpaint-and-pray. The node pads and resizes the model image, garment, mask and pose map to your chosen resolution, then runs a Stable Diffusion 3-based pipeline that's been split into two branches - one transformer that encodes the garment's details, one that does the actual try-on. The pose_guider you loaded earlier uses the DWPose skeleton to hold the model's body in place while only the masked garment region regenerates. When it's done, it unpads and resizes the output back to your original image dimensions, so you're not stuck with the pipeline's fixed canvas.
The inputs that matter
garment_image- the clothes. A clean, flat garment shot works best; a worn photo with folds is asking the model to copy noise.mask,pose_image,model_image- all three come straight from the FitDiT Mask Generator node. Don't hand-wire your own mask here; it expects the computed one.resolution-768x1024,1152x1536, or1536x2048. Start at the bottom.steps(15–30, default 20),guidance_scale(1–5, default 2) - the two knobs worth touching. More steps past 20 gives diminishing returns; guidance around 2 is the sweet spot the example workflow uses.seed,num_images(1–4) -num_imagesabove 1 returns a batch so you can reroll several looks at once. Watch your VRAM; each extra image multiplies the cost.
What to expect, honestly
The community has FitDiT pegged as roughly IDM-VTON quality at noticeably lower VRAM - there are reports of it running on an 8GB card in ComfyUI, which is a claim very few try-on models survive. That's at 768x1024, though. The 1152 and 1536 presets exist for matching a high-res source, and they cost you proportionally in time and memory.
Set your quality expectations before you judge the output. Every try-on model in this family - IDM, CatVTON, FitDiT - re-inpaints the whole body, so the model can come out slightly slimmer or the face can shift; it's structural, not a bug. And fabric fidelity (logos, patterns, stripes) is imperfect across the board. People who get good results run several seeds and pick the best, rather than tuning one run to death.
Troubleshooting
Garbage in, garbage out starts upstream: if the mask from the Mask Generator was wrong, the try-on faithfully honors it. Rerun the mask with better offsets before blaming this node. VRAM OOM means you asked for 1536x2048 with num_images 4 on a mid-range card - drop to 768x1024, one image, and close whatever else is hogging the GPU. And if the pose comes out wrong where CatVTON would have mangled it, that's FitDiT's strength showing: the pose map pins the body down, which is precisely the part of the pipeline you should keep intact.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| fitdit_model | FITDIT_MODEL | — | |
| mask | MASK | — | |
| pose_image | IMAGE | — | |
| model_image | IMAGE | — | |
| garment_image | IMAGE | — | |
| steps | INT | 2015–30 | — |
| guidance_scale | FLOAT | 2.001–5 | — |
| seed | INT | 00–2147483647 | — |
| num_images | INT | 11–4 | — |
| resolution | COMBO | 3 options: 768x1024, 1152x1536, 1536x2048 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |