ATM VFI (only supports 2x multiplier)
The newest, transformer-based interpolator in the pack
- frames
- optional_interpolation_states
- IMAGE
ATM is the newest model in the ComfyUI Frame Interpolation pack - a 2025 transformer-based interpolator, so if you want to try the current state of the art rather than a battle-tested 2022 model, this is the one to poke at. The tradeoff is the usual for the freshest option: it only does 2x interpolation, and it's not the fastest thing in the pack.
Frame interpolation, in a sentence: it invents new frames between your existing ones so a choppy low-fps clip plays smooth. You generate video cheaply at a low frame count with AnimateDiff or Wan, then interpolate up to a watchable frame rate instead of paying to diffuse every real frame. ATM is one option for that step, and a modern one.
How it works
ATM stands for "Attention-to-Motion," from a 2025 ICASSP paper. Instead of leaning purely on convolutional flow estimation, it uses a transformer to relate motion across the frame via attention - the idea being that attention can pick up long-range and global motion (a whole camera pan, say) that a local convolutional model handles less gracefully. The global_motion control below is the user-facing handle on exactly that capability. As with the rest of the pack, you don't touch the internals; you choose a checkpoint and a motion mode.
The inputs that matter
- frames (IMAGE) - your clip, at least 2 frames, from a VAE decode or a Load Images node.
- ckpt_name - three weights:
atm-vfi-base.pt(the standard),atm-vfi-lite.pt(lighter and faster), andatm-vfi-base-pct.pt(a base variant with different tuning). Start withbase, drop toliteif it's too slow or heavy. All download on first run. - multiplier (INT, default 2) - locked at 2. ATM only does 2x, as the node's own display name spells out. For a bigger jump, run a second interpolation pass or use a higher-multiplier model.
- global_motion - three modes:
On,On with Ensemble (slowest), andOff (fastest). This toggles ATM's global-motion handling.Onis the sensible default for footage with camera movement;On with Ensembleruns extra passes for a quality bump at a real speed cost;Offis fastest and fine when the camera is mostly static. If a pan looks smeary, this is the first knob to turn. - clear_cache_after_n_frames (INT, default 10) - the OOM valve; lower it on long clips if memory gets tight.
An optional optional_interpolation_states input takes a Make Interpolation State List for skipping specific frame pairs. Usually left unwired.
Output is a single IMAGE batch - send it into a Video Combine node (VideoHelperSuite) to encode.
Installing it
It ships in the whole ComfyUI Frame Interpolation pack:
- ComfyUI Manager - search ComfyUI Frame Interpolation, install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/Fannovel16/ComfyUI-Frame-Interpolation, thenpython install.py(Linux, in your ComfyUI venv) orinstall.bat(Windows). Restart.
The ATM checkpoints download on first use. As a newer addition, make sure your pack install is up to date (git pull in the custom node folder, or update via ComfyUI Manager) - an older copy may not have this node at all.
Common issues
If ATM feels slow, that's partly the transformer design and partly your settings: switch global_motion from On with Ensemble to plain On or Off, and try the lite checkpoint. Those two changes buy back most of the speed.
The pack-wide install issues still apply: cupy is the dependency that breaks installs, so run install.bat on Windows rather than install.py. A GPU sitting idle during interpolation means the backend fell back to CPU - check cupy against your CUDA version. And since ATM is 2x-only, plan a second pass if you need higher frame-rate multiplication.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 3 options: atm-vfi-base.pt, atm-vfi-lite.pt, atm-vfi-base-pct.pt | |
| frames | IMAGE | — | |
| clear_cache_after_n_frames | INT | 101–1000 | — |
| multiplier | INT | 22–2 | — |
| global_motion | COMBO | 3 options: On, On with Ensemble (slowest), Off (fastest) | |
| optional_interpolation_statesopt | INTERPOLATION_STATES | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |