Nodes/DIGIT Nodes/DIGIT Gemini Omni Video
ComfyUI Node

DIGIT Gemini Omni Video

Keep editing the same clip like you're chatting

By thedepartmentofexternalservices·Created 6 months ago·Updated 26 days ago· 0
DIGIT Gemini Omni Video
  • first_frame
  • source_video
  • reference1
  • reference2
  • reference3
  • reference4
  • reference5
  • reference6
  • reference7
  • video
  • video_paths
  • status
  • interaction_id
prompt
modelgemini-omni-flash-preview
aspect_ratio16:9
duration_seconds8
batch_count1
taskauto
seed0
gcp_project_id
gcp_region
previous_interaction_id
deliveryinline
output_gcs_uri
storetrue
backgroundfalse

Most video-gen nodes are one-shot: prompt, wait, get a clip, and if you want a change you start over with a different prompt and hope. This node wraps Gemini's Interactions API - the gemini-omni-flash-preview model that's built for stateful, conversational generation. Generate a clip, get back an interaction_id, and the intended loop is: feed that ID back into the node on the next run so your follow-up prompt edits the same conversation instead of starting fresh. The closest thing to "ask the video model to change the ending" that exists right now.

One honesty note before you get excited: the README describes that loop, but the currently shipped code raises if you actually set previous_interaction_id on Vertex AI - the platform path doesn't support it for this model yet. The node exposes the plumbing (interaction_id output, previous_interaction_id input) so the loop is ready when Google flips it on. Today, the edit path that works is connecting source_video and writing an edit prompt. It's preview-era tech either way.

How it works

The node submits a generation through Vertex AI's Interactions API, waits for completion, and returns the video plus the new interaction_id. The task dropdown (default auto) picks the mode from what you connect: prompt only → text-to-video, first_frame → image-to-video, reference1…7 → reference-to-video, source_video → edit.

The inputs that matter:

  • prompt - required (there's no conversational continuation to fall back on yet, despite the plumbing).
  • model - gemini-omni-flash-preview, the only option right now.
  • aspect_ratio - 16:9 or 9:16.
  • duration_seconds - 3–10.
  • batch_count - 1–8 concurrent jobs (each becomes its own interaction).
  • task - auto, or force a specific mode.
  • seed - 0 is random.
  • first_frame / source_video / reference1…7 - the mode triggers.
  • previous_interaction_id - the conversational hook the node exposes, but which the current Vertex AI path rejects. Keep it empty for now.
  • delivery - inline (default, returns the file in the response) or uri (writes to your GCS bucket; output_gcs_uri is required for that). URI delivery is the path for larger output.
  • store / background - storage and async-run toggles.

Outputs: video (a list), video_paths, status, and interaction_id - the ID you'd feed back in once follow-ups land.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/thedepartmentofexternalservices/comfyui-digit.git
cd comfyui-digit
pip install -r requirements.txt
gcloud auth application-default login
gcloud config set project YOUR_PROJECT_ID

(Or ComfyUI Manager → search comfyui-digit → install.) Restart ComfyUI, look under DIGIT.

Common issues

The current code is explicit about its own limitation: set previous_interaction_id and you get previous_interaction_id is not supported on Vertex AI for gemini-omni-flash-preview. Connect source_video and use an edit prompt instead. That's the pack telling you the conversational loop isn't wired to the platform yet - the working edit path today is source_video + an edit prompt, and you cannot use source_video and previous_interaction_id at the same time anyway. Also note reference images and first_frame are mutually exclusive, and the node raises if you connect both.

Otherwise it's the standard Vertex story: auth via gcloud, project billing, region "global" for Omni. And set expectations - this is a preview model, so output quality and consistency are a notch below the dedicated Veo node in the same pack. Reach for Omni when you want the conversational workflow; reach for Veo when the clip has to be right.

CategoryDIGIT

Inputs (23)

NameTypeDefaultDescription
promptSTRING
modelCOMBOgemini-omni-flash-preview1 options: gemini-omni-flash-preview
aspect_ratioCOMBO16:92 options: 16:9, 9:16
duration_secondsINT83–10
batch_countINT11–128Number of video jobs to submit before polling. Jobs run concurrently, subject to Google quota.
taskCOMBOauto5 options: auto, text_to_video, image_to_video, reference_to_video, edit
seedINT00–2147483647
gcp_project_idSTRINGGCP project ID. Auto-detected from DIGIT_GCP_PROJECT env var or GCP metadata.
gcp_regionSTRINGGCP region. Omni Flash uses 'global'. Auto-detected from DIGIT_GCP_REGION env var.
first_frameoptIMAGE
source_videooptVIDEO
previous_interaction_idoptSTRING
deliveryoptCOMBOinline2 options: inline, uri
output_gcs_urioptSTRINGGCS URI required for Vertex URI delivery, e.g. gs://my-bucket/output/
storeoptBOOLEANtrue
backgroundoptBOOLEANfalse
reference1optIMAGE
reference2optIMAGE
reference3optIMAGE
reference4optIMAGE
reference5optIMAGE
reference6optIMAGE
reference7optIMAGE

Outputs (4)

NameTypeDescription
videoVIDEO
video_pathsVIDEO_PATHS
statusSTRING
interaction_idSTRING