diff --git a/async-openai/src/types/image.rs b/async-openai/src/types/image.rs index 86169c46..708b2a8e 100644 --- a/async-openai/src/types/image.rs +++ b/async-openai/src/types/image.rs @@ -146,7 +146,7 @@ pub struct ImageInput { #[builder(build_fn(error = "OpenAIError"))] pub struct CreateImageEditRequest { /// The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask is not provided, image must have transparency, which will be used as the mask. - pub image: ImageInput, + pub image: Vec, /// A text description of the desired image(s). The maximum length is 1000 characters. pub prompt: String, diff --git a/async-openai/src/types/impls.rs b/async-openai/src/types/impls.rs index cc11c0bf..0dc9e926 100644 --- a/async-openai/src/types/impls.rs +++ b/async-openai/src/types/impls.rs @@ -893,12 +893,14 @@ impl AsyncTryFrom for reqwest::multipart::Form { type Error = OpenAIError; async fn try_from(request: CreateImageEditRequest) -> Result { - let image_part = create_file_part(request.image.source).await?; - let mut form = reqwest::multipart::Form::new() - .part("image", image_part) .text("prompt", request.prompt); + for image in request.image { + let image_part = create_file_part(image.source).await?; + form = form.part("image[]", image_part); + } + if let Some(mask) = request.mask { let mask_part = create_file_part(mask.source).await?; form = form.part("mask", mask_part);