Taco Animated Image Loader
Load every frame of a GIF, WebP or APNG as a batch
- IMAGE
Taco Animated Image Loader is the node that finally lets you drag a real animated file - a GIF, an animated WebP, an APNG - into ComfyUI and get every frame out as a batch. ComfyUI's built-in Load Image is stubbornly single-frame, which is a constant annoyance the moment you want to do anything frame-based. This is the fix: it opens the file, steps through each frame, and hands you one IMAGE tensor with all of them stacked on the batch dimension.
It's under Taco_Nodes/Gifs, and it's the natural front half of the pack's animated pipeline. Its output feeds a sampler (for per-frame img2img work) and eventually Taco Gif Maker, which recombines the processed batch back into an animated file.
Inputs and output
- image - a dropdown listing files in ComfyUI's
inputfolder. It only lists files PIL can open as multi-frame, so a static PNG or JPEG won't even appear in the list - that's the filter doing its job, not a bug. The dropdown has an upload button and drag-and-drop support, so you can drop a GIF straight onto the node without hunting through the input folder. - IMAGE (output) - the batch of frames,
[N, H, W, C], in file order. Wire it into a sampler'simagesinput (via VAEDecode's img2img path) or straight to image-processing nodes that operate on batches.
How it works
PIL opens the file and walks it frame by frame: frame.seek(n) for n = 0, 1, 2, … until it hits an EOFError and stops. Each frame gets the EXIF orientation applied, converted to RGB, normalized to 0–1 floats, and stacked into one tensor. If you feed it an 8-frame GIF, you get a batch of 8 images. That's the whole trick, and it's why the node carries no dependencies beyond what ComfyUI already ships.
Two behaviors worth knowing:
- The node hashes the file contents to detect changes, so if you replace the GIF in the input folder, the workflow re-runs with the new frames instead of silently keeping the old result.
- It validates at load time and will refuse a non-animated file with "Invalid image type, must be animated."
What it's for, honestly
This is the node for the "animate an existing animation" family of workflows, and also for the classic per-frame img2img loop: batch the frames, run each through a sampler with slightly different settings, and reassemble. Note that this node is a plain loader - it doesn't add motion, it just makes the frames available. If you're after genuinely new motion rather than re-rendered frames, you're looking for AnimateDiff or a video model instead, and this node won't help you there.
Installing it
Part of ComfyUI-TacoNodes. Install via ComfyUI Manager by searching "ComfyUI-TacoNodes", then restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes.git
Restart ComfyUI and look under Taco_Nodes/Gifs. No model downloads, no requirements.txt - nothing extra to install. It's a small personal pack (Apache 2.0, single maintainer, low community footprint), so if you hit something odd, the GitHub repo is the only real support channel.
One thing to expect: the README lists "provide a mask output" as a future goal, and the mask logic is sitting commented out in the source. Don't go looking for a MASK socket on this node - it doesn't exist yet. If you need per-frame masks, the Taco Img2Img Animated Loader is the sibling node that does ship a mask output.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | 0 options: |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |