环境

使用日期:2026.3.23
OS:Windows10
引擎:Unity2021.3.45

接口文档

https://www.volcengine.com/docs/82379/1541523?lang=zh

示例-提示词生成图片

数据类

[System.Serializable]
public class RequestImage
{
    public string model;
    public string prompt;
    public List<string> image;
    public string size;
    public int seed;
    public bool watermark;
    public string output_format = "jpeg";
    public string response_format = "b64_json";
}

[System.Serializable]
public class ResponeImage
{
    public string model;
    public int integer;
    public List<ImageResult> data;
    public ImageError error;
}

[System.Serializable]
public class ImageResult
{
    public string url;
    public string b64_json;
    public string size;
}

[System.Serializable]
public class ImageError
{
    public string code;
    public string message;
}

请求并显示响应图片

必须参数:
api:https://ark.cn-beijing.volces.com/api/v3/images/generations
apikey:创建的key
model:doubao-seedream-5-0-260128
使用体验:生成速度较慢。
示例:
提示词:可爱小猫咪。
大概需要三十多秒。

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.Networking;

public class DoubaoImageApi : MonoBehaviour
{
    [SerializeField] string api;
    [SerializeField] string apiKey;

    [Header("模型")]
    [SerializeField] string model;

    [Header("提示词")]
    [SerializeField] string textToImagePrompt;

    [Header("保存图片")]
    [SerializeField] bool save;

    List<Texture2D> textures = new List<Texture2D>();
    bool requesting;
    float time = 0;

    void Awake()
    {
        requesting = true;
        time = 0;

        RequestImage requestImage = new RequestImage()
        {
            model = model,
            prompt = textToImagePrompt,
            size = "2K",
            seed = 1024,
            watermark = false,
        };
        var content = JsonUtility.ToJson(requestImage);
        Debug.Log(content);
        StartCoroutine(PostImage(api, content, (sucess, value) =>
        {
            requesting = false;
            Debug.Log((sucess, value));
            if (sucess)
            {
                var responeImage = JsonUtility.FromJson<ResponeImage>(value);
                if (responeImage != null && responeImage.data != null)
                {
                    foreach (var item in responeImage.data)
                    {
                        var data = Convert.FromBase64String(item.b64_json);
                        if (save)
                            File.WriteAllBytes(Guid.NewGuid() + ".jpeg", data);
                        var texture = new Texture2D(1, 1);
                        texture.LoadImage(data);
                        texture.Apply();
                        textures.Add(texture);
                    }

                }
            }
        }));
    }

    Vector2 move;
    void OnGUI()
    {
        if (requesting)
        {
            time += Time.deltaTime;
            GUILayout.Label("生成图片中:" + time);
        }
        GUILayout.Label("生成图片:");
        if (textures.Count > 0)
        {
            move = GUILayout.BeginScrollView(move);
            foreach (var item in textures)
            {
                GUILayout.Label(item);
            }
            GUILayout.EndScrollView();
        }
    }

    IEnumerator PostImage(string url, string jsonData, Action<bool, string> callback)
    {
        using (UnityWebRequest request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST))
        {
            byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonData);
            request.uploadHandler = new UploadHandlerRaw(bodyRaw);
            request.downloadHandler = new DownloadHandlerBuffer();
            request.SetRequestHeader("Content-Type", "application/json");
            request.SetRequestHeader("Authorization", "Bearer " + apiKey);

            yield return request.SendWebRequest();

            if (request.result == UnityWebRequest.Result.Success)
            {
                callback?.Invoke(true, request.downloadHandler.text);
            }
            else
            {
                Debug.LogError("请求失败:" + request.error);
                callback?.Invoke(false, request.downloadHandler.text);
            }
        }
    }
}
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐