Skip to main content

liter_llm/types/
image.rs

1use serde::{Deserialize, Serialize};
2
3/// Request to create images from a text prompt.
4#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5#[serde(deny_unknown_fields)]
6pub struct CreateImageRequest {
7    pub prompt: String,
8    #[serde(default, skip_serializing_if = "Option::is_none")]
9    pub model: Option<String>,
10    #[serde(default, skip_serializing_if = "Option::is_none")]
11    pub n: Option<u32>,
12    #[serde(default, skip_serializing_if = "Option::is_none")]
13    pub size: Option<String>,
14    #[serde(default, skip_serializing_if = "Option::is_none")]
15    pub quality: Option<String>,
16    #[serde(default, skip_serializing_if = "Option::is_none")]
17    pub style: Option<String>,
18    #[serde(default, skip_serializing_if = "Option::is_none")]
19    pub response_format: Option<String>,
20    #[serde(default, skip_serializing_if = "Option::is_none")]
21    pub user: Option<String>,
22}
23
24/// Response containing generated images.
25#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
26pub struct ImagesResponse {
27    pub created: u64,
28    pub data: Vec<Image>,
29}
30
31/// A single generated image, returned as either a URL or base64 data.
32#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
33pub struct Image {
34    #[serde(default, skip_serializing_if = "Option::is_none")]
35    pub url: Option<String>,
36    #[serde(default, skip_serializing_if = "Option::is_none")]
37    pub b64_json: Option<String>,
38    #[serde(default, skip_serializing_if = "Option::is_none")]
39    pub revised_prompt: Option<String>,
40}