unity 接入百度API——AI作画

打印 上一主题 下一主题

主题 533|帖子 533|积分 1599

完整代码下载地址:https://download.csdn.net/download/weixin_43703390/89179785 打不开就是还在审核中…
账号注册创建模块:

1.打开百度智能云官网:[https://cloud.baidu.com/?from=console],在【产物】中找到【语言与知识】下的【AI作画】

2.打开界面后点击【立即使用】,然后创建应用,得到API Key和Secret Key

3.点击左侧【API在线调试】选择对应的版本

6.假如调试乐成的画,就可在unity项目中开始使用了
代码模块

代码步骤1:起首根据API Key和Secret Key获取token
  1. private string API_KEY = "111111"; // 替换为你的API Key  
  2. private string SECRET_KEY = "2222222"; // 替换为你的Secret Key  
  3. public string m_Token = string.Empty;
  4. IEnumerator GetToken()
  5. {
  6.      //获取token的api地址
  7.      string _token_url = string.Format("https://aip.baidubce.com/oauth/2.0/token" + "?client_id={0}&client_secret={1}&grant_type=client_credentials"
  8.          , API_KEY, SECRET_KEY);
  9.      using (UnityWebRequest request = new UnityWebRequest(_token_url, "GET"))
  10.      {
  11.          request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
  12.          yield return request.SendWebRequest();
  13.          if (request.isDone)
  14.          {
  15.              string _msg = request.downloadHandler.text;
  16.              TokenInfo _textback = JsonUtility.FromJson<TokenInfo>(_msg);
  17.              m_Token = _textback.access_token;
  18.          }
  19.      }
  20. }
  21. /// <summary>
  22. /// 返回的token
  23. /// </summary>
  24. [System.Serializable]
  25. public class TokenInfo
  26. {
  27.      public string access_token = string.Empty;
  28. }
复制代码
代码步骤2:使用网络上传图片生成形貌数据
  1. TaskData taskData=new TaskData();
  2. string url = $"https://aip.baidubce.com/rpc/2.0/ernievilg/v1/txt2img?access_token={m_Token}";
  3. Dictionary<string, object> dic = new Dictionary<string, object>();
  4. dic.Add("text", "图片描述");
  5. dic.Add("resolution", "1024*1024");//图片尺寸
  6. dic.Add("style", "二次元");//图片风格
  7. dic.Add("num", 1);//生成数量
  8. using (UnityWebRequest www = UnityWebRequest.Post(url, "")) {
  9.     www.SetRequestHeader("Content-Type", "application/json");
  10.     byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(dic));
  11.     www.uploadHandler = new UploadHandlerRaw(bodyRaw);
  12.     www.downloadHandler = new DownloadHandlerBuffer();
  13.     yield return www.SendWebRequest();
  14.     if (www.result == UnityWebRequest.Result.Success)
  15.     {
  16.         Debug.Log("结果1:"+ www.downloadHandler.text);
  17.     }
  18.     else
  19.     {
  20.         Debug.Log("结果2:" + www.error);
  21.     }
  22. }
复制代码
代码步骤3:百度服务器图片生成之后,获取图片的信息
  1. RootObject rootObject = new RootObject();
  2. string urls = $"https://aip.baidubce.com/rpc/2.0/ernievilg/v1/getImg?access_token={m_Token}";
  3. using (UnityWebRequest www = UnityWebRequest.Post(urls, ""))
  4. {
  5.     www.SetRequestHeader("Content-Type", "application/json");
  6.     Dictionary<string, object> dica = new Dictionary<string, object>();
  7.     dica.Add("taskId", "返回的任务ID");
  8.     byte[] bodyRaw = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(dica));
  9.     www.uploadHandler = new UploadHandlerRaw(bodyRaw);
  10.     www.downloadHandler = new DownloadHandlerBuffer();
  11.     yield return www.SendWebRequest();
  12.     if (www.result == UnityWebRequest.Result.Success)
  13.     {
  14.         Debug.Log("结果2:" + www.downloadHandler.text);
  15.     }
  16.     else
  17.     {
  18.         Debug.Log("结果2:" + www.error);
  19.     }
  20. }
复制代码
代码步骤4:根据返复书息中的网址下载图片 返复书息中的【status】0或1。"1"表现已生成完成,"0"表现任务列队中或正在处置处罚.
  1. using (UnityWebRequest www = UnityWebRequestTexture.GetTexture(rootObject.data.img)) {
  2.     yield return www.SendWebRequest();
  3.     if (www.result == UnityWebRequest.Result.Success)
  4.     {
  5.         // 成功下载图片
  6.         Texture2D texture = DownloadHandlerTexture.GetContent(www);
  7.         if (texture != null)
  8.         {
  9.             // 获取成功
  10.             Debug.log("获取成功");
  11.         }
  12.     }
  13.     else
  14.     {
  15.         // 下载失败
  16.         Debug.LogError("Failed to download image: " + www.error);
  17.     }
  18. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

温锦文欧普厨电及净水器总代理

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表