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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/// V1TextToVideoCreateBody
#[derive(serde::Serialize, serde::Deserialize, Debug, Default, Clone)]
pub struct V1TextToVideoCreateBody {
/// Provide `aspect_ratio` to set the video’s aspect ratio. Determines the aspect ratio of the output video.
///
/// * **`gemini-omni-1.1`**: Supports 16:9, 9:16.
/// * **`kling-2.6`**: Supports 9:16, 16:9, 1:1.
/// * **`kling-3.0`**: Supports 9:16, 16:9, 1:1.
/// * **`kling-4.0`**: Supports 9:16, 16:9, 1:1.
/// * **`ltx-2.5`**: Supports 9:16, 16:9, 1:1.
/// * **`minimax-h3`**: Supports 16:9, 9:16, 1:1.
/// * **`seedance-1.5`**: Supports 9:16, 16:9, 1:1.
/// * **`seedance-2.0`**: Supports 9:16, 16:9, 1:1.
/// * **`seedance-2.0-fast`**: Supports 9:16, 16:9, 1:1.
/// * **`seedance-2.0-mini`**: Supports 9:16, 16:9, 1:1.
/// * **`seedance-2.5`**: Supports 9:16, 16:9, 1:1.
/// * **`veo3.1`**: Supports 9:16, 16:9.
/// * **`veo3.1-lite`**: Supports 9:16, 16:9.
/// * **`wan-2.2`**: Supports 9:16, 16:9, 1:1.
/// * **`wan-3.0`**: Supports 16:9, 9:16, 1:1.
///
#[serde(skip_serializing_if = "Option::is_none")]
pub aspect_ratio: Option<crate::models::V1TextToVideoCreateBodyAspectRatioEnum>,
/// 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
/// * **`kling-4.0`**: Toggle-able: no additional credits for audio
/// * **`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-fast`**: 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
/// * **`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
/// * **`kling-4.0`**: any integer from 3 to 30
/// * **`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-fast`**: 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
/// * **`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`**: any integer from 2 to 30
///
pub end_seconds: f64,
/// 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.
/// * `kling-4.0`: Create cinematic videos with image and video 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-fast`: Fast reference-led clips with consistent motion and audio.
/// * `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio.
/// * `seedance-2.5`: Best for premium realism, detail, and natural motion.
/// * `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::V1TextToVideoCreateBodyModelEnum>,
/// Give your video a custom name for easy identification.
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// Deprecated. Use `aspect_ratio` instead.
#[serde(skip_serializing_if = "Option::is_none")]
pub orientation: Option<crate::models::V1TextToVideoCreateBodyOrientationEnum>,
/// Name references without @ and refer to them as @name in style.prompt. Names must be unique, ignoring case. Maximum 10 references total. Omit for no references.
///
/// Reference media for video generation.
///
/// Supported models and reference media:
/// * **`gemini-omni-1.1`**: Supports images, videos. Up to 10 references.
/// * **`kling-3.0`**: Supports images, videos.
/// * **`kling-4.0`**: Supports images, videos. Up to 10 references.
/// * **`minimax-h3`**: Supports images, videos, audio. Video references must be 2–15 seconds each and 15 seconds combined, and are used in full. Audio references must be 2–15 seconds each and are used in full.
/// * **`seedance-2.0`**: Supports images, videos, audio.
/// * **`seedance-2.0-fast`**: Supports images, videos, audio.
/// * **`seedance-2.0-mini`**: Supports images, videos, audio.
/// * **`seedance-2.5`**: Supports images, videos, audio.
/// * **`veo3.1`**: Supports images. Up to 3 references. Requires `end_seconds` of 8.
/// * **`wan-3.0`**: Supports images, videos, audio.
#[serde(skip_serializing_if = "Option::is_none")]
pub references: Option<Vec<crate::models::V1TextToVideoCreateBodyReferencesItem>>,
/// 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.
/// * **`kling-4.0`**: Supports 720p, 1080p.
/// * **`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-fast`**: Supports 480p, 720p.
/// * **`seedance-2.0-mini`**: Supports 480p, 720p.
/// * **`seedance-2.5`**: Supports 480p, 720p, 1080p.
/// * **`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::V1TextToVideoCreateBodyResolutionEnum>,
pub style: crate::models::V1TextToVideoCreateBodyStyle,
}