omniflash-sdk 0.1.0

Omni Flash Rust SDK — generate short videos (with synchronized audio) and images using the Gemini Omni Flash family of models.
Documentation

omniflash-sdk (Rust)

Rust client for Gemini Omni Flash — generate short video clips (with synchronized audio) and images using Google's Gemini Omni Flash family of models.

Gemini Omni Flash wraps the Omni Flash family (seedance-2 for text/image → video + audio, gpt-image-2 and nano-banana-2 for text/image → image) behind one simple REST API.

Install

[dependencies]
omniflash-sdk = "0.1"

Get an API key

Sign in at Gemini Omni Flash, open the account page, then create an sk-… token.

export OMNIFLASH_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Quick start

use omniflash_sdk::{OmniFlash, CreateTaskInput};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = OmniFlash::new(None)?; // reads OMNIFLASH_API_KEY

    let task = client.run(
        CreateTaskInput {
            model_id: "seedance-2".into(),
            prompt: "a kettle whistles as steam rises, cozy kitchen, warm light".into(),
            aspect_ratio: Some("16:9".into()),
            ..Default::default()
        },
        None,
    )?;

    println!("video: {:?}", task.video_url);
    println!("audio: {:?}", task.audio_url);
    Ok(())
}

Models

model_id Modality Output
seedance-2 text/image → video video_url + audio_url
gpt-image-2 text/image → image image_url
nano-banana-2 text/image → image image_url

See the live model list and pricing on Gemini Omni Flash.

API

  • OmniFlash::new(api_key: Option<&str>) -> Result<OmniFlash> — reads OMNIFLASH_API_KEY when None.
  • client.create_task(&CreateTaskInput) -> Result<Task>
  • client.get_task(&str) -> Result<Task>
  • client.run(CreateTaskInput, Option<RunOptions>) -> Result<Task> — create + poll until terminal.
  • Task.is_done() / Task.output_url() — helpers. output_url prefers video → image → audio.

Links

License

MIT