Nodes/ComfyUI-Allegro/Allegro Sampler
ComfyUI Node

Allegro Sampler

Sampling 88 frames of Allegro, correctly

By bombax-xiaoice·Created 2 years ago·Updated about a year ago· 5
Allegro Sampler
  • pipe
  • positive
  • negative
  • latents
  • latents
frames88
width1280
height720
steps100
guidance7.5
seed0
low_vram_modefalse

This is the node where Allegro actually happens - where your prompt conditionings get denoised, frame by frame, into a latent video. It's also where the famous part starts: a full 88-frame generation is a multi-minute commit even on a decent card, and on an 8GB GPU with offloading it's closer to a coffee break. If you came from image models where "sampler" means a 20-step blur, recalibrate. This is the long pole of the whole workflow, and it's the node people leave running overnight.

How it works

AllegroSampler runs the vendored AllegroPipeline denoising loop with an Euler ancestral scheduler - the same scheduler family the original rhymes-ai code uses. You feed it the pipe from LoadAllegroModel plus the positive and negative CONDITIONING outputs from AllegroTextEncoder, and it iteratively removes noise from a latent video tensor of shape frames × height × width over steps (default 100) at a guidance of 7.5.

The core trick for fitting this on consumer cards is low_vram_mode. Off, the whole 2.8B transformer gets shoved onto the GPU at once. On, the pipeline loads its 32 transformer blocks one by one, the VAE decoder loads separately, and the T5 text encoder falls back to CPU - which is exactly how the README's author verified it on a single RTX 3070 with 8GB. If you have 16GB+ of headroom, ComfyUI's --highvram flag loads everything at once and spares you the CPU↔GPU shuffling, which is slower than it sounds (PCIe is ~11x slower than VRAM bandwidth).

The sampler returns latents (LATENT), which you almost always pipe straight into AllegroDecoder. It also wires itself into ComfyUI's latent preview system, so if you've set a preview method in ComfyUI Manager you'll see each denoising step instead of staring at a frozen progress bar for ten minutes. Do that. The README recommends it for a reason.

The inputs that matter

  • frames / width / height - defaults are 88, 1280, 720, and you should treat those as gospel. The author only verified 88 frames: 24 frames produced "random mosaics," and 560-wide output grew noisy bars down both edges. This is not a node begging to be tuned away from its defaults.
  • steps / guidance - 100 steps and 7.5 guidance are the sane defaults; guidance 0–20 is available if you want to experiment.
  • seed - locked for reproducibility, same as any ComfyUI node.
  • latents (optional) - skip it entirely for a random start. If you do wire in latents from AllegroEncoder, the batch size must be exactly a quarter of your frame count (e.g. 22 for 88 frames), per the README. Get that wrong and the shapes won't line up.

Install & wiring

It's part of the ComfyUI-Allegro pack, so install once:

cd ComfyUI/custom_nodes
git clone https://github.com/bombax-xiaoice/ComfyUI-Allegro
cd ComfyUI-Allegro && pip install -r requirements.txt

Then the chain is LoadAllegroModel → AllegroTextEncoder → this → AllegroDecoder → VHS_VideoCombine (the example workflow uses VideoHelperSuite's save node to write the clip).

Common issues

The two failure modes everyone hits: forgetting low_vram_mode on an 8GB card and OOMing mid-generation (turn it on - that's what it's for), and bumping frames or width because 88×1280×720 feels arbitrary and getting mosaics or edge bars back. Allegro was trained at that one resolution and behaves badly elsewhere. Also set your seed and change one parameter at a time - standard diffuser debugging - because at several minutes per run you do not want to be doing bisection by feel.

CategoryAllegro

Inputs (11)

NameTypeDefaultDescription
pipeAllegroPIPE
positiveCONDITIONING
negativeCONDITIONING
framesINT88
widthINT1280
heightINT720
stepsINT1001–200
guidanceFLOAT7.50–20
seedINT0
low_vram_modeBOOLEANfalse
latentsoptLATENT

Outputs (1)

NameTypeDescription
latentsLATENT