magic_hour 0.80.0

Magic Hour Rust SDK
Documentation
/// 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.
    /// * **`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
    /// * **`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
    /// * **`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`**: 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 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.
    /// * `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>,
    /// Reference media for video generation. Name references without @ and refer to them as @name in style.prompt. Maximum 10 references total.
    ///
    /// Supported models and reference media:
    /// * **`gemini-omni-1.1`**: Supports images, videos. Up to 13 references.
    /// * **`kling-3.0`**: Supports images, videos.
    /// * **`minimax-h3`**: Supports images, videos, audio.
    /// * **`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.
    /// * **`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,
}