Gemini Omni Video Generation
The API video node that doesn't poll for half an hour
- client
- image
- video_path
Every other video node in the ERPK Collection submits a job and then sits polling a server for minutes. This one is the exception. Gemini Omni Video Generation calls Google's Gemini Omni Flash and gets the whole clip back in a single interaction - no waiting for job… loop, no 30-minute timeout to babysit. For quickly iterating on a prompt idea it's the node you reach for when you want an answer, not a film.
It lives under ERPK/Gemini in the pack. Text in, mp4 out: it generates 3–10 seconds of 720p video at 24fps, which sounds modest and is exactly the point. Omni Flash is a preview-tier model (the code hardcodes gemini-omni-flash-preview) tuned for fast, cheap, short clips - storyboards, motion tests, "is this shot direction even going to work?" checks. It is not the node for a hero 4k shot; that's what the Seedance nodes in this pack are for. But nothing else here returns in one call.
How it works
Under the hood it's the Google GenAI Interactions API. The node builds a response_format of {type: video} with the aspect ratio, disables background/store/stream (the documented fast path for a synchronous generation), and hands back the base64 mp4 the interaction returns. It then decodes the bytes and writes them to disk as gemini_omni_<timestamp>.mp4.
Two things Google forbids here, and the node doesn't fight them: negative prompts are not supported, and there's no temperature, top_p, system instruction, or thinking knob. The model also refuses system instructions outright. So the prompt field is where all the nuance lives - if you don't want text on screen, you write "Do not show text on screen" inline. That's the author's own guidance in the tooltip, and it's the one beginner habit to unlearn: there's no negative prompt box.
Inputs and outputs that matter
The only required input is prompt. From there:
image- optional start image. Connect one and the node silently switches from text-to-video to image-to-video. This is the "animate this" mode and it's the more useful one.aspect_ratio-16:9or9:16only. Output is always 720p at 24 FPS; there is no resolution knob to discover later.seed- cache control, not a real seed. Omni Flash takes no API seed, so this value is never sent. A fixed seed lets ComfyUI reuse the video you already paid for;-1(randomize) bills a fresh generation every queue.
The single output, video_path, is a filesystem path to the saved .mp4, not a URL. Leave output_directory empty and it lands in ComfyUI's output folder where it shows up in the output browser normally. Set it to something else and that's where the file goes.
Installing it
It's part of the ERPK Collection pack (eRepublik-Labs/comfyui-nodes-erpk). Easiest via ComfyUI Manager - Install Custom Nodes, search erpk, install "ERPK Custom Nodes", restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/eRepublik-Labs/comfyui-nodes-erpk.git erpk
cd erpk && pip install -r requirements.txt
Then restart ComfyUI and drop a Google API key into Settings > ERPK > API Keys (or right-click the canvas > ERPK Settings). Keys are stored per-user, never in the workflow. You need the google-genai package, which the pack's requirements install for you. Nothing runs on your GPU - all server-side, so a laptop can drive it.
Common issues
- "Omni Flash returned no video" - the standard error means the prompt was refused or the interaction hadn't finished. Reword and retry.
- No video appears - you connected the output to a Preview Image node.
video_pathis a file path; wire it into the pack's Preview Anything node (or any video-capable preview) instead. - It re-runs every queue and you're getting billed - that's the
seedon randomize. Pin it if you just want the cached result back.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | What the video should show. Negative prompts are not supported — state exclusions inline, e.g. 'Do not show text on screen'. | |
| clientopt | GEMINI_API_CLIENT | Gemini API client. Optional when the key is in ComfyUI Settings. | |
| imageopt | IMAGE | Optional start image. Connecting one switches the model to image-to-video. | |
| aspect_ratioopt | COMBO | 16:9 | Video aspect ratio. Output is always 720p at 24 FPS. |
| output_directoryopt | STRING | Directory to save video. Empty uses the ComfyUI output folder. | |
| seedopt | INT | 0-1–4294967295 | Cache control only — Omni Flash takes no API seed, so this is never sent. A fixed seed reuses the video you already paid for; -1 (randomize) generates again on every queue. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_path | STRING | — |