WIP: UI编辑器自动分图层切图标 #304
@@ -5,3 +5,8 @@ pub const VECTOR_ENGINE_GPT_IMAGE_2_MODEL: &str = GPT_IMAGE_2_MODEL;
|
||||
pub const VECTOR_ENGINE_PROVIDER: &str = "vector-engine";
|
||||
pub const VECTOR_ENGINE_IMAGE_EDIT_MAX_REFERENCE_IMAGES: usize = 5;
|
||||
pub const VECTOR_ENGINE_NANOBANANA_MAX_REFERENCE_IMAGES: usize = 14;
|
||||
|
||||
pub(crate) const GPT_IMAGE_2_MIN_PIXELS: u64 = 655_360;
|
||||
pub(crate) const GPT_IMAGE_2_MAX_PIXELS: u64 = 8_294_400;
|
||||
pub(crate) const GPT_IMAGE_2_MAX_EDGE: u32 = 3_840;
|
||||
pub(crate) const GPT_IMAGE_2_DIMENSION_ALIGNMENT: u32 = 16;
|
||||
|
||||
@@ -7,7 +7,10 @@ use serde_json::Value;
|
||||
use super::{
|
||||
audit::build_failure_audit,
|
||||
budget::{effective_request_timeout_ms, request_budget_exhausted_error},
|
||||
constants::{GPT_IMAGE_2_MODEL, VECTOR_ENGINE_PROVIDER},
|
||||
constants::{
|
||||
GPT_IMAGE_2_DIMENSION_ALIGNMENT, GPT_IMAGE_2_MAX_EDGE, GPT_IMAGE_2_MAX_PIXELS,
|
||||
GPT_IMAGE_2_MIN_PIXELS, GPT_IMAGE_2_MODEL, VECTOR_ENGINE_PROVIDER,
|
||||
},
|
||||
error::PlatformImageError,
|
||||
request::vector_engine_images_edit_url,
|
||||
types::{DownloadedImage, GeneratedImages, ReferenceImage, VectorEngineImageSettings},
|
||||
@@ -24,10 +27,10 @@ pub struct RawImageEditOptions {
|
||||
pub mask: Option<ReferenceImage>,
|
||||
}
|
||||
|
||||
pub const RAW_IMAGE_MAX_EDGE: u32 = 3_840;
|
||||
pub const RAW_IMAGE_DIMENSION_ALIGNMENT: u32 = 16;
|
||||
pub const RAW_IMAGE_MIN_PIXELS: u64 = 655_360;
|
||||
pub const RAW_IMAGE_MAX_PIXELS: u64 = 8_294_400;
|
||||
pub const RAW_IMAGE_MAX_EDGE: u32 = GPT_IMAGE_2_MAX_EDGE;
|
||||
pub const RAW_IMAGE_DIMENSION_ALIGNMENT: u32 = GPT_IMAGE_2_DIMENSION_ALIGNMENT;
|
||||
pub const RAW_IMAGE_MIN_PIXELS: u64 = GPT_IMAGE_2_MIN_PIXELS;
|
||||
pub const RAW_IMAGE_MAX_PIXELS: u64 = GPT_IMAGE_2_MAX_PIXELS;
|
||||
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub enum RawImageEditDimensionError {
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
use serde_json::{Map, Value, json};
|
||||
|
||||
use super::{
|
||||
constants::{GPT_IMAGE_2_C_MODEL, GPT_IMAGE_2_MODEL},
|
||||
constants::{
|
||||
GPT_IMAGE_2_C_MODEL, GPT_IMAGE_2_DIMENSION_ALIGNMENT, GPT_IMAGE_2_MAX_EDGE,
|
||||
GPT_IMAGE_2_MAX_PIXELS, GPT_IMAGE_2_MIN_PIXELS, GPT_IMAGE_2_MODEL,
|
||||
},
|
||||
types::{ReferenceImage, VectorEngineImageSettings},
|
||||
};
|
||||
|
||||
@@ -129,10 +132,10 @@ fn normalize_explicit_pixel_size(value: &str) -> String {
|
||||
}
|
||||
|
||||
fn clamp_gpt_image_2_pixel_size(size: &str) -> String {
|
||||
const MIN_PIXELS: u64 = 655_360;
|
||||
const MAX_PIXELS: u64 = 8_294_400;
|
||||
const MAX_EDGE: u32 = 3_840;
|
||||
const DIMENSION_ALIGNMENT: u32 = 16;
|
||||
const MIN_PIXELS: u64 = GPT_IMAGE_2_MIN_PIXELS;
|
||||
const MAX_PIXELS: u64 = GPT_IMAGE_2_MAX_PIXELS;
|
||||
const MAX_EDGE: u32 = GPT_IMAGE_2_MAX_EDGE;
|
||||
const DIMENSION_ALIGNMENT: u32 = GPT_IMAGE_2_DIMENSION_ALIGNMENT;
|
||||
const MAX_ASPECT_RATIO: f64 = 3.0;
|
||||
|
||||
// 中文注释:这里是 VectorEngine 的共享发送边界,只处理 gpt-image-2 的显式像素尺寸。
|
||||
|
||||
Reference in New Issue
Block a user