tripo_api/tasks/
texture_model.rs1use serde::{Deserialize, Serialize};
8
9use crate::compress::CompressionMode;
10use crate::enums::{TextureAlignment, TextureQuality};
11use crate::image::ImageInput;
12
13#[derive(Debug, Clone, Serialize, Deserialize, Default)]
15#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
16#[serde(deny_unknown_fields, default)]
17pub struct TexturePrompt {
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub text: Option<String>,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub image: Option<ImageInput>,
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub style_image: Option<ImageInput>,
27}
28
29impl TexturePrompt {
30 pub(crate) fn is_empty(&self) -> bool {
31 self.text.is_none() && self.image.is_none() && self.style_image.is_none()
32 }
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize, Default)]
37#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
38#[serde(deny_unknown_fields)]
39pub struct TextureModelRequest {
40 pub original_model_task_id: String,
42 #[serde(default, skip_serializing_if = "TexturePrompt::is_empty")]
44 pub texture_prompt: TexturePrompt,
45 #[serde(skip_serializing_if = "Option::is_none")]
47 pub model_version: Option<String>,
48 #[serde(skip_serializing_if = "Option::is_none")]
50 pub texture: Option<bool>,
51 #[serde(skip_serializing_if = "Option::is_none")]
53 pub pbr: Option<bool>,
54 #[serde(skip_serializing_if = "Option::is_none")]
56 pub model_seed: Option<i32>,
57 #[serde(skip_serializing_if = "Option::is_none")]
59 pub texture_seed: Option<i32>,
60 #[serde(skip_serializing_if = "Option::is_none")]
62 pub texture_quality: Option<TextureQuality>,
63 #[serde(skip_serializing_if = "Option::is_none")]
65 pub texture_alignment: Option<TextureAlignment>,
66 #[serde(skip_serializing_if = "Option::is_none")]
68 pub part_names: Option<Vec<String>>,
69 #[serde(skip_serializing_if = "Option::is_none")]
71 pub compress: Option<CompressionMode>,
72 #[serde(skip_serializing_if = "Option::is_none")]
74 pub bake: Option<bool>,
75}