From 4c823d8f2a292987f05eb832da2dd469a4e9f6e9 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Wed, 3 Dec 2025 20:33:08 -0500 Subject: [PATCH] veo 3.1 fast --- .../src/endpoints/fal_ai/veo/veo3_1/mod.rs | 5 +- ...veo_3p1_fast_first_frame_image_to_video.rs | 47 +++++++++++++++ ...p1_fast_first_last_frame_image_to_video.rs | 50 ++++++++++++++++ .../veo/veo3_1/veo_3p1_fast_text_to_video.rs | 58 +++++++++++++++++++ 4 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_first_frame_image_to_video.rs create mode 100644 crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_first_last_frame_image_to_video.rs create mode 100644 crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_text_to_video.rs diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/mod.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/mod.rs index 93e24ca980..92c85b788d 100644 --- a/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/mod.rs +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/mod.rs @@ -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; \ No newline at end of file diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_first_frame_image_to_video.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_first_frame_image_to_video.rs new file mode 100644 index 0000000000..78e271a2b9 --- /dev/null +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_first_frame_image_to_video.rs @@ -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, + + /// Duration in seconds + /// Possible enum values: 4s, 6s, 8s + /// Default value 8s + #[serde(skip_serializing_if = "Option::is_none")] + pub duration: Option, + + /// Generate audio + /// Default value "true" + #[serde(skip_serializing_if = "Option::is_none")] + pub generate_audio: Option, + + /// Possible enum values: 720p, 1080p + /// Default value 720p + #[serde(skip_serializing_if = "Option::is_none")] + pub resolution: Option, +} + +#[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 { + FalRequest::new("fal-ai/veo3.1/fast/image-to-video", params) +} diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_first_last_frame_image_to_video.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_first_last_frame_image_to_video.rs new file mode 100644 index 0000000000..4ae6b25e9d --- /dev/null +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_first_last_frame_image_to_video.rs @@ -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, + + /// Possible enum values: auto, 9:16, 16:9, 1:1 + /// Default value "auto" + #[serde(skip_serializing_if = "Option::is_none")] + pub aspect_ratio: Option, + + /// Possible enum values: 720p, 1080p + /// Default value 720p + #[serde(skip_serializing_if = "Option::is_none")] + pub resolution: Option, + + /// Generate audio + /// Defaults to "true" + #[serde(skip_serializing_if = "Option::is_none")] + pub generate_audio: Option, +} + +#[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 { + FalRequest::new("fal-ai/veo3.1/fast/first-last-frame-to-video", params) +} diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_text_to_video.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_text_to_video.rs new file mode 100644 index 0000000000..f6946638aa --- /dev/null +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_fast_text_to_video.rs @@ -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, + + /// Duration in seconds + /// Possible enum values: 4s, 6s, 8s + /// Default value 8s + #[serde(skip_serializing_if = "Option::is_none")] + pub duration: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub negative_prompt: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub enhance_prompt: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub seed: Option, + + /// 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, + + /// Possible enum values: 720p, 1080p + /// Default value 720p + #[serde(skip_serializing_if = "Option::is_none")] + pub resolution: Option, + + /// Generate audio + /// Default value "true" + #[serde(skip_serializing_if = "Option::is_none")] + pub generate_audio: Option, +} + +#[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 { + FalRequest::new("fal-ai/veo3.1/fast", params) +}