Skip to content

Commit 769dcf9

Browse files
committed
Fix mask parameter for ImageEdit request
`mask` parameter should be file, also it can be nil
1 parent 3f5e195 commit 769dcf9

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

Sources/OpenAI/Private/Networking/MultipartFormDataBuilder.swift

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ struct MultipartFormDataBuilder {
3535

3636
enum MultipartFormDataEntry {
3737

38-
case file(paramName: String, fileName: String?, fileData: Data, contentType: String)
38+
case file(paramName: String, fileName: String?, fileData: Data?, contentType: String)
3939
case string(paramName: String, value: Any?)
4040
}
4141

@@ -47,15 +47,17 @@ extension MultipartFormDataEntry {
4747
var body = Data()
4848
switch self {
4949
case .file(let paramName, let fileName, let fileData, let contentType):
50-
body.append("--\(boundary)\r\n")
51-
if let fileName = fileName {
52-
body.append("Content-Disposition: form-data; name=\"\(paramName)\"; filename=\"\(fileName)\"\r\n")
53-
} else {
54-
body.append("Content-Disposition: form-data; name=\"\(paramName)\"\r\n")
50+
if let fileData {
51+
body.append("--\(boundary)\r\n")
52+
if let fileName = fileName {
53+
body.append("Content-Disposition: form-data; name=\"\(paramName)\"; filename=\"\(fileName)\"\r\n")
54+
} else {
55+
body.append("Content-Disposition: form-data; name=\"\(paramName)\"\r\n")
56+
}
57+
body.append("Content-Type: \(contentType)\r\n\r\n")
58+
body.append(fileData)
59+
body.append("\r\n")
5560
}
56-
body.append("Content-Type: \(contentType)\r\n\r\n")
57-
body.append(fileData)
58-
body.append("\r\n")
5961
case .string(let paramName, let value):
6062
if let value {
6163
body.append("--\(boundary)\r\n")

Sources/OpenAI/Public/Parameters/Image/ImageEditParameters.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public struct ImageEditParameters: Encodable {
7171
if imageData == nil {
7272
assertionFailure("Failed to get image data")
7373
}
74-
if maskData == nil {
74+
if mask != nil, maskData == nil {
7575
assertionFailure("Failed to get mask data")
7676
}
7777

@@ -94,7 +94,7 @@ extension ImageEditParameters: MultipartFormDataParameters {
9494
MultipartFormDataBuilder(boundary: boundary, entries: [
9595
.file(paramName: Self.CodingKeys.image.rawValue, fileName: "", fileData: image, contentType: "image/png"),
9696
.string(paramName: Self.CodingKeys.prompt.rawValue, value: prompt),
97-
.string(paramName: Self.CodingKeys.mask.rawValue, value: mask),
97+
.file(paramName: Self.CodingKeys.mask.rawValue, fileName: "mask.png", fileData: mask, contentType: "image/png"),
9898
.string(paramName: Self.CodingKeys.model.rawValue, value: model),
9999
.string(paramName: Self.CodingKeys.n.rawValue, value: n),
100100
.string(paramName: Self.CodingKeys.size.rawValue, value: size),

0 commit comments

Comments
 (0)