Nodes/ComfyUI-fal-API/Sora 2 Pro Image-to-Video (fal)
ComfyUI Node

Sora 2 Pro Image-to-Video (fal)

OpenAI's video model, no waitlist required

By gokayfem·Created 2 years ago·Updated a day ago· 203
Sora 2 Pro Image-to-Video (fal)
  • image
  • STRING
prompt
resolutionauto
aspect_ratioauto
duration4
delete_videotrue

Remember when Sora dropped that first batch of demo videos with a giant "nope, you can't have it" over them? This node is the other end of that story. Sora 2 Pro is OpenAI's current flagship video model, it's API-only, and this node lets you push a still image plus a prompt into it from inside ComfyUI and get a clip back - no OpenAI waitlist, no separate app, just a node in your graph.

What it actually does

Nothing runs locally. You feed it an image and a prompt, the node ships them to fal.ai, fal calls Sora on OpenAI's infrastructure, and you get a finished video. No VRAM, no downloads, and fal bills you per generation. The usual API bargain: your inputs leave your machine, and each run costs real money.

Sora's calling card is physical coherence - objects that behave like objects, motion that respects momentum - and Sora 2 also generates synchronized audio, which is still a genuine gap that open local models haven't closed. If you're doing i2v where believable physics matters more than fine-grained control, it's one of the strongest options you can reach.

The inputs that matter

  • image (required): the starting frame the video animates from.
  • prompt (required): describe the motion, the action, the camera. Plain cinematic language works best.
  • duration: 4, 8, or 12 seconds. Longer clips cost proportionally more.
  • resolution: auto, 720p, or 1080p. auto lets the service pick.
  • aspect_ratio: auto, 9:16, or 16:9 - set 9:16 for vertical/social, 16:9 for widescreen.

There's also a delete_video toggle (on by default) that controls whether the generated file is cleaned up on fal's side after delivery; the default is fine to leave alone. The output is a single STRING - the video URL, not a playable clip in ComfyUI. Wire it into the pack's Fal Save Media from URL node to pull the file down into your output/ folder.

Installing it

Quickest: ComfyUI Manager → search ComfyUI-fal-API → install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-fal-API.git
cd ComfyUI-fal-API
pip install -r requirements.txt

Restart ComfyUI. No model file goes in models/; the dependencies are fal-client (from requirements.txt) and a fal API key. Copy config.ini.example to config.ini in the pack folder and paste the key under [API], or export FAL_KEY before launch. No key, no video.

Where people get burned

The big one with Sora specifically is content policy. OpenAI's filters are strict - recognizable public figures, certain likenesses, and a lot of edge content simply won't be served, and you'll get a refusal, not a video. The pack shows you fal's real error text, so read it; a policy rejection is the model saying no, not the node breaking.

Cost is the other watch-item: 12 seconds at 1080p is the top of the bill, so start short and small while you're testing a prompt. Identical re-runs are served free from the pack's cache, but any change bills again. And on ComfyUI Windows Portable, an import error means the client isn't installed in the embedded Python - fix it with .\python_embeded\python.exe -m pip install fal-client.

CategoryFAL/VideoGeneration

Inputs (6)

NameTypeDefaultDescription
promptSTRING
imageIMAGE
resolutionoptCOMBOauto3 options: auto, 720p, 1080p
aspect_ratiooptCOMBOauto3 options: auto, 9:16, 16:9
durationoptCOMBO43 options: 4, 8, 12
delete_videooptBOOLEANtrue

Outputs (1)

NameTypeDescription
STRINGSTRING