Nodes/comfyui-timesaver/TS Video Saver
ComfyUI Node

TS Video Saver

H.264 to share, ProRes to edit, EXR to master

By AlexYez·Created 2 years ago·Updated about 22 hours ago· 12
TS Video Saver
  • images
  • audio
  • video
  • hdr_image
  • video
  • path
fps24.00
filename_prefixvideo/TS
format
encodersoftware
save_metadatatrue
previewauto

Saving video in ComfyUI usually means fighting encoder flags in a node that assumes you already know what a -crf 18 is. TS Video Saver refuses to play that game: format and quality are named in words, not encoder flags. MP4/H.264 from draft up to lossless. MP4/H.265 - roughly half the size at the same quality, with an optional 10-bit. MOV/ProRes with the usual Proxy through 4444 XQ profiles. Pick the words, get the file, and the node plays the result right in its own body.

The design philosophy is the nice part here. Audio gets muxed in the same pass, into the same file - no temporary WAV, no second ffmpeg run, no duplicate audio sitting on disk. Encoding shows its progress on the node the way sampling does, because a long clip takes minutes and a silent node during that time looks frozen. And the player remembers whether you turned sound on.

The inputs that matter

  • fps - frame rate of the saved file, 24 default.
  • filename_prefix - where to save, relative to the output folder; subfolders are created for you. Date tokens work anywhere in the path - %date:yyyy-MM-dd% and %date:hhmmss% - as do ComfyUI's own %year% %month% %day% %hour% %minute% %second% %width% %height%. Example from the tooltip: videos/my-run/my-run-%date:yyyy-MM-dd%_%date:hhmmss%.
  • format - the container and codec dropdown, in words.
  • encoder - software by default. Hardware encoding is much faster and noticeably worse at the same file size, so the node never chooses it for you - flip it on only when you've seen the quality and accepted the trade.
  • save_metadata - embeds the prompt and workflow into the file the way PNGs carry them, on by default.
  • preview - auto shows the result in the node, making a small H.264 proxy when the saved format isn't playable in a browser (ProRes isn't). Turn it off if you don't need the in-node player.

The optional inputs cover the real wiring cases: images for frames, audio for a track (trimmed or padded to the video's length), and video to re-save an existing video instead of frames - it streams straight from the file, so nothing is held in memory. The outputs are video (the saved file as a VIDEO reference) and path (the full path, handy for feeding a filename string somewhere).

The HDR/EXR branch

The fourth format is an EXR sequence - one scene-linear float32 (or 16-bit half) file per frame in its own folder, written from the hdr_image socket without touching the range. That socket exists because ordinary IMAGE inputs get clamped to 0..1 long before the saver sees them, so the HDR master from TS LTX HDR Decode needs its own path. The sequence carries no audio, and a small H.264 proxy is written in the same pass so the node still has something to play. If you're not doing the pack's LTX HDR path, you'll never touch this input - but if you are, this is the node that gets your scene-linear master out without flattening it.

Installing it

Part of comfyui-timesaver: ComfyUI Manager → search Timesaver, or

cd ComfyUI/custom_nodes
git clone https://github.com/AlexYez/comfyui-timesaver
cd comfyui-timesaver
python -m pip install -r requirements.txt

then restart ComfyUI. No system ffmpeg required - the pack's imageio-ffmpeg dependency ships a static binary.

Gotchas

The hardware-encoder temptation is the big one: it's so much faster, and at the same file size it's visibly worse. Use it for drafts, not finals. Second, remember ProRes won't play in a browser - if the preview looks missing, that's expected, the proxy is what you're watching. And if a long encode looks stuck, look at the progress on the node before you panic; a 10-minute clip at 4K takes minutes, and that's normal.

CategoryTS/Video

Inputs (10)

NameTypeDefaultDescription
fpsFLOAT24.000.01–240Frame rate of the saved file.
filename_prefixSTRINGvideo/TSWhere to save, relative to the output folder. Subfolders are created for you. Date tokens work anywhere in the path — %date:yyyy-MM-dd% and %date:hhmmss% (yyyy yy MM M dd d hh h mm m ss s), as do ComfyUI's own %year% %month% %day% %hour% %minute% %second% %width% %height%. Example: videos/my-run/my-run-%date:yyyy-MM-dd%_%date:hhmmss%
formatCOMBOContainer and codec. Quality is written in words, not encoder flags.
encoderCOMBOsoftwareHardware encoding is much faster but noticeably worse at the same file size, so it is never chosen for you.
save_metadataBOOLEANtrueEmbed the prompt and workflow into the file, the way PNGs carry them.
previewCOMBOautoauto shows the result in the node, making a small H.264 proxy when the saved format is not playable in a browser.
imagesoptIMAGEFrames to save. Leave empty when a video is connected instead.
audiooptAUDIOAudio track. Trimmed or padded to the length of the video.
videooptVIDEORe-save an existing video instead of frames. Streams straight from the file, so nothing is held in memory.
hdr_imageoptTS_LTX_HDR_IMAGEScene-linear master from TS LTX HDR Decode. Used by the EXR sequence format, which writes it without touching the range. Ordinary IMAGE inputs are clamped to 0..1 before they get here, which is why the master needs its own socket.

Outputs (2)

NameTypeDescription
videoVIDEOThe saved file, as a VIDEO reference.
pathSTRINGFull path of the saved file.