PyramidFlowNode
10-second clips without touching Python
- prompt
- image
- VIDEO
One node, whole video model
PyramidFlowNode is the whole of Pyramid-Flow, shoved into a single box: type a prompt, get an .mp4. No separate loader node, no sampler, no VAE wiring - the node loads the model, runs inference, and writes a finished video to your output folder, returning the file path. It's the "one-click" end of the video-gen spectrum, the opposite of Kijai's modular PyramidFlowWrapper, and it's very much the house style of AIFSH, who wraps a lot of models this way.
Pyramid-Flow itself is the October 2024 text/image-to-video model from Peking University - the one that made the rounds for doing 10 seconds at 768p on open weights when most open models managed 2–5s. It's a flow-matching MMDiT (same family as SD3 and Flux, so don't go reaching for your old SD1.5 sampling advice) with a causal video VAE, and the "pyramid" in the name is the trick: it generates in stages, low resolution to high, which is why you'll see step lists like [20, 20, 20] in the source. A worthy entry in the KB's video lineage - Wan and LTX pushed past it within months, but it's the ancestor that made 10-second local clips feel normal.
Honest positioning: the hype died fast. By early 2025 the community had moved to HunyuanVideo, Wan, and LTX, and even at launch reviews were split - plenty of people said CogVideo's output beat it. Reach for this node if you specifically want to run Pyramid-Flow (modest VRAM, historical curiosity, or you want that specific 10s/768p look), not as your daily driver in 2026.
The inputs that matter
- prompt (TEXT, required) - your prompt. One caveat that has burned every AIFSH newbie: this is the custom
TEXTtype, not ComfyUI's standardSTRING. A plain String node won't connect. The included workflows use AIFSH'sPromptTextNodefrom the companion UtilNodes-ComfyUI pack, or you can wire a String through a conversion node. - model_variant -
768por384p. That's the output resolution: 768×1280 or 384×640. 768p is where the quality is but it's heavy; 384p is the friendly tier for smaller cards. - temp -
16or31. Not temperature; it's the clip length. 16 ≈ 5 seconds, 31 ≈ 10 seconds at 24fps. Longer is exponentially more expensive. - guidance_scale (default 9, range 7–9) - guidance for the first frame.
- video_guidance_scale (default 5) - guidance for the motion latents that follow. These two do roughly what you'd guess from the names; the defaults are sane.
- image (IMAGE, optional) - plug one in and it becomes image-to-video, resizing your image to the model's resolution. Leave it unplugged for pure text-to-video.
Output and wiring
The single output is a VIDEO - actually a file path to PyramidFlow_<timestamp>.mp4 in ComfyUI's output folder. Feed it into the core PreViewVideo node to play it in the UI, or grab the path from your output directory. This node isn't an output node, so nothing displays until you connect something.
Install
Via ComfyUI Manager (search "PyramidFlow-ComfyUI"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/AIFSH/PyramidFlow-ComfyUI
# restart ComfyUI
Then the real story begins. First run calls snapshot_download("rain1011/pyramid-flow-sd3") and pulls the full checkpoint set into the pack's own pretrained_models/ folder - several GB, no way around it, and the first queue is mostly a download progress bar. The requirements.txt is Pyramid-Flow's kitchen sink: decord, diffusers, transformers, timm, spacy, pandas, plotly, streamlit, tensorboardX... Installing via Manager dumps all of it into your environment, most of it unused. It works, but if you care about a clean install, be ready to say no to some of it.
Common issues
- "I can't connect a text node / missing prompt node" - the TEXT-type gotcha above. Install UtilNodes-ComfyUI, or patch the pack's
__init__.pyswapping"TEXT"for"STRING"(the community fix for several AIFSH packs). - Out of memory on 768p - this is a big bf16 model. The node hardcodes
save_memory=True(VAE tiling) to scrape by, but 768p/10s still wants a lot of VRAM. Drop to384p, or 16 temp. - It's using the wrong GPU - the node hardcodes
torch.cuda.set_device(0). On a multi-GPU box, setCUDA_VISIBLE_DEVICESso your target card is index 0. - Every run reloads the model - no caching, so each generation re-reads GBs from disk before it starts. Slow, but it does mean you can switch between runs without extra RAM cost.
If it feels slow and fiddly for what you get, that's not you doing it wrong - that's this wrapper, and that's this model, in 2026.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | TEXT | — | |
| model_variant | COMBO | 2 options: 768p, 384p | |
| temp | COMBO | 2 options: 16, 31 | |
| guidance_scale | FLOAT | 9.07–9 | — |
| video_guidance_scale | FLOAT | 5.00 | — |
| imageopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VIDEO | VIDEO | — |