FAL Gemini Omni Flash Reference To Video (Soze)
Gemini Omni Flash video from your ComfyUI canvas — no Google Cloud project required
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_batch
- video
- video_url
- status
Google's Gemini Omni Flash is a genuinely useful thing to have in a ComfyUI graph, mostly because "Omni" means it actually reasons about what's in your reference images rather than just borrowing their style. Feed it a character, a room, an object - up to nine references - and it can produce a video that keeps them straight. And this node gets you there without touching a Google Cloud project: it calls the model through FAL, so the only credential you manage is one FAL key.
The inputs that matter
The prompt is the star here, and the citation syntax is the thing to get right. You connect images to the image_1 through image_9 sockets, then reference them in the prompt as @Image1, @Image2, and so on. So: "the woman in @Image1 waves at the cat in @Image2" beats "a woman and a cat" every time, because the model knows exactly which reference each token points at. Connect a batch of images to image_batch instead if you'd rather not fill nine sockets - it's capped at 9 and ignored if any individual slot is connected.
The other dials are refreshingly few. aspect_ratio is just 16:9 or 9:16 (this model doesn't do squares), and duration runs 3–10 seconds. There's no seed, no resolution picker, no audio toggle - this is a slim node by design, and that's most of its appeal.
How it works under the hood
Same machinery as every FAL node in the Soze pack: your image tensors get converted to PNGs and uploaded to FAL's CDN, the node POSTs to google/gemini-omni-flash/reference-to-video, waits synchronously for the result, then downloads the returned mp4 into your output folder and hands it back as a VIDEO object. You get three outputs: video (wire to a preview or video saver), video_url (the direct CDN link), and status (a one-line summary of what ran). The heavy lifting - the model itself - happens entirely on Google's servers, paid for out of your FAL balance.
The honest caveat, same as any API wrapper: your reference images leave your machine. For a quick draft of a shot, or for testing an idea before you invest in a local video pass, that's a fine trade. For something under NDA, it isn't, and no setting on this node changes that.
Install and key
This lives in the Soze pack ("Quality of Life Nodes for ComfyUI"). Easiest via ComfyUI Manager (search "Soze"), or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/SozeInc/ComfyUI_Soze.git
pip install -r ComfyUI_Soze/requirements.txt
Then restart ComfyUI and give the node a FAL key - via the FAL_KEY environment variable, or a config.ini in the pack root:
[API]
FAL_KEY=your_key_here
Keys live at fal.ai/dashboard/keys. config.ini is gitignored on purpose; don't be the person who commits it.
Common issues
- Node skips with no output. Gemini Omni Flash is reference-to-video, not text-to-video - it needs at least one connected image.
- The prompt seems ignored. You almost certainly used plain prose instead of
@ImageNcitations. The model follows the explicit references much better than descriptions of them. - Nothing happens for a long time. These are synchronous calls; a 10-second clip can take a couple of minutes. That's not a hang, that's a model working.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Reference images by tag, e.g. <IMAGE_REF_0>. | |
| aspect_ratio | COMBO | 16:9 | 2 options: 16:9, 9:16 |
| duration | INT | 83–10 | Seconds (3-10). |
| image_1opt | IMAGE | Reference image 1 (cite as @Image1 in the prompt). | |
| image_2opt | IMAGE | Reference image 2 (cite as @Image2 in the prompt). | |
| image_3opt | IMAGE | Reference image 3 (cite as @Image3 in the prompt). | |
| image_4opt | IMAGE | Reference image 4 (cite as @Image4 in the prompt). | |
| image_5opt | IMAGE | Reference image 5 (cite as @Image5 in the prompt). | |
| image_6opt | IMAGE | Reference image 6 (cite as @Image6 in the prompt). | |
| image_7opt | IMAGE | Reference image 7 (cite as @Image7 in the prompt). | |
| image_8opt | IMAGE | Reference image 8 (cite as @Image8 in the prompt). | |
| image_9opt | IMAGE | Reference image 9 (cite as @Image9 in the prompt). | |
| image_batchopt | IMAGE | Optional IMAGE batch (capped at 9). Ignored if any image_N slot is connected. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_url | STRING | — |
| status | STRING | — |