元宇宙从哪里入手,元宇宙特效制作

  

  

1 概念介绍

  

  

  人像动漫化   

  

  利用对抗生成网络技术,结合人脸检测、毛发分割、人像分割等技术,为用户量身定制千人千面的二维卡通形象,支持通过设置参数生成带面具的二维卡通人像。   

  

  

2 效果展示

  

  

  官方展示的效果~   

  

  元宇宙第一个AI漫画头像,在线就能制作了   

  

  我制作的效果~   

  

  元宇宙第一个AI漫画头像,在线就能制作了   

  

  是不是很生动?   

  

  还有更神奇的!   

  

  元宇宙第一个AI漫画头像,在线就能制作了   

  

  猫变透明了!   

  

  

3 使用方法

  

  

  3.1 注册账户   

  

  打开百度开发平台,直接注册账号。   

  

  3.2 免费额度   

  

  所有的API都会给一定的闲钱,大家可以放心尝试~   

  

  3.3 创建应用   

  

  进入控制台创建应用程序,选择产品和服务-图像增强和特效。   

  

  元宇宙第一个AI漫画头像,在线就能制作了   

  

  3.4 领取免费资源   

  

  元宇宙第一个AI漫画头像,在线就能制作了   

  

  采集成功后,剩余次数会显示在圆圈指示的区域~   

  

  3.5 创建应用   

  

  点击创建应用,填写应用名称(任意),选择所需界面(如图像增强和特效-人像动画),选择应用为个人。   

,随便写一下应用描述

元宇宙第一个AI漫画头像,在线就能制作了

***

3.6 获取key

点击左侧应用列表,查看、保存API Key和Secret Key,后面会用到

元宇宙第一个AI漫画头像,在线就能制作了

3.7 调用接口

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/image-process/v1/style_trans

URL参数:


元宇宙第一个AI漫画头像,在线就能制作了

Header如下:


元宇宙第一个AI漫画头像,在线就能制作了

Body中放置请求参数,参数详情如下:

请求参数


元宇宙第一个AI漫画头像,在线就能制作了


3.8 在线调试API

大家可以进入在线调试接口,嫌麻烦的也可以跳过这一步,直接通过代码调试

3.9 python调用

官方给出的代码如下:

# encoding:utf-8import requestsimport base64'''人像动漫化'''request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"# 二进制方式打开图片文件f = open('[本地文件]', 'rb')img = base64.b64encode(f.read())params = {"image":img}access_token = '[调用鉴权接口获取的token]'request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}response = requests.post(request_url, data=params, headers=headers)if response:    print (response.json())


我们对其稍作修改

# encoding:utf-8import requestsimport base64def image_process(img_name,client_id,client_secret):    request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"    # 二进制方式打开图片文件    f = open(img_name, 'rb')    img = base64.b64encode(f.read())    params = {"image":img}    access_token = get_token(client_id,client_secret)    request_url = request_url + "?access_token=" + access_token    headers = {'content-type': 'application/x-www-form-urlencoded'}    response = requests.post(request_url, data=params, headers=headers)    if response:        print (response.json())    return response.json()['image']


3.10 获取token

官方给出的token获取方式:

# encoding:utf-8import requests # client_id 为官网获取的AK, client_secret 为官网获取的SKhost = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'response = requests.get(host)if response:    print(response.json())


我们对其稍作修改

def get_token(client_id,client_secret):    # client_id 为官网获取的AK, client_secret 为官网获取的SK    host = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}'    response = requests.get(host)    if response:        print(response.json())        return response.json()['access_token']    else:        print('no response!')

然后,运行代码就可以获取处理后图片的base64编码啦~

# client_id 为官网获取的AK, client_secret 为官网获取的SKclient_id='xxx'client_secret='xxx'img_name='img_name.jpg'img_base64=image_process(img_name,client_id,client_secret)print(img_base64)

可以发现,官方已经给出了很详细的代码模板,我们真正需要改的部分也就只有

client_id='xxx'client_secret='xxx'

两行而已~

3.11 查看图片

获取到编码后,可以在浏览器输入data:image/jpeg;[你的base64编码,注意需要去掉中括号]查看图片

或者使用下面的代码将base64编码转换成图片

def base2picture(img_base64,img_save):    imgdata = base64.b64decode(img_base64)    with open(img_save,'wb') as f:        f.write(imgdata)
img_save='img_save.jpg'base2picture(img_base64,img_save)

4 完整代码

# encoding:utf-8import requestsimport base64def image_process(img_name,client_id,client_secret):    request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"    # 二进制方式打开图片文件    f = open(img_name, 'rb')    img = base64.b64encode(f.read())    params = {"image":img}    access_token = get_token(client_id,client_secret)    request_url = request_url + "?access_token=" + access_token    headers = {'content-type': 'application/x-www-form-urlencoded'}    response = requests.post(request_url, data=params, headers=headers)    if response:        print (response.json())    return response.json()['image']def get_token(client_id,client_secret):    # client_id 为官网获取的AK, client_secret 为官网获取的SK    host = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}'    response = requests.get(host)    if response:        print(response.json())        return response.json()['access_token']    else:        print('no response!')def base2picture(img_base64,img_save):    imgdata = base64.b64decode(img_base64)    with open(img_save,'wb') as f:        f.write(imgdata)if __name__=='__main__':    client_id='xxx'    client_secret='xxx'    img_name='1.jpg'    img_base64=image_process(img_name,client_id,client_secret)    print(img_base64)    # 或者在浏览器输入 data:image/jpeg;[base64]    img_save='2.jpg'    base2picture(img_base64,img_save)

大家都学会了吗?

快去试试吧~

相关文章