Nodes/tri3d-comfyui-nodes/ATR Parse Batch v5.1.0
ComfyUI Node

ATR Parse Batch v5.1.0

Label every body part and garment on a batch

By TRI3D-LC·Created 3 years ago·Updated about a year ago· 27
ATR Parse Batch v5.1.0
  • images
  • IMAGE

ATR (Adaptive Texture Recognition) is one of the classic human-parsing datasets, and its 18-class palette - background, hat, hair, sunglasses, upper/lower garment, dress, belt, shoes, bags, legs, arms - is the lingua franca of virtual try-on. tri3d-atr-parse-batch runs the ATR model over an image batch and returns the segmentation maps. It's the first step of the pack's garment pipeline: parse first, then tri3d-extract-masks-batch turns those colored maps into clean masks, and tri3d-extract-parts-batch cuts out actual garment patches.

What it does

One input - images, an IMAGE batch. It saves each frame to a temp folder inside the pack (atr_node/input), shells out to the pack's simple_extractor.py script with the --dataset atr flag, and reads back the colored segmentation PNGs as an IMAGE batch. Every pixel is labeled with one of the ATR palette colors, so a "mask" for the head is simply "all pixels that are color [192,128,0]".

The mechanics matter for two gotchas:

  • It's a subprocess, not in-process inference. The node runs python simple_extractor.py via os.system. Which Python? It checks a COMFY_PYTHON_PATH environment variable and falls back to python. If your ComfyUI runs in an embedded venv (the Windows portable build), python on PATH may not be your ComfyUI Python, and the script dies with an import error.
  • Model download on first run. The ATR weights (atr.pth) don't ship with the pack. The script pulls them from Google Drive via gdown on first execution into atr_node/checkpoints/. That's a multi-hundred-MB download and it can fail on rate limits - the node will look broken until the weights are in place.

What to expect

Segmentation quality is classic 2020-era ATR: solid on clearly separated garments and body parts, mediocre on overlap, hands, and unusual poses. For clean mannequin shots it's plenty. Output is an IMAGE batch of palette-colored maps; there's no transparency or alpha - the class encoding is pure color, which is exactly what the extract nodes expect.

Wiring it up

The canonical chain: LoadImagetri3d-atr-parse-batchtri3d-extract-masks-batch (tick the parts you want as masks) or tri3d-extract-parts-batch (get actual crops). Because the color mapping is baked into both sides, mixing this pack's parse with another pack's segmentation colors won't match - use them as a pair.

Installing

ComfyUI Manager (search "tri3d"), or:

cd ComfyUI/custom_nodes
git clone https://github.com/TRI3D-LC/tri3d-comfyui-nodes

Then pip install -r custom_nodes/tri3d-comfyui-nodes/requirements.txt (needs gdown for the weights and python-dotenv for env handling). Restart, run once, let it download the ATR weights, and keep an eye on your console.

Troubleshooting

  • ModuleNotFoundError when the script runs - wrong Python. Set COMFY_PYTHON_PATH to your ComfyUI Python (in .env or the environment) so the subprocess uses the environment that has torch and the pack's deps.
  • Hangs on first run - the gdown download; give it time or re-run.
  • Output maps look empty/dark - check the console for errors from the subprocess; the node returns results even when the script silently failed, which makes this easy to miss.

This is the pack's heaviest node in terms of moving parts - a subprocess and a Google Drive download - but once it's warm it's a reliable, boring segmentation step.

CategoryTRI3D

Inputs (1)

NameTypeDefaultDescription
imagesIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE