Upload Video (fal)
Get a local clip onto fal and back a URL
- video
- video_url
This is the plumbing node, and once you're working with the fal video nodes you'll wire it in constantly. A bunch of them - VideoUpscaler, Wan 2.6 Reference-to-Video, and others - don't take a video socket at all. They take a URL (an input_video_url or video1_url field), because the model runs on fal's servers and needs the clip to already be there. UploadVideo_fal is how a video on your disk becomes a fal URL you can hand to those nodes.
It does exactly one thing, and it does it in the cloud like everything else in this pack: takes your local video, uploads it to fal, and returns the link.
How it works
You connect a VIDEO into it, it pushes the file to fal's storage, and it outputs the URL fal assigns. That URL is what the URL-only nodes want. The pack also deduplicates uploads behind the scenes - upload the same clip twice and it won't re-transfer or re-charge - so you can leave this node in a graph without worrying about paying to upload the same thing repeatedly.
The inputs and outputs that matter
There's almost nothing to configure, which is the point:
video(VIDEO, required) - the local clip you want on fal. Load it however you normally do (a Load Video node, a previous generation, etc.) and feed it in.
Output is a single video_url STRING - paste or wire this into any fal node that asks for a video URL. That's the entire job.
How to install it
Part of gokayfem's ComfyUI-fal-API pack. ComfyUI Manager: search ComfyUI-fal-API, install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-fal-API.git
pip install -r ComfyUI-fal-API/requirements.txt
Add your fal key - copy config.ini.example to config.ini and paste the key from fal.ai/dashboard/keys, or export FAL_KEY=your_key - then restart. Uploading still needs the key, since it's writing to your fal account's storage.
Common issues & troubleshooting
The video socket shows None. Native VIDEO types need a recent ComfyUI build. If the socket won't connect or reads empty, update ComfyUI - this is the single most common cause of missing video sockets across the whole pack.
"Why do I even need this?" Because the node downstream takes a URL, not a video. If you're staring at a video1_url or input_video_url field wondering how to plug your local clip in, this is the answer: UploadVideo_fal → that field.
The upload seems to run every time. It doesn't re-transfer identical files - fal deduplicates uploads - so a repeated clip is cheap. If you genuinely need a fresh upload, change the file.
Auth or key errors. Uploading writes to your fal account, so it needs a valid FAL_KEY just like a generation does. If it fails on auth, check the key in config.ini or your environment. fal's error text prints straight into ComfyUI.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| video | VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | — |