Sweet Tea Preview Image
The node that writes nothing — and that's the point
- images
ComfyUI saves PNGs by default. Drop a SaveImage in the graph and a file lands in output/ with the whole workflow embedded in it, and most of the time that's exactly what you want - it's how you keep a generation and how the graph travels with the image. SweetTeaPreviewImage does the opposite on purpose. It's a no-save output sink that streams your full-resolution images over ComfyUI's websocket to whoever's listening and writes exactly zero bytes to disk.
That sounds broken until you know who it's for. This node is the plumbing side of Sweet Tea Studio, the hosted service from the same tea-time-labs crew that makes this pack. When an external client drives ComfyUI as an API, it doesn't want the server acting as a file server - it wants the pixels handed to it over the wire so it can persist them. That's this node's whole job, and it shares a category (Sweet Tea/Output) with its siblings SweetTeaPreviewVideo and SweetTeaExecutionReceipt - a whole family of "don't save, just report to the client" sinks.
How it works
Under the hood it's a careful copy of ComfyUI's own SaveImageWebsocket transport. For every image in the batch it converts the tensor to a PIL PNG and pushes it through comfy.utils.ProgressBar - the exact channel ComfyUI uses to stream full-resolution preview frames to a connected API client. Your client receives each frame as a binary PNG; the server never materializes an output/ or temp/ file. The IS_CHANGED override that returns the current timestamp is the classic "always rerun" idiom from node plumbing - belt and braces, since as an output node it's already guaranteed to run every time.
The inputs and outputs
The whole surface is one socket:
images(IMAGE) - your generated images. Batch-aware: each frame in the batch is emitted individually.
No outputs, OUTPUT_NODE = True. It's a terminal node; it consumes a tensor and streams it, and that's everything.
Installing it
Grab it through ComfyUI Manager - search for Sweet Tea Nodes - install, restart. Or from a terminal:
cd ComfyUI/custom_nodes
git clone https://github.com/tea-time-labs/sweet-tea-nodes.git
Restart ComfyUI after the clone. There are no model downloads and no heavy deps: the pack's requirements.txt is just tqdm, and this node runs on PIL, numpy, and comfy.utils, all of which ship with ComfyUI. Installing a whole pack for one no-save sink is overkill if you only want this node - but if you're here for the Wan VACE or tiled-upscale nodes, you get it for free.
When to skip it
For a plain desktop user this node is a trap. Run a workflow with it and there's no PNG anywhere - and if nothing is connected to the websocket, the frames go nowhere at all. It runs green and produces nothing you can hold. If you just want to see an image without cluttering output/, the built-in PreviewImage is the right tool. Where people get burned:
- No file is a feature, not a bug. If your client isn't capturing the websocket preview frames, this node is a black hole. Make sure the thing on the other end actually reads them.
- Batch jobs emit one frame per image. A batch of four means four PNG frames on the wire; handle N, not one.
- Don't stack it with
SaveImagedownstream. You'd get both a disk file and a streamed frame - the exact duplicate this node exists to avoid. Pick one.
Honest verdict: it's a niche, product-specific node. If you're building your own API harness around ComfyUI or feeding a Sweet Tea Studio workflow, it's the clean way to get full-resolution results without littering the server's disk. If you're just generating in the desktop UI, you don't need it - and now you know why it saves nothing.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — |
Outputs (0)
No outputs