veo 3.1 fast

This commit is contained in:
Brandon Thomas committed 2025-12-03 20:33:08 -05:00
1 parent cf59f03465
commit 4c823d8f2a
4 files changed
+159 -1

No files matched your search

@@ -1,3 +1,6 @@
pub mod veo_3p1_first_last_frame_image_to_video;
pub mod veo_3p1_fast_first_frame_image_to_video;
pub mod veo_3p1_fast_first_last_frame_image_to_video;
pub mod veo_3p1_fast_text_to_video;
pub mod veo_3p1_first_frame_image_to_video;
pub mod veo_3p1_first_last_frame_image_to_video;
pub mod veo_3p1_text_to_video;
@@ -0,0 +1,47 @@
use crate::prelude::{Deserialize, FalRequest, Serialize};
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct Veo3p1FastFirstFrameImageToVideoInput {
pub prompt: String,
/// Starting frame
pub image_url: String,
/// Possible enum values: auto, 9:16, 16:9, 1:1
/// Default value "16:9"
#[serde(skip_serializing_if = "Option::is_none")]
pub aspect_ratio: Option<String>,
/// Duration in seconds
/// Possible enum values: 4s, 6s, 8s
/// Default value 8s
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<String>,
/// Generate audio
/// Default value "true"
#[serde(skip_serializing_if = "Option::is_none")]
pub generate_audio: Option<bool>,
/// Possible enum values: 720p, 1080p
/// Default value 720p
#[serde(skip_serializing_if = "Option::is_none")]
pub resolution: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Veo3p1FastFirstFrameImageToVideoOutput {
pub video: VideoFile,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct VideoFile {
/// The URL where the file can be downloaded from.
pub url: String,
}
pub fn veo_3p1_fast_first_frame_image_to_video(
params: Veo3p1FastFirstFrameImageToVideoInput,
) -> FalRequest<Veo3p1FastFirstFrameImageToVideoInput, Veo3p1FastFirstFrameImageToVideoOutput> {
FalRequest::new("fal-ai/veo3.1/fast/image-to-video", params)
}
@@ -0,0 +1,50 @@
use crate::prelude::{Deserialize, FalRequest, Serialize};
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct Veo3p1FastFirstLastFrameImageToVideoInput {
pub prompt: String,
/// Starting frame
pub first_frame_url: String,
/// Ending frame
pub last_frame_url: String,
/// Duration in seconds
/// Possible enum values: 4s, 6s, 8s
/// Default value 8s
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<String>,
/// Possible enum values: auto, 9:16, 16:9, 1:1
/// Default value "auto"
#[serde(skip_serializing_if = "Option::is_none")]
pub aspect_ratio: Option<String>,
/// Possible enum values: 720p, 1080p
/// Default value 720p
#[serde(skip_serializing_if = "Option::is_none")]
pub resolution: Option<String>,
/// Generate audio
/// Defaults to "true"
#[serde(skip_serializing_if = "Option::is_none")]
pub generate_audio: Option<bool>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Veo3p1FastFirstLastFrameImageToVideoOutput {
pub video: VideoFile,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct VideoFile {
/// The URL where the file can be downloaded from.
pub url: String,
}
pub fn veo_3p1_fast_first_last_frame_image_to_video(
params: Veo3p1FastFirstLastFrameImageToVideoInput,
) -> FalRequest<Veo3p1FastFirstLastFrameImageToVideoInput, Veo3p1FastFirstLastFrameImageToVideoOutput> {
FalRequest::new("fal-ai/veo3.1/fast/first-last-frame-to-video", params)
}
@@ -0,0 +1,58 @@
use crate::prelude::{Deserialize, FalRequest, Serialize};
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct Veo3p1FastTextToVideoInput {
pub prompt: String,
/// Possible enum values: 9:16, 16:9, 1:1
/// Default value "16:9"
#[serde(skip_serializing_if = "Option::is_none")]
pub aspect_ratio: Option<String>,
/// Duration in seconds
/// Possible enum values: 4s, 6s, 8s
/// Default value 8s
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub negative_prompt: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enhance_prompt: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub seed: Option<i64>,
/// Whether to automatically attempt to fix prompts that fail content policy or other validation checks by rewriting them
/// Default value: true
#[serde(skip_serializing_if = "Option::is_none")]
pub auto_fix: Option<bool>,
/// Possible enum values: 720p, 1080p
/// Default value 720p
#[serde(skip_serializing_if = "Option::is_none")]
pub resolution: Option<String>,
/// Generate audio
/// Default value "true"
#[serde(skip_serializing_if = "Option::is_none")]
pub generate_audio: Option<bool>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Veo3p1FastTextToVideoOutput {
pub video: VideoFile,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct VideoFile {
/// The URL where the file can be downloaded from.
pub url: String,
}
pub fn veo_3p1_text_to_video(
params: Veo3p1FastTextToVideoInput,
) -> FalRequest<Veo3p1FastTextToVideoInput, Veo3p1FastTextToVideoOutput> {
FalRequest::new("fal-ai/veo3.1/fast", params)
}