Nodes/ComfyUI_Fill-Nodes/FL Path Animator
ComfyUI Node

FL Path Animator

Draw a motion path and get WAN ATI coordinates out

By filliptm·Created 3 years ago·Updated about an hour ago· 628
FL Path Animator
  • image
  • image
  • mask
  • coordinates
frame_width512
frame_height512
frame_count30
shapecircle
shape_size20
shape_colorwhite
bg_colorblack
blur_radius0.0
trail_length0.00
rotation_speed0
border_width0
border_colorwhite
paths_data{"paths": [], "canvas_size": {"width": 512, "height": 512}}
timeout_seconds600

Directing motion in AI video is usually a matter of fighting text prompts until the subject drifts roughly where you wanted. FL_PathAnimator lets you just draw it. Open its editor, sketch a trajectory on a reference image, and the node animates a shape along that path frame by frame - and, more usefully, spits out a coordinate string formatted for WAN ATI so the motion you drew actually steers a Wan generation.

That's the real reason this node matters. It's not just a shape animator (though it is one); it's a friendly front-end for producing the point-track data that WAN ATI wants, without you hand-authoring JSON coordinates. You draw, it resamples to the 121 points ATI expects, you get a clean control signal.

How it works

The node pops a modal path editor over a reference image - the same pause-and-pick pattern as the pack's ImagePicker, where the workflow halts and waits for you to interact. You draw one or more paths; it then renders your chosen shape moving along them across the frame count, applying easing so the motion accelerates or eases as you set. Under the hood it resamples each path to 121 points, which is the length WAN ATI's coordinate format is built around, and emits that as a string alongside the rendered frames and a matching mask.

The inputs and outputs that matter

The required set defines the canvas and the shape: frame_width, frame_height, frame_count (how many frames the animation spans), shape (circle / square / triangle / hexagon / star), shape_size, and shape_color / bg_color as color strings.

The optionals you'll actually touch:

  • image (IMAGE) - the reference to draw your path over. Just the backdrop for the editor; it orients your trajectory.
  • paths_data (STRING, JSON) - where the drawn path is stored. The editor fills this; you rarely edit it by hand.
  • timeout_seconds (default 600) - how long it waits for you to finish drawing before giving up.
  • trail_length, blur_radius, rotation_speed, border_width/border_color - cosmetic controls on the moving shape.

Three outputs: image (IMAGE, the animation frames), mask (MASK, the shape as a mask sequence), and the one that matters most - coordinates (STRING), the WAN ATI-ready point track. Wire that into your ATI motion input.

When you'd reach for it

Steering Wan video motion deliberately: an object arcing across frame, a camera-subject drift, a guided pan. The rendered shape/mask are also handy on their own as an animated matte. It lives in the pack's WIP section, so it's capable but still evolving.

Installing it

ComfyUI ManagerComfyUI_Fill-Nodes → install → restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes

then restart. It needs the pack's frontend (JS) assets for the modal editor, which come with the install - do a hard browser refresh after restarting if the editor doesn't show up.

Common issues & troubleshooting

The workflow just hangs. By design - it's paused waiting for you to draw a path in the modal and confirm. If the editor didn't pop, hard-refresh the browser so ComfyUI loads the node's UI. If you don't interact within timeout_seconds, it bails.

Coordinates don't drive the motion I expected. The coordinates output is specifically WAN ATI format (121 points). It has to feed an ATI-aware motion input; plugging it somewhere that expects a different control signal won't do what you want.

Path looks jerky in the output. Try a smoother easing and check your frame_count - too few frames across a long path means big jumps between points. More frames = smoother travel.

Category🎨 FL Path Animator

Inputs (15)

NameTypeDefaultDescription
frame_widthINT51264–4096
frame_heightINT51264–4096
frame_countINT301–500
shapeCOMBOcircle5 options: circle, square, triangle, hexagon, star
shape_sizeINT202–500
shape_colorSTRINGwhite
bg_colorSTRINGblack
blur_radiusoptFLOAT0.00–50
trail_lengthoptFLOAT0.000–1
rotation_speedoptFLOAT0-360–360
border_widthoptINT00–20
border_coloroptSTRINGwhite
paths_dataoptSTRING{"paths": [], "canvas_size": {"width": 512, "height": 512}}
imageoptIMAGE
timeout_secondsoptINT60030–3600

Outputs (3)

NameTypeDescription
imageIMAGE
maskMASK
coordinatesSTRING