Skip to content

Feature/omni flash - #30

Merged
crisng95 merged 18 commits into
crisng95:mainfrom
Bl0ck154:feature/omni-flash
Aug 18, 2026
Merged

crisng95 merged 18 commits into
crisng95:mainfrom
Bl0ck154:feature/omni-flash

Conversation

@Bl0ck154

Copy link
Copy Markdown
Contributor

Summary

Adds Gemini Omni Flash video support to FlowKit, including generation endpoints, model configuration, REST API exposure, and workflow-backed polling/download handling.

Closes #23.

What’s included

  • Omni Flash model keys for 4 / 6 / 8 / 10 second generations
  • First-frame image-to-video
  • First + last frame video generation
  • Reference-image video generation with up to 7 images
  • 9:16 and 16:9 aspect ratios
  • REST API integration
  • Workflow metadata extraction and polling
  • Unit tests covering Omni requests and polling behavior
  • Omni Flash usage documentation

Workflow polling / download fix

Omni Flash generation responses use workflow-backed media and do not work correctly with FlowKit's legacy video polling path.

In particular, using:

GET /v1/media/{primaryMediaId}

for Omni workflow media currently returns 400 INVALID_ARGUMENT.

This PR follows the current Flow UI behavior instead:

  1. Read workflow/media state through the authenticated flow.projectInitialData endpoint.
  2. Match the generated media using the workflow ID / primaryMediaId.
  3. Wait for MEDIA_GENERATION_STATUS_SUCCESSFUL.
  4. Resolve the completed video URL through media.getMediaUrlRedirect.

This also addresses the polling/download issue reported in #23 by @TIMMY-xyz.

Implementation notes

Omni model keys are kept configurable in agent/models.json, since Google's internal Flow model identifiers may change independently of FlowKit releases.

Omni polling is intentionally kept separate from the existing legacy Veo operation polling because the workflow handles returned by Omni are not accepted by batchCheckAsyncVideoGenerationStatus.

Validation

The implementation includes unit coverage for:

  • Omni model selection
  • First-frame requests
  • First + last-frame requests
  • Reference-image requests
  • Workflow extraction
  • Project-based workflow polling
  • Flow media URL resolution
  • Exact Flowboard polling request contract

The Omni generation and workflow-media path was also tested against the live Flow service while developing the implementation.

@crisng95
crisng95 merged commit f5f6ccc into crisng95:main Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature Request: Add Gemini Omni Flash video support

2 participants