Nodes/ComfyUI-TP-OmnimatteZero/🧹 Omnimatte Object Removal
ComfyUI Node

🧹 Omnimatte Object Removal

Erase a thing from a video and watch the hole fill in

By tpc2233·Created 7 months ago·Updated 7 months ago· 36
🧹 Omnimatte Object Removal
  • pipe
  • video
  • total_mask
  • background_video
steps30
guidance_scale3.0
seed42
prompt
negative_promptworst quality, inconsistent motion, blurry, jittery, distorted

This is the node you googled for. Mask a thing, run OmnimatteObjectRemoval, and the thing leaves the frame while the background fills in behind it - no rotoscoping, no frame-by-frame painting, no per-frame consistency headaches. It's the pack's reason for existing, and everything else in it exists to feed this one clean inputs.

How it works

It's mask-guided video regeneration, running on the LTX-Video 0.9.7 model the Loader brought in. Your total_mask tells the sampler "everything under here is a lie, regenerate it"; the unmasked video stays anchored, which is what keeps the rest of the frame stable frame after frame. Where a still-image inpaint would fill a hole with whatever, this has to fill it with something that moves plausibly over time - that's the hard part, and it's why you need a video diffusion model for it at all.

The prompt is optional. With the default empty prompt the model just fills the hole with whatever's most plausible, and the default negative prompt - worst quality, inconsistent motion, blurry, jittery, distorted - is the author's built-in guard against the wobble these models love to produce. If you want the fill to be specific (say, the removed person was standing in front of a garden, and you want a garden), describe it in prompt; an empty prompt is "just make it not weird."

The dials

  • steps - 1–100, default 30. Remember this is a 13B model; 30 steps is already real time. If the fill looks fine at 20, drop it - nobody's grading you on ceremony.
  • guidance_scale - 0–20, default 3.0. LTX is a low-CFG model; stay in the 2–4 range. If the fill drifts off into hallucination, lower it, don't raise it.
  • seed - default 42. The fill is a hallucination either way; this just shuffles which hallucination you get. Stuck with a bad one? Change the seed before you change everything else.
  • prompt / negative_prompt - optional, defaults as above. The negative prompt is genuinely good; don't delete it out of spite.

Output is background_video (an IMAGE sequence) - wire it into OmnimatteComposition to put your subject on a new background, into VHS_VideoCombine to save it, or straight into a preview node to check your work.

How to install it

It ships in the pack, so install once and you've got all four nodes. ComfyUI Manager: search "ComfyUI-TP-OmnimatteZero". Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/tpc2233/ComfyUI-TP-OmnimatteZero.git
pip install -r ComfyUI-TP-OmnimatteZero/requirements.txt

Restart ComfyUI. No model files to fetch by hand - the Loader downloads the LTX 0.9.7 weights (~48 GB) the first time the workflow runs.

Where people get burned

  • Hallucination. This is the classic complaint about omnimatte object removal, and it's not unique to this pack - community threads on the research project report the model inventing things into the hole. The fixes, in order: better total_mask (cover the object's shadow/reflection - that's the whole point of the Mask Gen node), a descriptive prompt so the fill has somewhere to go, and a lower guidance_scale.
  • It's slow. 13B model, video, 30 steps. This node is the reason the whole pack needs a serious GPU. cpu_offload on the Loader helps; reducing steps helps more.
  • The fill wobbles. That's the inconsistent motion your negative prompt is already cursing. Let it run to completion before judging - mid-sampling video looks terrible by design.

One workflow note: the pack ships a working graph in its workflows/ folder (VideoHelperSuite loads the clip, core ImageToMask builds the object mask, Loader → Mask Gen → this → Composition). Load it, swap in your footage, and resist the urge to rebuild from scratch. The node order matters: total mask first, then removal, then compositing.

CategoryOmnimatteZero

Inputs (8)

NameTypeDefaultDescription
pipeOMNIMATTE_PIPE
videoIMAGE
total_maskMASK
stepsINT301–100
guidance_scaleFLOAT3.00–20
seedINT420–4294967295
promptoptSTRING
negative_promptoptSTRINGworst quality, inconsistent motion, blurry, jittery, distorted

Outputs (1)

NameTypeDescription
background_videoIMAGE