Load MotionBrush From Tracking Points Without Model
Prototype Brushes Without the 9.5 GB Checkpoint
- MotionBrush
Load MotionBrush From Tracking Points Without Model is the "souped-up, no-engine-required" version of the tracking-points loader. Where its model-gated twin needs a loaded checkpoint just to know the dimensions, this node asks you for the numbers directly - model_length, width, height - and builds a MotionBrush from tracking points with zero model load. Same conversion, no heavyweight.
That matters more than it sounds. The whole expensive part of this pack is loading the DragNUWA checkpoint into VRAM, and it happens before you can even build a brush if you use the model-typed nodes. This node decouples brush design from inference, so you can lay out trajectories, check your brush, composite it with camera moves, and only call in the model when you're ready to actually generate frames. For anyone iterating on a look, that's the difference between a slow feedback loop and a snappy one.
The conversion itself is identical to the other loader: your JSON trajectories are spline-interpolated across model_length frames and written as per-pixel displacement into a dense (frames, height, width, 2) tensor. Inputs are explicit here:
- model_length - default 14. Match whatever your checkpoint will eventually be set to.
- width / height - brush resolution, defaults 576x320 in the model version but 36x20 here (the small defaults are just placeholders - set them to your real target).
- tracking_points - the JSON string,
[[[x0,y0],[x1,y1],...], ...], from the author'stools/draw.htmltrajectory tool or by hand. Coordinates in brush pixels.
Output
A MotionBrush at the size you declared. It'll drop into CompositeMotionBrushWithoutModel or BrushMotion - but note that BrushMotion and DragNUWA Run MotionBrush apply brushes at the checkpoint's resolution, so your declared numbers must match the eventual run node, or motion lands in the wrong coordinates.
The trap: it's on you to keep numbers straight
The whole "without model" family trades convenience for discipline. The model-typed nodes can't lie to you - they read the real dimensions. This one trusts whatever you type. If you prototype a brush at 36x20 and forget to bump it to 576x320 before the run, you'll get a nearly empty flow field and wonder why nothing moves. Make the width/height match your checkpoint's dimension from the start.
The deeper honesty about the pack remains: this is 2024-era SVD tech, and the dense flow fields you're hand-building here will still produce soft, occasionally warpy video. But as a way to design motion cheaply before paying for inference, this node is the right tool, and it's the one the pack's own "Without Model" philosophy keeps pointing you back to.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model_length | INT | 14 | — |
| width | INT | 36 | — |
| height | INT | 20 | — |
| tracking_points | STRING | [[[1,1],[2,2]]] | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MotionBrush | MotionBrush | — |