Animation Frame Remover
The cleanup half of the animation timing trick
- images
- images
- removal_report
This is the quiet second half of the pair. The Enhanced Animation Timing Processor inserts gray padding frames into an animation so a video model generates cleanly; this node takes the generated video's frame batch and removes exactly those padding frames, using the removal_indices string the processor handed you. Nothing more, nothing less - which is the whole appeal. It's a one-job node that doesn't need its own article in the README because its job is "be the undo step."
It's useful because of a subtle thing about how these timing pipelines work. The padding frames aren't garbage - they carried the generated video through the model's frame grid, and now they're just in the way. Remove them and you're back to the original frame count, with your animation's true timing intact. The generated content in the real keyframes survives; the filler that was only there to satisfy the model's frame requirements goes away. Without this node you'd be manually keeping track of which indices were padding, which is exactly the kind of bookkeeping that goes wrong at frame 200.
What you actually do
Two required inputs: images (the generated frame batch) and removal_indices, a comma-separated list of frame indices - the tooltip helpfully notes this is "from timing processor." Paste it in, or better, wire the processor's removal_indices output straight across. Since both live in TrentNodes and the string is comma-separated text, the wire is the reliable way: no copy-paste, no transcription errors, and the graph re-runs correctly whenever you re-queue.
Outputs are images (the trimmed batch) and removal_report (a string telling you what got removed and where). debug_info toggles the console printout when you want to verify a tricky run.
Gotchas
- Order matters. The indices were computed against the processed (padded) batch, so this node must run after generation on the padded frames - not on the original source. Wire it in the post-sampler position.
- Out-of-range indices are the one real failure mode. If you change something upstream that changes the batch length, an index that no longer exists will cause problems. Re-run the processor so
removal_indicesmatches the current batch. - Don't remove the real keyframes. The processor's
preserve_*flags exist so holds aren't fully grayed out - if you've turned those off, theremoval_indiceslist will include frames you want to keep. When in doubt, checktiming_reportfrom the processor before committing.
It ships in TrentNodes, so install is the pack install: ComfyUI Manager (search "Trent Nodes"), or git clone https://github.com/TrentHunter82/TrentNodes into ComfyUI/custom_nodes/ and pip install -r requirements.txt. No models, no extra downloads, pure frame bookkeeping. For its size it's one of the more genuinely useful utilities in the pack - small, deterministic, and it removes an entire class of "I forgot to strip the padding" errors from animation workflows.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| removal_indices | STRING | Comma-separated list of frame indices to remove (from timing processor) | |
| debug_infoopt | BOOLEAN | false | Print information about removed frames |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| removal_report | STRING | — |