use serde::{Deserialize, Serialize};
fn default_image_format() -> String {
"png".to_string()
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GenerateImageRequest {
pub prompt: String,
#[serde(default)]
pub model: Option<String>,
#[serde(default)]
pub negative_prompt: Option<String>,
#[serde(default)]
pub width: Option<u32>,
#[serde(default)]
pub height: Option<u32>,
#[serde(default)]
pub steps: Option<u32>,
#[serde(default)]
pub guidance: Option<f32>,
#[serde(default)]
pub seed: Option<u64>,
#[serde(default)]
pub output_path: Option<String>,
#[serde(default = "default_image_format")]
pub format: String,
#[serde(default)]
pub input_image_path: Option<String>,
#[serde(default)]
pub variant_count: Option<u32>,
#[serde(default)]
pub parent_image_path: Option<String>,
}
impl Default for GenerateImageRequest {
fn default() -> Self {
Self {
prompt: String::new(),
model: None,
negative_prompt: None,
width: None,
height: None,
steps: None,
guidance: None,
seed: None,
output_path: None,
format: default_image_format(),
input_image_path: None,
variant_count: None,
parent_image_path: None,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GenerateImageResult {
pub image_path: String,
pub media_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model_used: Option<String>,
}