如何使用Dall文本到图像API的image和mask参数在统一C#中?
对于背景,下面类似于其他参数,如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“编辑”或“变体”时,按照Dall-E文件,它将返回一个API错误,建议切换到内容类型“多部分/表单数据”。如何使用这一点,并为image或mask添加二进制数据,为png提供一些byte[]?谢谢!
发布于 2022-11-07 11:11:40
采用UnityWebRequest.Post ->重载的List将自动使用此内容类型的标题,在那里您可以提供MultipartFormFileSection和MultipartFormDataSection部分。
不幸的是,这个例子是无用的,但是它可能看起来有点像。
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("Form upload complete!");
}
}https://stackoverflow.com/questions/74345615
复制相似问题