🎬 Omnimatte Loader
The node that eats 48 GB for lunch
- OMNIMATTE_PIPE
- VAE
Everything in the TP-OmnimatteZero pack hangs off one node, and that node's job is mostly to pay the entrance fee. OmnimatteLoader pulls down the entire LTX-Video 0.9.7 model - the 13B one, in diffusers format, roughly 48 GB of weights - and wraps it in the pipeline the rest of the pack needs. The first time you run it, it will download for a while and you'll think it's hung. It isn't. That's the price of doing video layer decomposition on a diffusion model instead of on a magic trick.
This is the pack's port of OmnimatteZero, the research project that decomposes a video into background plus per-object "omnimatte" layers - and omnimatte layers don't stop at the object; they include its shadow, its reflection, the splash. The Loader doesn't do any of that itself. It just loads the engine: an LTXConditionPipeline from the model repo, with a custom VAE swapped in that has the extra compositing method the Composition node needs.
What the inputs actually mean
Most of the loader is "leave it alone." The two that matter:
download_location- defaults tocomfyui_models, which saves the model intoComfyUI/models/diffusers. Keep it there. If you sethuggingface_cacheinstead, the weights go into the standard HF cache and anything else that downloads the same repo can share them. The one thing you don't want is to delete the folder and re-download 48 GB twice.cpu_offload- defaults to on, and it's the reason this node runs at all on anything smaller than a datacenter card. The README's author lists RTX 6000 Ada and H200s as their test machines, so on a 12–24 GB card you want offload on and patience on.vae_float32- default on, and the tooltip says why: it avoidsslow_conv3derrors on some GPUs. Leave it.vae_tiling/vae_slicing- off by default. Turn them on only if you're OOMing; tiling in particular can add artifacts on certain frame counts.precision-bf16orfp16. Default bf16 is right for Ampere and newer.model_id- defaults toa-r-r-o-w/LTX-Video-0.9.7-diffusers. You basically never touch this.cache_dir- optional manual override for where the model goes, if you have opinions.
Outputs
You get two: an OMNIMATTE_PIPE (the loaded pipeline, fed into Mask Gen and Object Removal) and a VAE - and it's not the stock VAE. It's the custom one with the forward_composition method baked in, which is exactly why Composition insists on this node's VAE rather than any random VAE you have lying around.
Installing and the big first run
Install is the usual two-liner, and the README's own instruction is faithful:
cd ComfyUI/custom_nodes
git clone https://github.com/tpc2233/ComfyUI-TP-OmnimatteZero.git
pip install -r ComfyUI-TP-OmnimatteZero/requirements.txt
Then restart ComfyUI. Easier: ComfyUI Manager, search "ComfyUI-TP-OmnimatteZero", install, restart. The requirements are light - diffusers>=0.32.1, transformers, accelerate, sentencepiece, protobuf - the heavy lifting is the model itself, which the loader auto-downloads on first run. Make sure you have ~50 GB free and a connection that survives a big pull.
Where people get burned
- The wait. This is a 13B model in fp16/bf16. First run downloads ~48 GB, every run then loads it. The offload defaults are the pack trying to save you.
slow_conv3dcrashes. If you see that error,vae_float32somehow got turned off. Turn it back on.- Disk space. Under 60 GB free and the download fails halfway with an error that looks unrelated. Clear space first.
- OOM. Keep
cpu_offloadon; if it still dies, flipvae_tilingandvae_slicingon. Expect slow over dead.
One honest warning up front: this pack is genuinely heavy, and the community's omnimatte installs have a reputation for it - people report crashing even on 24 GB cards with the sibling pack, mostly from model bloat. The Loader is the moment of truth for whether your machine is up for the whole pipeline.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model_id | STRING | a-r-r-o-w/LTX-Video-0.9.7-diffusers | — |
| precision | COMBO | bf16 | 2 options: bf16, fp16 |
| download_location | COMBO | comfyui_models | 2 options: comfyui_models, huggingface_cache |
| vae_tiling | BOOLEAN | false | Enable VAE tiling for lower VRAM. May cause artifacts on some frame counts. |
| vae_slicing | BOOLEAN | false | Enable VAE slicing to process frames sequentially (saves VRAM). |
| cpu_offload | BOOLEAN | true | Enable model CPU offload to reduce VRAM usage. |
| vae_float32 | BOOLEAN | true | Force VAE to float32 (avoids slow_conv3d errors on some GPUs). |
| cache_diropt | STRING | Optional: Override download path manually. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| OMNIMATTE_PIPE | OMNIMATTE_PIPE | — |
| VAE | VAE | — |