/// Attributes used to dictate the style of the output
#[derive(serde::Serialize, serde::Deserialize, Debug, Default, Clone)]
pub struct V1AiTalkingPhotoCreateBodyStyle {
/// Controls overall motion style.
/// * `realistic` - Maintains likeness well, high quality, and reliable.
/// * `prompted` - Slightly lower likeness; allows option to prompt scene.
///
/// **Deprecated values (maintained for backward compatibility):**
/// * `pro` - Deprecated: use `realistic`
/// * `standard` - Deprecated: use `prompted`
/// * `stable` - Deprecated: use `realistic`
/// * `expressive` - Deprecated: use `prompted`
#[serde(skip_serializing_if = "Option::is_none")]
pub generation_mode: Option<
crate::models::V1AiTalkingPhotoCreateBodyStyleGenerationModeEnum,
>,
/// Note: this value is only applicable when generation_mode is `expressive`. The value can include up to 2 decimal places.
/// * Lower values yield more stability but can suppress mouth movement.
/// * Higher values increase motion and expressiveness, with a higher risk of distortion.
#[serde(skip_serializing_if = "Option::is_none")]
pub intensity: Option<f64>,
/// A text prompt to guide the generation. Only applicable when generation_mode is `prompted`.
/// This field is ignored for other modes.
#[serde(skip_serializing_if = "Option::is_none")]
pub prompt: Option<String>,
}