Nodes/ComfyUI-IG-Motion-I2V/⏸️ MI2V Pause
ComfyUI Node

⏸️ MI2V Pause

A brake pedal for your I2V workflow

By IDGallagher·Created 2 years ago·Updated 2 years ago· 41
⏸️ MI2V Pause
  • motion_mask
  • images
  • MASK
  • IMAGE
  • STRING
motion_vectors
pause_executionfalse

MI2V Pause is the least glamorous node in the IG Motion I2V pack and quietly one of the most important. It does exactly one thing: it can stop execution dead in its tracks. Everything upstream of it has already run; everything downstream waits until you say go. In a pack where the expensive nodes burn through VRAM and minutes, a brake pedal is not a luxury.

Why this node exists

The Motion-I2V workflow has two moments where you need to intervene mid-run, and the README names both:

  1. Loading a correctly-sized image. The Flow Predictor silently resizes your frame to the nearest multiple of 8, and the Motion Painter draws arrows in pixel coordinates on the image you show it. If you draw arrows on a 1500px image and the predictor runs at 1024, your arrows land in the wrong place. The fix is the README's own pattern: pause, load the resized image, draw, unpause.
  2. Checking the flow before committing. Flow prediction is cheap-ish. The 25-step, 16-frame animation pass is not. The Pause node lets you stop between them, stare at the color-coded flow preview, and decide whether this plan deserves a render.

The shipped example workflow uses two Pause nodes - one parked in the image path, one in the motion-vectors/mask path - so you can control each intervention independently. That's the intended usage, not a hack.

How it works

All three data inputs (motion_vectors STRING, motion_mask MASK, images IMAGE) are optional pass-throughs. When pause_execution is False, the node just echoes whatever came in through its three outputs (MASK, IMAGE, STRING). When it's True, the node returns an ExecutionBlocker - a ComfyUI mechanism that halts the graph downstream of the node without erroring. Nothing gets animated; nothing crashes. Toggle the boolean, queue again, and flow resumes.

Note the outputs are positional - MASK first, then IMAGE, then STRING - so wire them to the matching inputs on the other end, don't just assume the type lines up. If a pass-through is empty, you get an empty of that type.

A minimal flow

Load Image ──> MI2V Pause (images) ──> MI2V Flow Predictor (first_frame)
MotionPainter ──> MI2V Pause (motion_vectors/mask) ──> Flow Predictor
Flow Predictor ──> MI2V Pause (flow checkpoint) ──> Flow Animator

Install

Same pack as the rest - ComfyUI Manager (search "IG Motion I2V") or:

cd ComfyUI/custom_nodes
git clone https://github.com/IDGallagher/ComfyUI-IG-Motion-I2V
# restart ComfyUI

And no, this node needs no model of its own and no special dependencies - it's pure plumbing. The heavy stuff (diffusers, cupy-cuda12x, omegaconf, xformers, and the ~17.3GB checkpoint the predictor downloads) all belongs to the other nodes in the pack.

Gotchas

The trap here is thinking the boolean alone is enough. Pausing only helps if you changed something before unpausing - that's the whole point, so remember the loop: run with pause_execution = True, do your image/arrow/flow-review work, set it False, queue again. Also worth knowing: this is a tiny, single-purpose node, and if you find yourself wanting a generic pause that also gates arbitrary non-pack data, that's a different tool. This one only carries the three types its inputs define - which, conveniently, is exactly what the rest of this pack produces.

Category🐓 IG Motion I2V Nodes/Flow

Inputs (4)

NameTypeDefaultDescription
motion_vectorsoptSTRING
motion_maskoptMASK
imagesoptIMAGE
pause_executionoptBOOLEANfalse

Outputs (3)

NameTypeDescription
MASKMASK
IMAGEIMAGE
STRINGSTRING