StreamDiffusion Create Stream
Set up the real-time generation pipeline
- maked_pipeline
- t_index_list
- lcm_lora
- STREAM
This is the setup node for the whole real-time side of the pack - everything StreamDiffusion Sampler and its faster siblings do downstream depends on the STREAM object this node builds. Think of it as configuring a persistent, fast-path generation session rather than a one-off image: batching, buffering, which few timesteps actually get computed, and which LCM-LoRA is doing the heavy lifting to make few-step generation viable at all.
It wraps cumulo-autumn/StreamDiffusion, the actual research project behind the real-time-diffusion demos you've probably seen - webcam feed or screen capture going in, a stylized live video coming out the other side, "Auto Queue" ticking the graph continuously. This node is Limitex's ComfyUI wrapper around that engine, not a from-scratch reimplementation.
Worth being honest about where this technique sits right now: it had its moment - StreamDiffusion discussion in the community peaked in early 2024, not long after this pack shipped - and interest has cooled a lot since. It still works and it's still the node people reach for when they specifically want live/real-time diffusion in ComfyUI, but don't expect a large, actively-updated community around it in 2026. It's a niche, somewhat dated corner of the ecosystem rather than a mainstream workflow component.
The inputs and outputs that matter
Required inputs, several with sensible defaults you likely won't touch on a first pass:
- maked_pipeline - from Diffusers Model Makeup, the assembled pipeline this stream runs on.
- t_index_list - from Create Int List, the handful of denoising steps StreamDiffusion actually computes instead of the full schedule.
- width / height (default 512×512) - stream resolution.
- lcm_lora - from LCM Lora Loader. Required, not optional; this is what makes few-step generation hold together at all.
- tiny_vae (default
madebyollin/taesd) - a distilled, much smaller/faster autoencoder swapped in for the real one. TAESD trades some fidelity for the speed a per-frame real-time loop actually needs; you can point it at a different model ID if you want, but the default is a reasonable choice for this use case specifically. - do_add_noise (default true) - whether the stream injects fresh noise each step, relevant to how much frame-to-frame variation you get.
- use_denoising_batch (default true) - batches the denoising steps for throughput.
- frame_buffer_size (default 1) - how many frames get batched together before output.
- cfg_type (default
none, choices: none / full / self / initialize) - how CFG guidance is applied across the batched steps.noneis the fastest and the pack's own default. - xformers_memory_efficient_attention (default false) - turn on if you have xformers installed and want the VRAM/speed tradeoff it offers.
One output: STREAM, which both StreamDiffusion Sampler and StreamDiffusion Warmup consume.
How to install it
ComfyUI Manager → Install Custom Nodes → search ComfyUI-Diffusers, or manually clone and install requirements:
cd ComfyUI/custom_nodes
git clone https://github.com/Limitex/ComfyUI-Diffusers.git
cd ComfyUI-Diffusers
pip install -r requirements.txt
This node specifically needs the StreamDiffusion engine underneath, so don't stop at the base install - the README has you clone the actual research repo inside the node folder and run its TensorRT installer:
git clone https://github.com/cumulo-autumn/StreamDiffusion.git
python -m streamdiffusion.tools.install-tensorrt
That last step is the heavy one - TensorRT compiles engine-specific optimizations and can take a while and a fair chunk of disk space. It's what gets you close to real-time framerates rather than merely "fast." If all you want is a working stream and don't care about squeezing out the last bit of speed, you can attempt without it, but the README frames it as part of the standard setup, not an optional extra.
Common issues & troubleshooting
"Missing node type: StreamDiffusionCreateStream." Base pack install (Manager or git clone + restart) is the fix, same as always with this pack.
Errors during TensorRT install, or install hangs. This is the single heaviest dependency step in the whole pack. TensorRT installation is notoriously finicky about matching CUDA/driver versions, and it's a separate install path from the pack's own requirements.txt. If it's giving you trouble and you just want to validate the rest of your workflow first, you can skip it initially - StreamDiffusion will still run, just without the compiled-engine speedup.
t_index_list errors. The list has to make sense against the scheduler configuration this stream is using - an out-of-range index or an empty list will error here rather than upstream in Create Int List. Cross-check the two nodes together if something doesn't line up.
Output is fast but low quality. That's the fundamental tradeoff of this whole node, not a misconfiguration - fewer computed steps means less room for the model to correct itself. If quality matters more than speed for a given use case, this isn't the right node family; go back to Diffusers Sampler or ComfyUI's native KSampler with a full step count instead.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| maked_pipeline | MAKED_PIPELINE | — | |
| t_index_list | LIST | — | |
| width | INT | 5121–8192 | — |
| height | INT | 5121–8192 | — |
| do_add_noise | BOOLEAN | true | — |
| use_denoising_batch | BOOLEAN | true | — |
| frame_buffer_size | INT | 11–10000 | — |
| cfg_type | COMBO | none | 4 options: none, full, self, initialize |
| xformers_memory_efficient_attention | BOOLEAN | false | — |
| lcm_lora | LCM_LORA | — | |
| tiny_vae | STRING | madebyollin/taesd | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STREAM | STREAM | — |