diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/mod.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/mod.rs index 56863d4604..1df3cb90c4 100644 --- a/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/mod.rs +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/mod.rs @@ -54,3 +54,17 @@ pub mod v1_6; ))) )] pub mod v2_1; +#[cfg(any( + feature = "endpoints", + feature = "endpoints_fal-ai", + feature = "endpoints_fal-ai_kling-video" +))] +#[cfg_attr( + docsrs, + doc(cfg(any( + feature = "endpoints", + feature = "endpoints_fal-ai", + feature = "endpoints_fal-ai_kling-video" + ))) +)] +pub mod v2_5; diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/kling_v2p5_turbo_pro_image_to_video.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/kling_v2p5_turbo_pro_image_to_video.rs new file mode 100644 index 0000000000..3a461a7164 --- /dev/null +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/kling_v2p5_turbo_pro_image_to_video.rs @@ -0,0 +1,45 @@ +use crate::prelude::{Deserialize, FalRequest, Serialize}; + +#[derive(Debug, Serialize, Deserialize, Default)] +pub struct KlingV2p5TurboProImageToVideoInput { + pub prompt: String, + + /// Starting frame + pub image_url: String, + + /// Optional ending frame + #[serde(skip_serializing_if = "Option::is_none")] + pub tail_image_url: Option, + + /// Optional negative prompt + #[serde(skip_serializing_if = "Option::is_none")] + pub negative_prompt: Option, + + /// Duration in seconds + /// Options: "5", "10" + #[serde(skip_serializing_if = "Option::is_none")] + pub duration: Option, + + /// The CFG (Classifier Free Guidance) scale is a measure of how close you want the model to + /// stick to your prompt. + /// Default value: 0.5 + #[serde(skip_serializing_if = "Option::is_none")] + pub cfg_scale: Option, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct KlingV2p5TurboProImageToVideoOutput { + 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 kling_v2p5_turbo_pro_image_to_video( + params: KlingV2p5TurboProImageToVideoInput, +) -> FalRequest { + FalRequest::new("fal-ai/kling-video/v2.5-turbo/pro/image-to-video", params) +} diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/kling_v2p5_turbo_pro_text_to_video.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/kling_v2p5_turbo_pro_text_to_video.rs new file mode 100644 index 0000000000..070d1c9fa8 --- /dev/null +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/kling_v2p5_turbo_pro_text_to_video.rs @@ -0,0 +1,42 @@ +use crate::prelude::{Deserialize, FalRequest, Serialize}; + +#[derive(Debug, Serialize, Deserialize, Default)] +pub struct KlingV2p5TurboProTextToVideoInput { + pub prompt: String, + + /// Aspect ratio + /// Possible enum values: "16:9", "9:16", "1:1" + pub aspect_ratio: Option, + + /// Optional negative prompt + #[serde(skip_serializing_if = "Option::is_none")] + pub negative_prompt: Option, + + /// Duration in seconds + /// Options: "5", "10" + #[serde(skip_serializing_if = "Option::is_none")] + pub duration: Option, + + /// The CFG (Classifier Free Guidance) scale is a measure of how close you want the model to + /// stick to your prompt. + /// Default value: 0.5 + #[serde(skip_serializing_if = "Option::is_none")] + pub cfg_scale: Option, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct KlingV2p5TurboProTextToVideoOutput { + 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 kling_v2p5_turbo_pro_text_to_video( + params: KlingV2p5TurboProTextToVideoInput, +) -> FalRequest { + FalRequest::new("fal-ai/kling-video/v2.5-turbo/pro/text-to-video", params) +} diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/kling_v2p5_turbo_standard_image_to_video.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/kling_v2p5_turbo_standard_image_to_video.rs new file mode 100644 index 0000000000..60f4e45932 --- /dev/null +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/kling_v2p5_turbo_standard_image_to_video.rs @@ -0,0 +1,41 @@ +use crate::prelude::{Deserialize, FalRequest, Serialize}; + +#[derive(Debug, Serialize, Deserialize, Default)] +pub struct KlingV2p5TurboStandardImageToVideoInput { + pub prompt: String, + + /// Starting frame + pub image_url: String, + + /// Optional negative prompt + #[serde(skip_serializing_if = "Option::is_none")] + pub negative_prompt: Option, + + /// Duration in seconds + /// Options: "5", "10" + #[serde(skip_serializing_if = "Option::is_none")] + pub duration: Option, + + /// The CFG (Classifier Free Guidance) scale is a measure of how close you want the model to + /// stick to your prompt. + /// Default value: 0.5 + #[serde(skip_serializing_if = "Option::is_none")] + pub cfg_scale: Option, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct KlingV2p5TurboStandardImageToVideoOutput { + 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 kling_v2p5_turbo_standard_image_to_video( + params: KlingV2p5TurboStandardImageToVideoInput, +) -> FalRequest { + FalRequest::new("fal-ai/kling-video/v2.5-turbo/standard/image-to-video", params) +} diff --git a/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/mod.rs b/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/mod.rs new file mode 100644 index 0000000000..6a63891597 --- /dev/null +++ b/crates/vendor/fal-rs/src/endpoints/fal_ai/kling_video/v2_5/mod.rs @@ -0,0 +1,3 @@ +pub mod kling_v2p5_turbo_pro_image_to_video; +pub mod kling_v2p5_turbo_pro_text_to_video; +pub mod kling_v2p5_turbo_standard_image_to_video; \ No newline at end of file