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 providersvideo: All video providerscli: 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§
Enums§
- GenViz
Error - Errors that can occur during media generation.
Type Aliases§
- Result
- Result type alias for media generation operations.