StreamDiffusion Sampler
Generate per-frame from a live stream
- stream
- image
- IMAGE
This is the node you actually loop for real-time generation - plug it into a stream from StreamDiffusion Create Stream, hand it a prompt, and it produces one image per call, fast enough (with the pack's LCM-LoRA + few-step setup underneath) to run continuously against a live source. Feed it an image and it works like a live img2img pass - screen capture in, stylized output out, the kind of "any part of the screen becomes a live generation" demo the pack's StreamDiffusion integration was built to show off. Leave the image input empty and it runs closer to a fast repeated txt2img.
To actually get continuous generation in ComfyUI, you need Auto Queue turned on in Extra options - that's what keeps re-triggering the graph run after run instead of you clicking Queue Prompt manually for every frame. The README calls this out explicitly for the real-time workflow; without it, this node behaves like any other sampler that fires once per manual queue.
The inputs and outputs that matter
- stream (required) - from StreamDiffusion Create Stream.
- positive / negative (required, multiline strings) - plain text, not pre-encoded embeddings. StreamDiffusion nodes handle their own encoding internally, which is why this differs from Diffusers Sampler's embeds-based inputs.
- steps (default 50) - this is the scheduler's nominal step count, not how many actually get computed per frame; the stream's
t_index_list(set back in StreamDiffusion Create Stream) decides the real number. - cfg (default 1.2) - deliberately low, matching the CFG 1-2 range LCM-family adapters expect. Don't push this toward a normal SD default of 7-8; it fights the LCM-LoRA the stream depends on.
- delta (default 1, range 0-1) - a StreamDiffusion-specific blending parameter that controls how much the current step's virtual residual noise carries forward; leave it at default unless you're deliberately tuning stream behavior.
- seed (default 0).
- num (default 1) - how many images to generate per call.
- warmup (default 1) - how many warmup iterations run before output, relevant to stream stability on the first calls.
Optional: image - feed this for img2img-style live transformation; omit it for a closer-to-txt2img loop.
One output: IMAGE.
How to install it
ComfyUI Manager → Install Custom Nodes → search ComfyUI-Diffusers, or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Limitex/ComfyUI-Diffusers.git
cd ComfyUI-Diffusers
pip install -r requirements.txt
This node needs the full StreamDiffusion setup behind it, not just the base pack - clone the engine and (recommended) build the TensorRT path:
git clone https://github.com/cumulo-autumn/StreamDiffusion.git
python -m streamdiffusion.tools.install-tensorrt
Then, for actual live generation, enable Auto Queue in ComfyUI's Extra options panel.
Common issues & troubleshooting
Generation only fires once instead of running continuously. You almost certainly forgot to enable Auto Queue - this node doesn't loop itself, ComfyUI's queue does, and Auto Queue is what keeps re-submitting the graph. It's the single most-missed step for anyone trying to reproduce the pack's real-time demos.
"Missing node type: StreamDiffusionSampler." Standard fix: install ComfyUI-Diffusers via Manager or git clone, restart. Missing-node errors on StreamDiffusion* nodes trace back to this one repo.
Output looks blurry, generic, or low-detail. Expected behavior at this end of the speed/quality tradeoff, not a bug - the pack's whole real-time path leans on LCM-style few-step generation, and the knowledge base on distillation techniques is direct about it: this family is built for rapid iteration and live preview, not final polished output. If you need higher fidelity, this isn't the right sampler for that particular output.
CFG left at a normal value and results look worse than expected. cfg defaults to 1.2 here for a reason - it's paired with an LCM-LoRA loaded upstream, and those expect very low guidance. Cranking cfg toward a typical SD 1.5/SDXL value (7-8) usually degrades output rather than improving prompt adherence, because the adapter wasn't trained for that regime.
Community support is thin if you get stuck. Worth setting expectations: StreamDiffusion's moment in the ComfyUI community was early 2024, and interest has dropped off substantially since - this is a real but fairly niche, lightly-maintained corner of the ecosystem in 2026, not something with a large active thread history to search when something breaks.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| stream | STREAM | — | |
| positive | STRING | — | |
| negative | STRING | — | |
| steps | INT | 501–10000 | — |
| cfg | FLOAT | 1.200–100 | — |
| delta | FLOAT | 1.000–1 | — |
| seed | INT | 00–18446744073709550000 | — |
| num | INT | 11–10000 | — |
| warmup | INT | 10–10000 | — |
| imageopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |