Allegro Decoder
Turning 88 frames of latent mush back into something you can watch
- latents
- vae
- images
If AllegroSampler is the engine, AllegroDecoder is the part that makes the result human-viewable. The sampler returns latents in Allegro's compressed 3D latent space - noise-shaped tensors that carry both spatial and temporal information. This node runs the VAE decode pass that turns them into actual pixel frames you can preview, save, or feed into whatever comes next. It's the last stop in the default text-to-video chain, and it's the node you forget to mention when you show someone the pretty result.
It's the mirror image of AllegroEncoder: same VAE, same batch control, opposite direction. The decoder takes the latent video, passes it through the VAE's decoder network, and outputs a standard IMAGE batch - one tensor of 88 frames at 1280×720 - which every other ComfyUI video tool understands.
How it works
Under the hood it pulls the VAE's decoder and post-quantization conv onto the GPU in bf16 (or whatever model_management.vae_dtype decides your card should use), unscales the latents by the VAE's scale_factor, then runs the decode in local batches. That batch input (1–16, default 1) controls how many latent slices are decoded per pass: crank it up and the decode finishes faster, at the risk of a GPU OOM. For an 8GB card the README's advice is to keep it modest - the author's own verified 3070 setup loads the VAE decoder separately and doesn't overreach.
Two nice touches worth knowing. First, if you've configured a preview method in ComfyUI Manager, this node shows you a JPEG preview of a random intermediate frame as the decode progresses - a small reward at the end of a long generate. Second, it's ComfyUI-standard in and out, so whatever you attach on the output side just works. The example workflow sends images into VHS_VideoCombine to write an actual .mp4; you can equally preview it directly or shove it into a frame interpolator (Allegro natively renders 15 FPS, and 30 FPS interpolation - say via EMA-VFI - is the standard finishing move).
The inputs that matter
There are only three, and two of them are plumbed for you:
- latents (
LATENT) - wire this from AllegroSampler (or AllegroTI2VSampler). Required. - vae (
VAE) - wire this from the second output of LoadAllegroModel (or LoadAllegroTI2VModel). Required. - batch - leave at 1 unless the decode feels slow and you have VRAM to spare.
It returns images (IMAGE).
Install
It ships in the ComfyUI-Allegro pack, so the install is the pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/bombax-xiaoice/ComfyUI-Allegro
cd ComfyUI-Allegro && pip install -r requirements.txt
Restart ComfyUI and the node appears under the "Allegro" category.
Common issues
The decoder inherits the pack's environment quirks rather than having its own: if you installed the pinned requirements.txt over a mature ComfyUI and your image nodes started misbehaving, that's the dependency conflict, not this node. On the decode itself, the failure mode is boring and predictable - batch too high OOMs on small cards. If that happens, drop it back to 1; the decode is the cheap part of the pipeline anyway.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| latents | LATENT | — | |
| vae | VAE | — | |
| batch | INT | 11–16 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |