I think you want some thing like this:
import puppy, webby/multipart
let req = newRequest("https://api.openai.com/v1/images/edits")
req.verb = "POST"
req.headers["Authorization"] = "Bearer " & readFile("OPENAI_API_KEY.txt")
var parts: seq[MultipartEntry]
parts.add(MultipartEntry(
name: "image",
fileName: "otter.png",
contentType: "image/png",
payload: readFile("otter.png")
))
parts.add(MultipartEntry(
name: "image",
fileName: "mask.png",
contentType: "image/png",
payload: readFile("mask.png")
))
parts.add(MultipartEntry(
name: "prompt",
payload: "A cute baby sea otter wearing a beret"
))
parts.add(MultipartEntry(
name: "n",
payload: "2"
))
parts.add(MultipartEntry(
name: "size",
payload: "1024x1024"
))
let (contentType, body) = encodeMultipart(parts)
req.headers["content-type"] = contentType
req.body = body
let res = req.fetch()
echo res.code
echo res.body
Run