Nodes/ComfyUI-Kling-Direct/Kling Fast Video Saver
ComfyUI Node

Kling Fast Video Saver

Save the Video Without Loading It Into VRAM

By IxMxAMAR·Created 5 months ago·Updated 2 months ago· 4
Kling Fast Video Saver
    • file_path
    • filename
    url
    filename_prefixkling_fast

    Kling Fast Video Saver downloads a video from a URL straight to your ComfyUI output folder - and crucially, it does it without ever loading the video into a tensor. That one architectural decision is the whole point of the node. Video tensors are enormous; a 600-frame 1080p clip can blow out your RAM or VRAM just by existing in the graph. This node streams the file to disk, byte by byte, and hands you back a path. OOM-proof by construction.

    The pack's own changelog makes the pain explicit: earlier versions of the video-loading path "was OOM on 600-frame 1080p videos," and v2.1 fixed the tensor loader with pre-allocation. Fast Video Saver sidesteps the problem entirely - you don't need the frames in memory, you need the file.

    How it works

    Two inputs:

    • url - the video URL to download (force-input, so it's meant to be wired from a node that produces a URL - the url output of a Kling generation node, for instance).
    • filename_prefix - the prefix for the saved filename, default kling_fast. The node appends a short random suffix and detects the extension from the URL path, defaulting to .mp4 if there isn't one.

    Outputs: file_path (the full path to the saved file in ComfyUI/output) and filename (just the name). It's marked as an output node, so it doesn't need to be wired further - running it is the workflow's end.

    Under the hood it's a streamed requests download with three retries and backoff, cleaning up partial files between attempts. And because v2.1, the URL is passed through the pack's scheme guard, so file:// / gopher:// and internal addresses are refused by default unless you set KLING_ALLOW_INTERNAL_HTTP=1. That's a genuine security nicety - downloading from arbitrary URLs is exactly the kind of action a hostile URL could abuse.

    When to use it (vs. the tensor path)

    Every Kling generation node in this pack also outputs video_file by downloading and loading the result into an IMAGE tensor - convenient, but memory-hungry for long clips. Fast Video Saver is your escape hatch:

    • You only want the file. No further processing in the graph, no preview needed - just "get this on disk."
    • The clip is long or high-res. 10–15s at 1080p from Kling can be heavy; a 4K or extended render even more so. Skip the tensor, keep the machine calm.
    • You're building a headless/batch pipeline that saves outputs and moves on.

    If you do need the frames as an IMAGE batch for further processing, this is the wrong node - use the generation node's video output instead, and consider the pack's memory-fixed tensor loader (v2.1 pre-allocates, so it's much friendlier than it used to be).

    Common issues

    • "FastVideoSaver requires a URL" - the url input was empty. It's force-input, so a wired-in URL is expected; if you're typing one by hand, double-check it's complete and reachable.
    • "failed after 3 attempts" - the download kept erroring. Usually the URL is dead, the host is rate-limiting, or (v2.1) the URL is blocked by the scheme/SSRF guard - a file:// or loopback URL will be refused, and internal hosts need KLING_ALLOW_INTERNAL_HTTP=1.
    • Wrong extension saved - the node guesses from the URL path. URLs without a clean extension (signed CDN links, query strings) fall back to .mp4, which is right for Kling video but can be wrong for other sources.

    Install

    Part of ComfyUI-Kling-Direct:

    cd ComfyUI/custom_nodes
    git clone https://github.com/IxMxAMAR/ComfyUI-Kling-Direct
    

    or ComfyUI Manager → search "Kling Direct" → install → restart. No model downloads, no GPU, nothing beyond ComfyUI's bundled libraries. One node that quietly prevents a whole class of out-of-memory crashes - worth keeping on the canvas.

    CategoryKling AI/Config

    Inputs (2)

    NameTypeDefaultDescription
    urlSTRINGURL of the video to download and save.
    filename_prefixSTRINGkling_fastPrefix for the saved filename.

    Outputs (2)

    NameTypeDescription
    file_pathSTRING
    filenameSTRING