Nodes/ComfyUI-ProportionChanger/ProportionChanger Interpolator
ComfyUI Node

ProportionChanger Interpolator

Adding in-between frames so your pose video doesn't jitter

By grmchn·Created about a year ago·Updated 3 months ago· 102
ProportionChanger Interpolator
  • pose_keypoint
  • interpolated_sequence
interpolation_frames0
methodlinear

Pose-driven video has a jitter problem. If you detect poses from a driving video, the per-frame detections wobble - a hand flickers, a foot lags a frame behind - and your downstream video model faithfully amplifies all of it. ProportionChanger Interpolator is the pack's answer: it inserts in-between frames between your existing keypoint frames to smooth the motion, a bit like optical-flow interpolation, but on the skeleton itself.

The honest scope check: it's a nice utility, not a headline feature. If your input already has enough frames at a stable frame rate, you'll often not need it - and the node itself is clear about that, since interpolation_frames defaults to 0 (no interpolation, pass-through). You reach for it when a pose sequence is too sparse or jittery to drive smooth generation: it's the "animator's in-betweening" step for keypoints.

How it works

For each consecutive pair of frames it adds interpolation_frames new frames (0–5 per gap) by interpolating the joint positions between them. The interesting part is the method dropdown:

  • linear - plain straight-line tween between the two poses. Simple, but motion can feel robotic.
  • ease_in_out - eases the start and end of each gap, which reads as more natural motion.
  • bezier - smooths through the endpoints; nicer curves than linear for swinging limbs.
  • momentum - uses the previous and next-next frames too, so the interpolated frames carry velocity from the surrounding motion instead of just lerping between two. The best pick for video shot from real motion, and the one with the most character.

Note it interpolates in the pack's keypoint space on the whole figure, not per-body-part - you won't get independent smoothing for hands vs torso. And it only interpolates between existing frames; it doesn't add lead-in/lead-out, so the first and last frames stay put.

The inputs

  • pose_keypoint - a frame sequence. A single frame passes through untouched (nothing to interpolate between).
  • interpolation_frames (0–5, default 0) - frames inserted per gap.
  • method - linear / momentum / bezier / ease_in_out.

Output is interpolated_sequence, the same POSE_KEYPOINT format, just longer.

Install

Shared pack install - ComfyUI Manager search "ComfyUI-ProportionChanger", or clone + pip install -r requirements.txt + restart. Pure numpy, no dependencies, no models. If the output ever looks wrong, first check that you actually passed a multi-frame sequence - feeding it a single frame is the one way to get nothing back, and it does that by design.

CategoryProportionChanger

Inputs (3)

NameTypeDefaultDescription
pose_keypointPOSE_KEYPOINT
interpolation_framesINT00–5
methodCOMBOlinear4 options: linear, momentum, bezier, ease_in_out

Outputs (1)

NameTypeDescription
interpolated_sequencePOSE_KEYPOINT