Unity 如何在使用图像参数时连接到 Dall-E API?

如何在 Unity C# 中使用 Dall-E 文本转图像 API 的 imagemask 参数?

背景信息如下,使用其他参数如 prompt 的方式是可行的(完整代码见 GitHub):

string apiMode = "generations";string apiUrl = "https://api.openai.com/v1/images/" + apiMode;UnityWebRequest www = UnityWebRequest.Post(apiUrl, "");www.SetRequestHeader("Content-Type", "application/json");www.SetRequestHeader("Authorization", "Bearer " + key);string jsonString = JsonConvert.SerializeObject(aiParams, Formatting.None, serializerSettings);www.uploadHandler = new UploadHandlerRaw(System.Text.Encoding.UTF8.GetBytes(jsonString));www.downloadHandler = new DownloadHandlerBuffer();yield return www.SendWebRequest();

然而,当使用 apiMode 为 “edits” 或 “variations” 时,根据 Dall-E 的文档,会返回一个 API 错误,建议切换到 “multipart/form-data” 内容类型。如何使用这种类型并添加 imagemask 的二进制数据,假设我们有一个 png 文件的 byte[]?谢谢!


回答:

UnityWebRequest.Post -> 接受 List<IMultipartFormSection> 的重载会自动使用此内容类型头,并且您可以提供 MultipartFormFileSectionMultipartFormDataSection 部分。

示例虽然无用,但可能会看起来像这样,例如:

 var jsonString = JsonConvert.SerializeObject(aiParams, Formatting.None, serializerSettings); var jsonBytes = Encoding.UTF8.GetBytes(jsonString); var formParts = new List<IMultipartFormSection>(); formParts.Add(new MultipartFormDataSection("data", jsonBytes, "application/json")); formParts.Add(new MultipartFormFileSection("image", yourFileContentBytes, "YourFileName.png", "image/png")); using (UnityWebRequest www = UnityWebRequest.Post("https://www.my-server.com/myform", formParts)) {     www.SetRequestHeader("Authorization", "Bearer " + key);     yield return www.SendWebRequest();     if (www.result != UnityWebRequest.Result.Success)     {         Debug.Log(www.error);     }     else     {         Debug.Log("表单上传完成!");     } }

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注