Skip to main content

Crate genviz

Crate genviz 

Source
Expand description

GenViz - Unified AI media generation (image + video).

This crate provides a unified interface for generating images and videos using different AI providers.

§Quick Start - Images

use genviz::{GeminiProvider, GenerationRequest, ImageProvider};

#[tokio::main]
async fn main() -> genviz::Result<()> {
    let provider = GeminiProvider::builder().build()?;
    let request = GenerationRequest::new("A golden retriever puppy");
    let image = provider.generate(&request).await?;
    image.save("puppy.jpg")?;
    Ok(())
}

§Quick Start - Videos

use genviz::{GrokVideoProvider, VideoGenerationRequest, VideoProvider};

#[tokio::main]
async fn main() -> genviz::Result<()> {
    let provider = GrokVideoProvider::builder().build()?;
    let request = VideoGenerationRequest::new("A cat playing with a ball")
        .with_duration(6);
    let video = provider.generate(&request).await?;
    video.save("cat.mp4")?;
    Ok(())
}

§Features

§Image Generation

  • flux-image: Flux (Black Forest Labs)
  • gemini-image: Gemini (Google)
  • grok-image: Grok Imagine (xAI)
  • openai-image: OpenAI (gpt-image-1, dall-e-3)

§Video Generation

  • grok-video: Grok Imagine Video (xAI)
  • openai-video: Sora (OpenAI)
  • veo: Veo (Google)

§Meta Features

  • image: All image providers
  • video: All video providers
  • cli: Command-line interface

Re-exports§

pub use image::AspectRatio;
pub use image::GeneratedImage;
pub use image::GenerationMetadata;
pub use image::GenerationRequest;
pub use image::ImageFormat;
pub use image::ImageProvider;
pub use image::ImageProviderExt;
pub use image::ImageProviderKind;
pub use image::providers::FluxModel;
pub use image::providers::FluxProvider;
pub use image::providers::FluxProviderBuilder;
pub use image::providers::GeminiModel;
pub use image::providers::GeminiProvider;
pub use image::providers::GeminiProviderBuilder;
pub use image::providers::GrokModel;
pub use image::providers::GrokProvider;
pub use image::providers::GrokProviderBuilder;
pub use image::providers::OpenAiImageModel;
pub use image::providers::OpenAiImageProvider;
pub use image::providers::OpenAiImageProviderBuilder;
pub use video::GeneratedVideo;
pub use video::VideoGenerationRequest;
pub use video::VideoMetadata;
pub use video::VideoProvider;
pub use video::VideoProviderExt;
pub use video::VideoProviderKind;
pub use video::providers::GrokVideoModel;
pub use video::providers::GrokVideoProvider;
pub use video::providers::GrokVideoProviderBuilder;
pub use video::providers::SoraModel;
pub use video::providers::SoraProvider;
pub use video::providers::SoraProviderBuilder;
pub use video::providers::VeoModel;
pub use video::providers::VeoProvider;
pub use video::providers::VeoProviderBuilder;

Modules§

image
Image generation module.
prelude
Prelude for convenient imports.
video
Video generation module.

Enums§

GenVizError
Errors that can occur during media generation.

Type Aliases§

Result
Result type alias for media generation operations.