VideotoTD
Replace Video Combine with VideotoTD and stream whole videos into TouchDesigner
- images
VideotoTD is the video stage of the ComfyUI-TD pack: feed it a batch of IMAGE frames and it encodes them into an MP4, streams the bytes over WebSocket into TouchDesigner, and the ComfyUI2TD.tox component turns it into a playable video - saved as a real .MP4 in a VideoOutput folder on the TD side. The pack's README is direct about where it slots in: it's a drop-in replacement for the Video Combine 🎥🅥🅗🅢 node from ComfyUI-VideoHelperSuite in workflows that end in TD.
Why not just use VideoHelperSuite and import the file? For a realtime pipeline you want the video arriving while you work, not after you save and reload. This node hands TD a self-contained video stream, which TD can loop, play, scrub, and composite - the standard "generative video becomes a live source" pattern for VJ and installation work.
How it works
The node takes the frame tensor, encodes it with H.264 (libx264) using the ffmpeg binary bundled with imageio-ffmpeg, and pushes the result over ComfyUI's binary WebSocket (a custom message type the tox listens for). TD parses it, and - unlike the image nodes - writes a real .MP4 file into VideoOutput and exposes it as a video you can drive in the project. Compression is controlled by a CRF value derived from quality, so higher quality means less compression and a bigger payload.
The inputs
Output node - the result lives in TD, not on a socket.
- images - the
IMAGEbatch. Any video-generation or frame-sequence pipeline feeds this. - frame_rate - float, default 8, minimum 1. This sets the synthesis frame rate of the outgoing video; the README recommends 8 as a good realtime feel. Higher looks smoother but costs encode time and payload size.
- quality - 15–100, default 75, the author's recommended balance between data size and image quality.
- broadcast - off by default (current client only).
Install
ComfyUI Manager, search ComfyUI-TD, or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/JiSenHua/ComfyUI-TD.git
Restart. Dependencies (trimesh, imageio-ffmpeg, soundfile, plyfile) come with the pack - imageio-ffmpeg is the one doing the actual encoding. The ComfyUI2TD.tox component must be v5.1.x or newer; that version is what introduced video support.
Gotchas
The biggest mental shift is frame rate. Default video pipelines aim for 24–30 fps, but this node is built for streaming, not delivery - the README's 8 fps recommendation exists because each packet is encoded and shipped live, and high fps means more latency and bigger payloads per send. If your video looks choppy, that's the design, not a bug; crank it up only when you need smoothness and can afford the bandwidth. The tutorials are in Chinese on Bilibili - run through them once and the tox setup will click. And as with every node here: "TD shows nothing" usually means the tox is old or pointed at the wrong WebSocket.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| frame_rate | FLOAT | 8 | — |
| quality | INT | 7515–100 | — |
| broadcast | BOOLEAN | false | — |
Outputs (0)
No outputs