diff --git a/docs/sample-provider-configs/openai-o1.yml b/docs/sample-provider-configs/openai-o1.yml index fb9be99..3473937 100644 --- a/docs/sample-provider-configs/openai-o1.yml +++ b/docs/sample-provider-configs/openai-o1.yml @@ -20,5 +20,5 @@ text_to_speech: image_generation: model_id: gpt-image-1 style: null - size: 1024x1024 + size: null quality: null diff --git a/docs/sample-provider-configs/openai.yml b/docs/sample-provider-configs/openai.yml index e61030b..73365fc 100644 --- a/docs/sample-provider-configs/openai.yml +++ b/docs/sample-provider-configs/openai.yml @@ -16,5 +16,5 @@ text_to_speech: image_generation: model_id: gpt-image-1 style: null - size: 1024x1024 + size: null quality: null diff --git a/etc/app/config.yml.dist b/etc/app/config.yml.dist index 1be6e28..6046aad 100644 --- a/etc/app/config.yml.dist +++ b/etc/app/config.yml.dist @@ -93,7 +93,7 @@ agents: # image_generation: # model_id: gpt-image-1 # style: null - # size: 1024x1024 + # size: null # quality: null # # - id: localai diff --git a/src/agent/provider/openai/config.rs b/src/agent/provider/openai/config.rs index 6feaad9..2b00f32 100644 --- a/src/agent/provider/openai/config.rs +++ b/src/agent/provider/openai/config.rs @@ -153,7 +153,7 @@ pub struct ImageGenerationConfig { pub style: Option, #[serde(default = "default_image_size")] - pub size: async_openai::types::ImageSize, + pub size: Option, #[serde(default = "default_image_quality")] pub quality: Option, @@ -186,8 +186,8 @@ fn default_image_style() -> Option { None } -fn default_image_size() -> async_openai::types::ImageSize { - async_openai::types::ImageSize::S1024x1024 +fn default_image_size() -> Option { + None } fn default_image_quality() -> Option { diff --git a/src/agent/provider/openai/controller.rs b/src/agent/provider/openai/controller.rs index d6676e9..bd6ee86 100644 --- a/src/agent/provider/openai/controller.rs +++ b/src/agent/provider/openai/controller.rs @@ -284,11 +284,8 @@ impl ControllerTrait for Controller { let size = params .size_override - .map(|s| { - convert_string_to_enum::(&s) - .unwrap_or(image_generation_config.size) - }) - .unwrap_or(image_generation_config.size); + .map(|s| convert_string_to_enum::(&s).unwrap()) + .or(image_generation_config.size); let response_format = match model.clone() { ImageModel::DallE2 => Some(ImageResponseFormat::B64Json), @@ -303,10 +300,7 @@ impl ControllerTrait for Controller { let mut request_builder = CreateImageRequestArgs::default(); - request_builder - .model(model) - .prompt(prompt.to_owned()) - .size(size); + request_builder.model(model).prompt(prompt.to_owned()); if let Some(response_format) = response_format { request_builder.response_format(response_format); @@ -320,6 +314,10 @@ impl ControllerTrait for Controller { request_builder.quality(quality.clone()); } + if let Some(size) = size { + request_builder.size(size); + } + let request = request_builder.build()?; tracing::trace!( @@ -382,9 +380,9 @@ impl ControllerTrait for Controller { } let dalle2_size = match image_generation_config.size { - async_openai::types::ImageSize::S256x256 => Some(DallE2ImageSize::S256x256), - async_openai::types::ImageSize::S512x512 => Some(DallE2ImageSize::S512x512), - async_openai::types::ImageSize::S1024x1024 => Some(DallE2ImageSize::S1024x1024), + Some(async_openai::types::ImageSize::S256x256) => Some(DallE2ImageSize::S256x256), + Some(async_openai::types::ImageSize::S512x512) => Some(DallE2ImageSize::S512x512), + Some(async_openai::types::ImageSize::S1024x1024) => Some(DallE2ImageSize::S1024x1024), _ => None, }; diff --git a/src/agent/provider/openai_compat/config.rs b/src/agent/provider/openai_compat/config.rs index ee2ab60..e4ed370 100644 --- a/src/agent/provider/openai_compat/config.rs +++ b/src/agent/provider/openai_compat/config.rs @@ -224,9 +224,11 @@ impl TryInto for ImageGenerationConfig { fn try_into(self) -> Result { let size = if let Some(size) = &self.size { - convert_string_to_enum::(size)? + Some(convert_string_to_enum::( + size, + )?) } else { - async_openai::types::ImageSize::S1024x1024 + None }; let style = if let Some(style) = &self.style {