(Down)load Fashn VTON
One node that downloads and loads your entire try-on model
- pipeline
Virtual try-on in ComfyUI has historically been the unfun kind of magic: CatVTON-on-Flux wrappers that want 24GB of VRAM, gated model repos, fp8 conversion hacks. The (Down)load Fashn VTON node is the part of this pack that just isn't that. It's the front door to FASHN VTON v1.5, a 972M-parameter, Apache-2.0 try-on model that renders in pixel space, needs no VAE, and by default doesn't even need a person mask. The node's job is exactly the two things its name mangles: download the weights on first use and load the pipeline into memory, handing you one object that every other node in this pack consumes.
What it actually does
When you run it, the loader checks ComfyUI/models/fashn-vton/ and pulls whatever's missing from Hugging Face via hf_hub_download:
model.safetensorsfromfashn-ai/fashn-vton-1.5yolox_l.onnxanddw-ll_ucoco_384.onnxfromfashn-ai/DWPose
Those two ONNX files are the DWPose detector that the inference node uses to figure out where the person's joints are. Everything lands in models/fashn-vton/ with dwpose/ nested inside, and the download is skipped entirely if the files already exist. Then it constructs the TryOnPipeline, which loads the model weights and the human parser but keeps them on CPU until inference actually moves them to the GPU. So the loader itself is light; the first inference run is where the real VRAM action happens.
One thing people miss on first contact: the download happens at execution time, not install time. Your first queue run will sit there printing "Downloading TryOnModel weights..." while it fetches a nontrivial chunk of data. That's not a hang - it's a download you didn't know you agreed to.
Inputs and outputs that matter
There's exactly one input, model, and it's a dropdown with a single choice: fashn-ai/fashn-vton-1.5. You can't change it, and you won't need to. It's just there so the pack has somewhere to point when FASHN ships v2.
The single output, pipeline (type FASHN_VTON_PIPELINE), is the whole loaded model. Wire it into the pipeline input of Fashn VTON Inference. Nothing else connects to it, nothing else connects from it. That's the whole node.
Install
Via ComfyUI Manager, search "ComfyUI-FASHN-VTON" and hit install. Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/drphero/ComfyUI-FASHN-VTON
cd ComfyUI-FASHN-VTON
pip install -r requirements.txt
If you're on the portable build, run that pip line with the portable install's own python, not your system python - this matters more than it sounds like it does (see below). The heavyweight dependency in requirements.txt is onnxruntime-gpu (for DWPose) plus fashn-human-parser, the segmentation package the pipeline needs even in its maskless mode.
Common issues
ModuleNotFoundError: No module named 'fashn_human_parser'- this is the one real gotcha, reported the day the pack launched. It means the requirements never made it into the python environment ComfyUI actually runs. Fix:pip install fashn-human-parser(or the full-r requirements.txt) in the correct venv, then restart ComfyUI.- First run "hangs" - it's downloading. Watch the console for the
FashnVTON: Downloadinglines before you kill it. - Offline / air-gapped setup - the README's manual-download layout is your friend: drop
model.safetensorsintomodels/fashn-vton/and the two ONNX files intomodels/fashn-vton/dwpose/, and the loader will skip straight to loading.
The model itself is Apache-2.0 and ungated on Hugging Face, so no login and no license wall - a genuinely welcome contrast to the earlier generation of try-on wrappers that required you to accept a gated repo before anything would run.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | fashn-ai/fashn-vton-1.5 | 1 options: fashn-ai/fashn-vton-1.5 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipeline | FASHN_VTON_PIPELINE | — |