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 f3d47bc72c..93e24ca980 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,2 +1,3 @@ pub mod veo_3p1_first_last_frame_image_to_video; -pub mod veo_3p1_first_frame_image_to_video; \ No newline at end of file +pub mod veo_3p1_first_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_text_to_video.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_text_to_video.rs new file mode 100644 index 0000000000..c26f896357 --- /dev/null +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_text_to_video.rs @@ -0,0 +1,58 @@ +use crate::prelude::{Deserialize, FalRequest, Serialize}; + +#[derive(Debug, Serialize, Deserialize, Default)] +pub struct Veo3p1TextToVideoInput { + 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 Veo3p1TextToVideoOutput { + 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: Veo3p1TextToVideoInput, +) -> FalRequest { + FalRequest::new("fal-ai/veo3.1", params) +}