Nodes/ComfyUI-FitDiTx/FitDiT Virtual Try-on
ComfyUI Node

FitDiT Virtual Try-on

The node that actually puts the clothes on — FitDiT Virtual Try-on

By ihmily·Created 7 months ago·Updated 7 months ago· 0
FitDiT Virtual Try-on
  • model
  • model_image
  • garment_image
  • mask
  • pose_image
  • output
steps20
guidance_scale2.0
seed-1
resolution1152x1536
num_images1

This is the payoff node. The other two FitDiT nodes are load-and-prep; FitDiT Virtual Try-on is the one that takes your person photo, your garment photo, and returns the dressed image. If you googled "FitDiT ComfyUI" you're probably here for this node, and the good news is it works about as well as the paper previews suggested - with one honest caveat we'll get to.

Why reach for a purpose-built try-on model instead of telling Flux Kontext or Qwen-Image-Edit to "change the shirt"? Because those regenerate the whole frame and drift on everything you didn't touch. FitDiT is trained for one job: authentic garment detail - patterns, logos, fabric texture - on a body it's told not to move. It's built on a diffusion transformer (the SD3 DiT lineage), and it shows in the results. The trade-off is that it needs a mask and a pose skeleton as inputs, which is where the rest of this pack comes in.

How it works

The node pads your model image, garment, mask and pose image to the resolution you pick, runs the two-transformer FitDiT pipeline - one transformer encodes the garment, one does the try-on, with a pose guider keeping the skeleton locked - then crops back to your original image size. Output comes out at the same dimensions you put in, which is nicer than most try-on tools that just dump a fixed-size result at you.

The inputs that matter

  • model - the FITDIT_MODEL from FitDiT Load Model. Feed it here and nowhere else.
  • model_image / garment_image - the person and the garment.
  • mask and pose_image - straight from FitDiT Generate Mask. These two are your quality levers; a sloppy mask produces seams no sampler setting can fix.
  • steps (default 20, 15–50) and guidance_scale (default 2.0). This is a DiT, not SDXL - don't crank guidance to 7 thinking you're being helpful. The model was tuned near 2.
  • resolution - 768x1024, 1152x1536 (default, same as the online demo), or 1536x2048. This is your VRAM dial as much as your quality dial.
  • seed - -1 means random; set a fixed seed when you're comparing candidates.
  • optional num_images (1–4) - generate a batch and pick the winner.

Output

A single IMAGE tensor (a batch when num_images is above 1), which you wire straight into a Save Image or Preview node. Nothing exotic.

Common issues

  • Pattern fidelity isn't 100%. Community consensus puts open-source try-on models at roughly 80–90% on pattern and fabric matching. Stripes and small logos will occasionally drift or soften. That's the state of the art, not a bug in your settings.
  • Body shape can shift subtly. Try-on models regenerate the masked region, so the subject can come back a touch slimmer or with a slightly different posture. All of them do this - FitDiT is on the milder side, and the pose_image from Generate Mask keeps the pose locked, which is an advantage over CatVTON.
  • VRAM. Default 1152x1536 is chunky. If it OOMs, drop to 768x1024 or enable offload on the Load Model node - people do run this pack on 8GB cards.
  • Feed it a flat, front-facing product shot of the garment. A garment worn by someone else confuses the model and the "detail authenticity" pitch collapses.

Install is the pack-level routine: ComfyUI Manager (search "ComfyUI-FitDiTx") or cd ComfyUI/custom_nodes && git clone https://github.com/ihmily/ComfyUI-FitDiTx && pip install -r requirements.txt, then grab the models - see the FitDiT Load Model page for the download commands, because that's the step that takes the disk space and the patience.

CategoryFitDiT

Inputs (10)

NameTypeDefaultDescription
modelFITDIT_MODEL
model_imageIMAGE
garment_imageIMAGE
maskMASK
pose_imageIMAGE
stepsINT2015–50
guidance_scaleFLOAT2.01–5
seedINT-1-1–2147483647
resolutionCOMBO1152x15363 options: 768x1024, 1152x1536, 1536x2048
num_imagesoptINT11–4

Outputs (1)

NameTypeDescription
outputIMAGE