ComfyUI-4K-Video-Save-Load
Similar to VHS node but with expoded info and faster load and save speeds large files.
Nodes (2)
ComfyUI 4K Faster Video Loader and Saver with Fun Features
Similar to the VideoHelperSuite video nodes, but with the file's information exposed on the node and much faster load and save for large files. Two nodes that do their per-pixel work on the GPU, so 4K stops being the slow part of a workflow.
Independent of VideoHelperSuite: it is not a fork and shares no code with it, so both can be installed at once.
<img width="344" height="1085" alt="4K_Load_Screencap" src="https://github.com/user-attachments/assets/989aaa4a-3030-4026-8521-a1860ee8ab19" />Speed
Measured on an RTX 5090 at 3840x2160 with an idle GPU, milliseconds per frame. Load is 100 frames, best of two runs; save is 60 frames.
VHS's OpenCV loader reads full-resolution 4K at 43.5 ms/frame, so the ffmpeg path here is faster than either of the loaders it replaces. Measure with an idle GPU: a render in the background inflates these several times over.
Load Video 4K
One node in place of VHS's four loaders.
-
source —
uploaduses the picker,pathtakes a file or a folder. For a folder,video_indexchooses which clip andvideo_counttells you how many there are, so a queue can walk a whole directory. -
resolution —
source,2160p,1440p,1080p,720p,480p,2048 wide,1920 wide,1024 wide, orcustom. Aspect ratio is kept; set one ofcustom_width/custom_heightand the other follows. Scaling happens inside ffmpeg, which is far faster than resizing after decode. -
divisible_by — rounds both dimensions. The model preset raises it if needed.
-
model_preset — sets the frame rate, the size rounding, and snaps the frame count to what the model actually accepts:
| preset | fps | frame counts | size multiple | | --- | --- | --- | --- | | MiniMax-H3 | 24 | 17n + 5 (5, 22, 39, 56 …) | 32 | | LTXV | 24 | 8n + 1 | 32 | | Wan | 16 | 4n + 1 | 16 | | Hunyuan | 24 | 4n + 1 | 16 |
-
seconds_cap — load at most this many seconds. Combined with a model preset the frame maths is done for you: 3 s of H3 becomes 56 frames, not 72.
-
frame_load_cap, skip_first_seconds, select_every_nth — as usual.
-
force_frame_rate — whole numbers only. 0 keeps the source rate.
-
audio_when_missing —
silenceemits a silent track matching the clip length so downstream nodes never break on a file with no audio.noneoutputs nothing.
Widgets that accept 0 for "auto" show in grey what that 0 will actually resolve
to, recomputed live from every other setting. Skip 2 seconds of a 13.6s 25fps clip
and frame_load_cap reads 290<-, seconds_cap reads 11.6<-. Each of those
widgets has a small button beside it: reset for a value, disable for a limit.
The file's own details also appear in grey at the bottom of the node as soon as you pick it, before running anything.
Outputs: images, audio, frame_count, fps, width, height and info (a
JSON summary of source and loaded properties). fps already accounts for
force_frame_rate, the model preset and select_every_nth, so it can be wired
straight into Save Video 4K.
Save Video 4K
h264, hevc and av1 on NVENC, h264/hevc on CPU, or prores. quality is
the cq/crf value, lower being better. Audio is muxed when connected. Odd dimensions
are padded rather than refused. The finished video plays on the node itself.
save_metadata (on by default) stores the workflow in the video file, so the result can be dragged back into ComfyUI to rebuild the graph.
vae accepts a LATENT on images and decodes it in batches, so a long 4K clip
does not have to fit in VRAM in one go.
Colour
For 8-bit 4:2:0 sources the YUV to RGB conversion runs on the GPU from nv12, which
moves a third of the bytes rgb24 would and is measurably closer to the source than
ffmpeg's own converter, which carries a systematic -1.24/255 darkening.
Untagged files get the matrix every player assumes (bt709 at 720p and above, bt601 below) rather than ffmpeg's blanket bt601, which tints HD footage. Sources with alpha, more than 8 bits, or other chroma layouts use a matching ffmpeg conversion.
Requirements
ffmpeg on PATH, or imageio-ffmpeg installed. NVENC needs an NVIDIA GPU; without
CUDA everything still runs on the CPU, just slower.