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 66787157d7..f3d47bc72c 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 +1,2 @@ -pub mod veo_3p1_first_last_frame_image_to_video; \ No newline at end of file +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 diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_first_frame_image_to_video.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_first_frame_image_to_video.rs new file mode 100644 index 0000000000..6f126a8b73 --- /dev/null +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_first_frame_image_to_video.rs @@ -0,0 +1,47 @@ +use crate::prelude::{Deserialize, FalRequest, Serialize}; + +#[derive(Debug, Serialize, Deserialize, Default)] +pub struct Veo3p1FirstFrameImageToVideoInput { + pub prompt: String, + + /// Starting frame + pub image_url: String, + + /// Possible enum values: 9:16, 16:9 (NB: This differs from first-frame/last-frame) + /// 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 Veo3p1FirstFrameImageToVideoOutput { + 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_first_frame_image_to_video( + params: Veo3p1FirstFrameImageToVideoInput, +) -> FalRequest { + FalRequest::new("fal-ai/veo3.1/image-to-video", params) +} diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_first_last_frame_image_to_video.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_first_last_frame_image_to_video.rs index 777140842f..ac87f57e60 100644 --- a/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_first_last_frame_image_to_video.rs +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/veo/veo3_1/veo_3p1_first_last_frame_image_to_video.rs @@ -10,10 +10,6 @@ pub struct Veo3p1FirstLastFrameImageToVideoInput { /// Ending frame pub last_frame_url: String, - /// Generate audio - #[serde(skip_serializing_if = "Option::is_none")] - pub generate_audio: Option, - /// Duration in seconds /// Possible enum values: 4s, 6s, 8s /// Default value 8s @@ -29,6 +25,11 @@ pub struct Veo3p1FirstLastFrameImageToVideoInput { /// 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)]