1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/// V1ImageToVideoCreateBody
#[derive(serde::Serialize, serde::Deserialize, Debug, Default, Clone)]
pub struct V1ImageToVideoCreateBody {
/// Provide the assets for image-to-video. Sora 2 only supports images with an aspect ratio of `9:16` or `16:9`.
pub assets: crate::models::V1ImageToVideoCreateBodyAssets,
/// Whether to include audio in the video. Defaults to `false` if not specified.
///
/// Audio support varies by model:
/// * **`gemini-omni-1.1`**: Not supported
/// * **`kling-2.6`**: Not supported
/// * **`kling-3.0`**: Toggle-able: audio adds extra credits when enabled
/// * **`ltx-2.5`**: Toggle-able: no additional credits for audio
/// * **`minimax-h3`**: Toggle-able: no additional credits for audio
/// * **`seedance-1.5`**: Toggle-able: audio adds extra credits when enabled
/// * **`seedance-2.0`**: Toggle-able: no additional credits for audio
/// * **`seedance-2.0-mini`**: Toggle-able: no additional credits for audio
/// * **`seedance-2.5`**: Toggle-able: no additional credits for audio
/// * **`sora-2`**: Toggle-able: no additional credits for audio
/// * **`veo3.1`**: Toggle-able: audio adds extra credits when enabled
/// * **`veo3.1-lite`**: Toggle-able: audio adds extra credits when enabled
/// * **`wan-2.2`**: Not supported
/// * **`wan-3.0`**: Toggle-able: no additional credits for audio
///
#[serde(skip_serializing_if = "Option::is_none")]
pub audio: Option<bool>,
/// The total duration of the output video in seconds. Supported durations depend on the chosen model:
///
/// * **`gemini-omni-1.1`**: any integer from 3 to 10
/// * **`kling-2.6`**: 5, 10
/// * **`kling-3.0`**: any integer from 3 to 15
/// * **`ltx-2.5`**: any integer from 1 to 60
/// * **`minimax-h3`**: any integer from 1 to 30
/// * **`seedance-1.5`**: any integer from 4 to 12
/// * **`seedance-2.0`**: any integer from 4 to 15
/// * **`seedance-2.0-mini`**: any integer from 4 to 15
/// * **`seedance-2.5`**: any integer from 4 to 30
/// * **`sora-2`**: 4, 8, 12, 24, 36, 48, 60
/// * **`veo3.1`**: 4, 6, 8, 16, 24, 32, 40, 48, 56
/// * **`veo3.1-lite`**: 4, 6, 8, 16, 24, 32, 40, 48, 56
/// * **`wan-2.2`**: 3, 4, 5, 6, 7, 8, 9, 10, 15
/// * **`wan-3.0`**: 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30
///
pub end_seconds: f64,
/// `height` is deprecated and no longer influences the output video's resolution.
///
/// This field is retained only for backward compatibility and will be removed in a future release.
#[serde(default)]
#[serde(skip_serializing_if = "crate::core::patch::Patch::is_undefined")]
pub height: crate::core::patch::Patch<i64>,
/// The AI model to use for video generation.
///
/// * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`.
/// * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output.
/// * `kling-2.6`: Best for action, motion blur, and controlled camera moves.
/// * `kling-3.0`: Best for cinematic stories, references, and optional audio.
/// * `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration.
/// * `minimax-h3`: Great for reference-driven clips with native audio and longer durations.
/// * `seedance-1.5`: Best for smooth, consistent motion with an end frame.
/// * `seedance-2.0`: Best for reference-led clips with precise subject control.
/// * `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio.
/// * `seedance-2.5`: Best for premium realism, detail, and natural motion.
/// * `sora-2`: Best for creative concepts and longer clips with audio.
/// * `veo3.1`: Best for romantic interactions and expressive action, with realistic detail.
/// * `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1.
/// * `wan-2.2`: Best for physical motion, action, and camera movement.
/// * `wan-3.0`: High-quality video with native audio, long clips, and end-frame control.
///
/// If you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`.
#[serde(skip_serializing_if = "Option::is_none")]
pub model: Option<crate::models::V1ImageToVideoCreateBodyModelEnum>,
/// Give your video a custom name for easy identification.
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// Controls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers.
///
/// * **`gemini-omni-1.1`**: Supports 360p, 720p, 1080p, 4k.
/// * **`kling-2.6`**: Supports 720p, 1080p.
/// * **`kling-3.0`**: Supports 720p, 1080p, 4k.
/// * **`ltx-2.5`**: Supports 480p, 720p, 1080p.
/// * **`minimax-h3`**: Supports 480p, 720p, 1080p.
/// * **`seedance-1.5`**: Supports 480p, 720p, 1080p.
/// * **`seedance-2.0`**: Supports 480p, 720p, 1080p, 4k.
/// * **`seedance-2.0-mini`**: Supports 480p, 720p.
/// * **`seedance-2.5`**: Supports 480p, 720p, 1080p.
/// * **`sora-2`**: Supports 720p.
/// * **`veo3.1`**: Supports 720p, 1080p.
/// * **`veo3.1-lite`**: Supports 720p, 1080p.
/// * **`wan-2.2`**: Supports 480p, 720p, 1080p.
/// * **`wan-3.0`**: Supports 480p, 720p, 1080p.
///
#[serde(skip_serializing_if = "Option::is_none")]
pub resolution: Option<crate::models::V1ImageToVideoCreateBodyResolutionEnum>,
/// Attributed used to dictate the style of the output
#[serde(skip_serializing_if = "Option::is_none")]
pub style: Option<crate::models::V1ImageToVideoCreateBodyStyle>,
/// `width` is deprecated and no longer influences the output video's resolution.
///
/// This field is retained only for backward compatibility and will be removed in a future release.
#[serde(default)]
#[serde(skip_serializing_if = "crate::core::patch::Patch::is_undefined")]
pub width: crate::core::patch::Patch<i64>,
}