为 model3d 请求契约的可选字段补充 ts(optional)

为 image_to_model、multiview_to_model、text_to_model 三个请求的可选字段添加 ts(optional = nullable)

multiview 视图分支的 left、back、right 同步标记为可选

重新生成 packages/shared/src/contracts/model3d 下的 TypeScript 绑定,使 TS 侧可按 serde 语义省略字段
This commit is contained in:
2026-09-19 13:04:46 +08:00
parent 42a5929a73
commit 950209f038
7 changed files with 122 additions and 61 deletions
@@ -10,24 +10,24 @@ import type { Model3dTextureVersion } from '../common/Model3dTextureVersion';
export type Model3dImageToModelRequest = {
input: string;
model: Model3dModelVersion | null;
enableImageAutofix: boolean | null;
modelSeed: number | null;
textureSeed: number | null;
texture: boolean | null;
pbr: boolean | null;
textureQuality: Model3dTextureQuality | null;
textureVersion: Model3dTextureVersion | null;
delight: boolean | null;
textureAlignment: Model3dTextureAlignment | null;
geometryQuality: Model3dGeometryQuality | null;
faceLimit: number | null;
autoSize: boolean | null;
orientation: Model3dInputOrientation | null;
quad: boolean | null;
smartLowPoly: boolean | null;
generateParts: boolean | null;
compress: Model3dCompression | null;
exportUv: boolean | null;
exportOrientation: Model3dExportOrientation | null;
model?: Model3dModelVersion | null;
enableImageAutofix?: boolean | null;
modelSeed?: number | null;
textureSeed?: number | null;
texture?: boolean | null;
pbr?: boolean | null;
textureQuality?: Model3dTextureQuality | null;
textureVersion?: Model3dTextureVersion | null;
delight?: boolean | null;
textureAlignment?: Model3dTextureAlignment | null;
geometryQuality?: Model3dGeometryQuality | null;
faceLimit?: number | null;
autoSize?: boolean | null;
orientation?: Model3dInputOrientation | null;
quad?: boolean | null;
smartLowPoly?: boolean | null;
generateParts?: boolean | null;
compress?: Model3dCompression | null;
exportUv?: boolean | null;
exportOrientation?: Model3dExportOrientation | null;
};
@@ -4,8 +4,8 @@ export type Model3dMultiviewInputs =
| {
kind: 'views';
front: string;
left: string | null;
back: string | null;
right: string | null;
left?: string | null;
back?: string | null;
right?: string | null;
}
| { kind: 'taskId'; taskId: string };
@@ -11,23 +11,23 @@ import type { Model3dMultiviewInputs } from './Model3dMultiviewInputs';
export type Model3dMultiviewToModelRequest = {
inputs: Model3dMultiviewInputs;
model: Model3dModelVersion | null;
modelSeed: number | null;
textureSeed: number | null;
texture: boolean | null;
pbr: boolean | null;
textureQuality: Model3dTextureQuality | null;
textureVersion: Model3dTextureVersion | null;
delight: boolean | null;
geometryQuality: Model3dGeometryQuality | null;
textureAlignment: Model3dTextureAlignment | null;
faceLimit: number | null;
autoSize: boolean | null;
orientation: Model3dInputOrientation | null;
quad: boolean | null;
smartLowPoly: boolean | null;
generateParts: boolean | null;
compress: Model3dCompression | null;
exportUv: boolean | null;
exportOrientation: Model3dExportOrientation | null;
model?: Model3dModelVersion | null;
modelSeed?: number | null;
textureSeed?: number | null;
texture?: boolean | null;
pbr?: boolean | null;
textureQuality?: Model3dTextureQuality | null;
textureVersion?: Model3dTextureVersion | null;
delight?: boolean | null;
geometryQuality?: Model3dGeometryQuality | null;
textureAlignment?: Model3dTextureAlignment | null;
faceLimit?: number | null;
autoSize?: boolean | null;
orientation?: Model3dInputOrientation | null;
quad?: boolean | null;
smartLowPoly?: boolean | null;
generateParts?: boolean | null;
compress?: Model3dCompression | null;
exportUv?: boolean | null;
exportOrientation?: Model3dExportOrientation | null;
};
@@ -8,23 +8,23 @@ import type { Model3dTextureVersion } from '../common/Model3dTextureVersion';
export type Model3dTextToModelRequest = {
prompt: string;
model: Model3dModelVersion | null;
negativePrompt: string | null;
imageSeed: number | null;
modelSeed: number | null;
textureSeed: number | null;
texture: boolean | null;
pbr: boolean | null;
textureQuality: Model3dTextureQuality | null;
textureVersion: Model3dTextureVersion | null;
delight: boolean | null;
geometryQuality: Model3dGeometryQuality | null;
faceLimit: number | null;
autoSize: boolean | null;
quad: boolean | null;
smartLowPoly: boolean | null;
generateParts: boolean | null;
compress: Model3dCompression | null;
exportUv: boolean | null;
exportOrientation: Model3dExportOrientation | null;
model?: Model3dModelVersion | null;
negativePrompt?: string | null;
imageSeed?: number | null;
modelSeed?: number | null;
textureSeed?: number | null;
texture?: boolean | null;
pbr?: boolean | null;
textureQuality?: Model3dTextureQuality | null;
textureVersion?: Model3dTextureVersion | null;
delight?: boolean | null;
geometryQuality?: Model3dGeometryQuality | null;
faceLimit?: number | null;
autoSize?: boolean | null;
quad?: boolean | null;
smartLowPoly?: boolean | null;
generateParts?: boolean | null;
compress?: Model3dCompression | null;
exportUv?: boolean | null;
exportOrientation?: Model3dExportOrientation | null;
};
@@ -13,27 +13,47 @@ use super::MODEL3D_TS_EXPORT_DIR;
#[ts(export, export_to = MODEL3D_TS_EXPORT_DIR)]
pub struct Model3dImageToModelRequest {
pub input: String,
#[ts(optional = nullable)]
pub model: Option<Model3dModelVersion>,
#[ts(optional = nullable)]
pub enable_image_autofix: Option<bool>,
#[ts(type = "number | null")]
#[ts(optional = nullable)]
pub model_seed: Option<i64>,
#[ts(type = "number | null")]
#[ts(optional = nullable)]
pub texture_seed: Option<i64>,
#[ts(optional = nullable)]
pub texture: Option<bool>,
#[ts(optional = nullable)]
pub pbr: Option<bool>,
#[ts(optional = nullable)]
pub texture_quality: Option<Model3dTextureQuality>,
#[ts(optional = nullable)]
pub texture_version: Option<Model3dTextureVersion>,
#[ts(optional = nullable)]
pub delight: Option<bool>,
#[ts(optional = nullable)]
pub texture_alignment: Option<Model3dTextureAlignment>,
#[ts(optional = nullable)]
pub geometry_quality: Option<Model3dGeometryQuality>,
#[ts(type = "number | null")]
#[ts(optional = nullable)]
pub face_limit: Option<i64>,
#[ts(optional = nullable)]
pub auto_size: Option<bool>,
#[ts(optional = nullable)]
pub orientation: Option<Model3dInputOrientation>,
#[ts(optional = nullable)]
pub quad: Option<bool>,
#[ts(optional = nullable)]
pub smart_low_poly: Option<bool>,
#[ts(optional = nullable)]
pub generate_parts: Option<bool>,
#[ts(optional = nullable)]
pub compress: Option<Model3dCompression>,
#[ts(optional = nullable)]
pub export_uv: Option<bool>,
#[ts(optional = nullable)]
pub export_orientation: Option<Model3dExportOrientation>,
}
@@ -14,8 +14,11 @@ use super::MODEL3D_TS_EXPORT_DIR;
pub enum Model3dMultiviewInputs {
Views {
front: String,
#[ts(optional = nullable)]
left: Option<String>,
#[ts(optional = nullable)]
back: Option<String>,
#[ts(optional = nullable)]
right: Option<String>,
},
TaskId {
@@ -30,26 +33,45 @@ pub enum Model3dMultiviewInputs {
#[ts(export, export_to = MODEL3D_TS_EXPORT_DIR)]
pub struct Model3dMultiviewToModelRequest {
pub inputs: Model3dMultiviewInputs,
#[ts(optional = nullable)]
pub model: Option<Model3dModelVersion>,
#[ts(type = "number | null")]
#[ts(optional = nullable)]
pub model_seed: Option<i64>,
#[ts(type = "number | null")]
#[ts(optional = nullable)]
pub texture_seed: Option<i64>,
#[ts(optional = nullable)]
pub texture: Option<bool>,
#[ts(optional = nullable)]
pub pbr: Option<bool>,
#[ts(optional = nullable)]
pub texture_quality: Option<Model3dTextureQuality>,
#[ts(optional = nullable)]
pub texture_version: Option<Model3dTextureVersion>,
#[ts(optional = nullable)]
pub delight: Option<bool>,
#[ts(optional = nullable)]
pub geometry_quality: Option<Model3dGeometryQuality>,
#[ts(optional = nullable)]
pub texture_alignment: Option<Model3dTextureAlignment>,
#[ts(type = "number | null")]
#[ts(optional = nullable)]
pub face_limit: Option<i64>,
#[ts(optional = nullable)]
pub auto_size: Option<bool>,
#[ts(optional = nullable)]
pub orientation: Option<Model3dInputOrientation>,
#[ts(optional = nullable)]
pub quad: Option<bool>,
#[ts(optional = nullable)]
pub smart_low_poly: Option<bool>,
#[ts(optional = nullable)]
pub generate_parts: Option<bool>,
#[ts(optional = nullable)]
pub compress: Option<Model3dCompression>,
#[ts(optional = nullable)]
pub export_uv: Option<bool>,
#[ts(optional = nullable)]
pub export_orientation: Option<Model3dExportOrientation>,
}
@@ -12,27 +12,46 @@ use crate::model3d::common::{
#[ts(export, export_to = MODEL3D_TS_EXPORT_DIR)]
pub struct Model3dTextToModelRequest {
pub prompt: String,
#[ts(optional = nullable)]
pub model: Option<Model3dModelVersion>,
#[ts(optional = nullable)]
pub negative_prompt: Option<String>,
#[ts(type = "number | null")]
#[ts(optional = nullable)]
pub image_seed: Option<i64>,
#[ts(type = "number | null")]
#[ts(optional = nullable)]
pub model_seed: Option<i64>,
#[ts(type = "number | null")]
#[ts(optional = nullable)]
pub texture_seed: Option<i64>,
#[ts(optional = nullable)]
pub texture: Option<bool>,
#[ts(optional = nullable)]
pub pbr: Option<bool>,
#[ts(optional = nullable)]
pub texture_quality: Option<Model3dTextureQuality>,
#[ts(optional = nullable)]
pub texture_version: Option<Model3dTextureVersion>,
#[ts(optional = nullable)]
pub delight: Option<bool>,
#[ts(optional = nullable)]
pub geometry_quality: Option<Model3dGeometryQuality>,
#[ts(type = "number | null")]
#[ts(optional = nullable)]
pub face_limit: Option<i64>,
#[ts(optional = nullable)]
pub auto_size: Option<bool>,
#[ts(optional = nullable)]
pub quad: Option<bool>,
#[ts(optional = nullable)]
pub smart_low_poly: Option<bool>,
#[ts(optional = nullable)]
pub generate_parts: Option<bool>,
#[ts(optional = nullable)]
pub compress: Option<Model3dCompression>,
#[ts(optional = nullable)]
pub export_uv: Option<bool>,
#[ts(optional = nullable)]
pub export_orientation: Option<Model3dExportOrientation>,
}