Nodes/KIE.ai Nodes Next/KIE • Download Video
ComfyUI Node

KIE • Download Video

Getting an MP4 Back Into the Graph and Out of Temp

By felipederosilva·Created 2 months ago·Updated 2 days ago· 3
KIE • Download Video
  • config
  • video
◄url►

Video is where API nodes hurt the most. A render that took three minutes and real money produces a file, and historically that file lived in ComfyUI's temp folder and quietly evaporated. This node turns a URL back into a VIDEO object ready for the next step, and - the part that actually matters - archives the bytes somewhere durable on the way through.

When you need it

You usually don't, if the generation happened inside the pack: every video model node returns a native VIDEO. You need this node when the file arrived some other way. A render you kicked off in KIE's playground. A URL in a workflow you inherited. A clip whose temp file is already gone but whose URL is still live. Or a hand-off: the URL came from somewhere else and you want it inside ComfyUI to preview, upscale, or extract frames from.

How it works

url is a required string widget, with an optional config input you can ignore in the normal case.

Two-stage fetch: the client does a plain GET on your URL (no auth - so non-KIE URLs work too), and if that fails it asks KIE's Common API to mint a short-lived direct download URL and retries. Then the bytes are written to disk and wrapped as a ComfyUI VIDEO object.

Disk, specifically: results are archived under output/KIE-Results/videos/ with a content-addressed filename, so re-downloading the same URL is idempotent and a successful download outlives temp-folder cleanup and app restarts. That archive is one of the more thoughtful things in this pack - the release notes are explicit that it exists because temp-only results could disappear after a restart. If ComfyUI's output directory happens to be unwritable, it falls back to a temp file rather than failing.

Output: video, a native ComfyUI VIDEO object. Wire it into a video preview, a frame-extraction chain, or a video upscaler.

The ComfyUI version dependency

Wrapping the download as a VIDEO object uses comfy_api.latest.InputImpl.VideoFromFile. If your ComfyUI build predates that, the node raises a plain "update ComfyUI" error instead of doing something confusing. It's the one real gotcha here: a stale install. Update and retry.

Install

ComfyUI Manager → ComfyUI-KIE-Nodes-Next. Per the README, Registry publishing is prepared but not shipped:

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt

Restart. This node is in the pack's base mappings, so it's available immediately - no waiting on the live catalog sync. Python 3.10+, no GPU work, nothing to download.

Common issues

"Update ComfyUI." Literally that: the video-object API isn't in your build. This is a genuinely common failure on older portable installs.

404 or an expired link. KIE's generated URLs are temporary. The archived copy under output/KIE-Results/videos/ is the durable thing; grab it while the link is alive or re-run the generation.

Fails on a URL that opens fine in a browser. Some hosts block scripted GETs or need headers; the KIE fallback converter only helps when the host is KIE's. Download it by other means and load it with a local video loader.

Big files time out. The HTTP timeout defaults to 90 seconds (adjustable through the advanced connection override). A long 4K clip over a slow link can exceed it - that's a transport limit, not a corruption in the file.

You're about to re-download instead of re-generating - good. The whole point of this node is not paying for the same render twice. Video jobs are the expensive half of the API-node trade-off, so a durable archive plus a cheap way back in is exactly what you want in place before a batch, not after.

CategoryKIE Next/Utility/Media

Inputs (2)

NameTypeDefaultDescription
urlSTRING—
configoptKIE_CONFIG—

Outputs (1)

NameTypeDescription
videoVIDEO—