Unity 接入百度AI - 人像动漫化

简介: Unity 接入百度AI - 人像动漫化

接口介绍:

运用对抗生成网络技术,结合人脸检测、头发分割、人像分割等技术,为用户量身定制千人千面的二次元动漫形象,并支持通过参数设置,生成二次元动漫人像。

创建应用:    

在产品服务中搜索图像增强与特效,创建应用,获取AppID、APIKey、SecretKey信息:

image.gif


image.gif

查阅官方文档,以下是人像动漫画接口返回数据参数详情:

image.gif

定义数据结构:

usingSystem;
/// <summary>/// 人像动漫化接口响应数据结构/// </summary>[Serializable]
publicclassAnimeResponse{
/// <summary>/// 唯一的log id,用于问题定位/// </summary>publicintlog_id;
/// <summary>/// 处理后图片的Base64编码/// </summary>publicstringimage;
}

image.gif

下载C# SDK:

image.gif

下载完成后将AipSdk.dll动态库导入到Unity中:

image.gif

以下是调用接口时传入的参数详情:

image.gif

封装调用函数:

usingSystem;
usingSystem.Collections.Generic;
usingUnityEngine;
/// <summary>/// 人像动漫化/// </summary>publicclassAnime{
//以下信息于百度开发者中心控制台创建应用获取privateconststringappID="";
privateconststringapiKey="";
privateconststringsecretKey="";
/// <summary>/// 发起人像动漫画请求/// </summary>/// <param name="bytes">图片字节数据</param>/// <param name="withMask">是否带口罩</param>/// <param name="maskID">口罩ID 取值范围1-8</param>/// <returns>返回的动漫画图片字节数据</returns>publicstaticbyte[] SendRequest(byte[] bytes, boolwithMask=false, intmaskID=1)
    {
varclient=newBaidu.Aip.ImageProcess.ImageProcess(apiKey, secretKey);
try        {
varoptions=newDictionary<string, object>            {
                { "type", withMask?"anime_mask" : "anime" },
                { "mask_id", Mathf.Clamp(maskID, 1, 8) }
            };
varresponse=client.SelfieAnime(bytes, options);
AnimeResponseanimeResponse=JsonUtility.FromJson<AnimeResponse>(response.ToString());
byte[] buffer=Convert.FromBase64String(animeResponse.image);
returnbuffer;
        }
catch(Exceptionerror)
        {
Debug.LogError(error);
        }
returnnull;
    }
/// <summary>/// 发起人像动漫画请求/// </summary>/// <param name="url">图片url地址</param>/// <param name="withMask">是否带口罩</param>/// <param name="maskID">口罩ID 取值范围1-8</param>/// <returns>返回的动漫画图片字节数据</returns>publicstaticbyte[] SendRequest(stringurl, boolwithMask=false, intmaskID=1)
    {
varclient=newBaidu.Aip.ImageProcess.ImageProcess(apiKey, secretKey);
try        {
varoptions=newDictionary<string, object>            {
                { "type", withMask?"anime_mask" : "anime" },
                { "mask_id", Mathf.Clamp(maskID, 1, 8) }
            };
varresponse=client.SelfieAnimeUrl(url, options);
AnimeResponseanimeResponse=JsonUtility.FromJson<AnimeResponse>(response.ToString());
byte[] buffer=Convert.FromBase64String(animeResponse.image);
returnbuffer;
        }
catch (Exceptionerror)
        {
Debug.LogError(error);
        }
returnnull;
    }
}

image.gif

测试图片:

image.gif

usingSystem.IO;
usingUnityEngine;
publicclassExample : MonoBehaviour{
privatevoidStart()
    {
//读取图片字节数据 发起请求varbytes=Anime.SendRequest(File.ReadAllBytes(Application.dataPath+"/Picture.jpg"));
//根据返回的字节数据生成图片File.WriteAllBytes(Application.dataPath+"/Test.png", bytes);
    }
}

image.gif

下面是生成的图片:

image.gif

目录
相关文章
|
8天前
|
人工智能 自动驾驶 安全
破壁人AI百度:科技公司反内卷的典型样本
互联网整个行业都在陷入被动且尴尬的局面。去年开始流行的“内卷”一词,恰如其分的描述了互联网的现状,比如抖音开始做外卖,微信强推视频号,一直硝烟弥漫的电商市场,更是激战在社区团购上。
21 3
|
18天前
|
人工智能 自动驾驶 安全
破壁人AI百度:科技公司反内卷的典型样本
破壁人AI百度:科技公司反内卷的典型样本
24 0
|
2月前
|
人工智能
破壁人AI百度:科技公司反内卷的典型样本
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返回队列开头的元素 boolean empty() 如果队列为空,返回 true ;否则,返回 false class MyQueue: def __init__(self): self.stack_in=[] self.stack_out=[] def push(
13 3
|
2月前
|
人工智能
推荐一个非常好玩的 AI 工具Gifshift!让 GIF 动图一键转换成动漫风格,玩梗更有趣!
推荐一个非常好玩的 AI 工具Gifshift!让 GIF 动图一键转换成动漫风格,玩梗更有趣!
230 1
|
2月前
|
人工智能 编解码 数据安全/隐私保护
才发现百度自带的AI图片助手这么好用,去水印、画质优化、AI扩图、涂抹消除等功能一应俱全!
才发现百度自带的AI图片助手这么好用,去水印、画质优化、AI扩图、涂抹消除等功能一应俱全!
239 0
|
2月前
|
人工智能 自动驾驶 安全
破壁人AI百度:科技公司反内卷的典型样本
破壁人AI百度:科技公司反内卷的典型样本
15 0
|
2月前
|
人工智能 自动驾驶 安全
破壁人AI百度:科技公司反内卷的典型样本
简介: 互联网整个行业都在陷入被动且尴尬的局面。去年开始流行的“内卷”一词,恰如其分的描述了互联网的现状,比如抖音开始做外卖,微信强推视频号,一直硝烟弥漫的电商市场,更是激战在社区团购上。内卷背后也有人感慨,互联网到了尽头。支撑这一论述的是,移动互联网的人口红利已经消失,几款国民型APP用户增长都固定在了10亿这个级别,只能依靠自然人口的增长和迁移。
破壁人AI百度:科技公司反内卷的典型样本
|
4月前
|
人工智能 自然语言处理 Python
Scrapy框架 -- 结合百度AI实现文本处理
Scrapy框架 -- 结合百度AI实现文本处理
19 0
|
4月前
|
人工智能 自动驾驶 安全
破壁人AI百度:科技公司反内卷的典型样本
互联网整个行业都在陷入被动且尴尬的局面。去年开始流行的“内卷”一词,恰如其分的描述了互联网的现状,比如抖音开始做外卖,微信强推视频号,一直硝烟弥漫的电商市场,更是激战在社区团购上。
|
5月前
|
人工智能 自动驾驶 安全
破壁人AI百度:科技公司反内卷的典型样本
破壁人AI百度:科技公司反内卷的典型样本