Nodes/KIE.ai Nodes Next/Gemini Omni 1.1 Flash
ComfyUI Node

Gemini Omni 1.1 Flash

Video With Characters, Clips and Audio as Inputs

By felipederosilva·Created about a month ago·Updated about 22 hours ago· 3
Gemini Omni 1.1 Flash
  • image_urls
  • first_frame_url
  • last_frame_url
  • video
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptCreate a futuristic night city short film with a slow push-in shot as the character walks out from a neon-lit street.►
◄duration4►
◄audio_ids[ "audio_01hx8p0demo" ]►
◄video_list[ { "url": "https://example.com/assets/source-video.mp4", "start": 0, "ends": 10 } ]►
◄character_ids[ "character_01hx8p0demo" ]►
◄aspect_ratio16:9►
◄seed0►
◄resolution720p►
◄timeout_seconds1200►
◄callback_url►

What it's for

Most video nodes take a prompt and, optionally, a first frame. This one takes a brief: a prompt, up to seven character references, a source clip with trim points, generated audio, and a first or last frame - and it renders the whole thing at up to 4K.

That's the "omni" idea, and it's the reason this node has more optional sockets than anything else in the pack. You're not describing a shot; you're assembling one from parts you already have. Character IDs for consistent cast, an audio bed for someone to talk over, a clip for the model to extend or restyle, frames to pin the bookends. For anything with a recurring character or a specific soundtrack, this is a much shorter path than generating a clip and hoping it matches.

The catch is the same one that applies to every closed video model: no open weights, so no local version, and there goes your prompt, your references and your audio to a server. Veo's native audio-in-video is the capability with no open equivalent; this family is Google's attempt to make the inputs just as capable.

How it works

The node submits your assembled request to KIE with your saved key, waits for the render, and downloads the finished clip as a native ComfyUI VIDEO object - so the output wires into a save node, a frame-extraction node or another video pass without any URL plumbing. URLs, task ID and the full provider response come back alongside it, and the credits spent and remaining balance land on the node as floats and as an on-node receipt.

The part worth understanding before you build anything is the slot budget. KIE's own tooltips are explicit that the reference inputs share a fixed allowance of image slots: each character_ids entry takes one slot (a dual portrait-plus-body set takes two), video_list takes two, and the base ceiling is seven. That's why the docs are so insistent about mutual exclusivity, and why the pack preflights the request: mixing a first frame with clip or audio references is rejected locally rather than submitted and failed.

Inputs and outputs

Required:

  • prompt - the video description: visual content, style, cinematography, character action.
  • duration - one of 4, 6, 8, 10 seconds. Read the tooltip carefully: it only applies when there's no video input. Feed a clip in and the model decides the duration, and your setting is ignored. That surprises people.

Optional, and there are a lot of them: image_urls (IMAGE), first_frame_url and last_frame_url (IMAGE), audio_ids (a JSON array of audio IDs from KIE's gemini-omni-audio interface, up to 3, mutually exclusive with the first-frame image), character_ids (JSON array from the gemini-omni-character interface), video_list (JSON of video assets with start/ends trim ranges - each file must be under 100MB, the clip under 30s, and the trimmed range no longer than 10s), plus aspect_ratio (16:9 or 9:16), seed (INT, 0–2147483647, fixed seeds improve reproducibility but don't guarantee it), resolution (360p, 720p, 1080p or 4k), timeout_seconds (INT, default 1200, min 30, max 7200, step 30) and callback_url (leave empty for normal use).

Outputs: video (VIDEO), url, all_urls_json, task_id, raw_json (STRING), credits_consumed, credits_left (FLOAT).

Installing

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

Restart ComfyUI, then set your key once at Settings → KIE.ai Nodes Next → Connection - the pack validates it against KIE first and only shows a masked fingerprint afterwards. Server installs can use KIE_API_KEY, which overrides the saved key.

Requirements are requests, Pillow, numpy, PyYAML; no weights, no VRAM, because the render happens remotely. That's the other half of the trade - free local compute becomes a per-second bill.

Where people get burned

Cost. A video render at 1080p or 4K is the most expensive call in this entire pack, and the flat community read on API video is that the real price only becomes obvious once you run a few. Set a resolution you can afford to iterate at, get the performance right, then do one final pass at 4K.

Second, the duration-with-video-input rule. If you feed video_list and your 8-second setting produces a 4-second clip, nothing is broken - the model determined the length.

Third, mutual exclusivity. First-frame, audio and clip references don't stack the way you'd expect, and the pack will stop you at the door. That's a feature: a locally rejected request costs nothing.

And go in clear-eyed about identity. Character references help, and the pack's own documentation is candid that a reference image plus a prompt is not a universal identity lock - consistency depends on the model and the specific operation. Test your character on a short render before you build a scene around it.

CategoryKIE Next/Video/Google/Gemini Omni

Inputs (13)

NameTypeDefaultDescription
promptSTRINGCreate a futuristic night city short film with a slow push-in shot as the character walks out from a neon-lit street.The video prompt, used to describe the visual content, style, cinematography, or character actions of the target video.
durationCOMBO4The duration of the generated video, in seconds. Valid values are 4, 6, 8, and 10. This parameter only takes effect when there is no video input. If video input is used, the output duration is determined by the model, and the `duration` parameter will be ignored. Note: When video input is provided, the output duration is automatically determined by the model. In this case, the `duration` parameter will not take effect.
image_urlsoptIMAGE—
audio_idsoptSTRING[ "audio_01hx8p0demo" ]An array of audio IDs generated by the `gemini-omni-audio` interface. Used to provide narration, dialogue, background music, or sound references for the video. Up to 3 items. Note: This field is mutually exclusive with the first-frame image (`first_frame_url`) and cannot be provided at the same time.
video_listoptSTRING[ { "url": "https://example.com/assets/source-video.mp4", "start": 0, "ends": 10 } ]An array of video clips. Each element describes a video asset that can be used for generation and its trimming time range. Video limitations: - Each file must not exceed `100MB` - Video duration must not exceed `30s` - `ends` should be greater than `start` - The difference between the end and start times must not exceed `10s` - Maximum of 1 item, occupying two image slots - Note: This field is mutually exclusive with the first-frame image (`first_frame_url`) and cannot be provided at the same time.
first_frame_urloptIMAGE—
last_frame_urloptIMAGE—
character_idsoptSTRING[ "character_01hx8p0demo" ]An array of character IDs generated by the `gemini-omni-character` interface. Used to provide character appearance, identity, or person references for the video. Each character_id occupies 1 image slot; the basic maximum is 7. If `video_list` is provided at the same time, `video_list` occupies 2 image slots, and a maximum of 3 character_ids can be provided. Note: This field is mutually exclusive with the first-frame image (`first_frame_url`) and cannot be provided at the same time.If the incoming character_id is a dual-image set [portrait + body], it will occupy two slots.
aspect_ratiooptCOMBO16:9The aspect ratio of the generated video. `16:9` is landscape, and `9:16` is portrait.
seedoptINT0-2147483648–2147483647The random seed. Valid range: [0, 2147483647]. If not specified, the system will automatically generate a seed. A fixed seed can improve result reproducibility, but because the model itself is stochastic, results may still vary.
resolutionoptCOMBO720pThe resolution of the generated video. Valid values are 360p, 720p, 1080p, and 4k.
timeout_secondsoptINT120030–7200—
callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

Outputs (7)

NameTypeDescription
videoVIDEO—
urlSTRING—
all_urls_jsonSTRING—
task_idSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
credits_leftFLOAT—