人像动漫化

Posted yangbocsu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人像动漫化相关的知识,希望对你有一定的参考价值。

一、生成二次元动漫图

import requests
import base64

# 获取 访问秘钥
# client_id     去官网获取的AK,       
# client_secret 去官网获取的SK        
def access_token():
    AK = ' '  # client_id     去官网获取的AK,  
    SK = ' '  # client_secret 去官网获取的SK   
    host = '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(),'\\n\\n')
        access_token = response.json()
        return access_token['access_token']

# 人像动漫化
def portraitAnimation(token,imgUrl):
    f = open(imgUrl, 'rb')              #二进制方式打开图片文件
    img = base64.b64encode(f.read())    #图片 base64 编码
    params = "image": img
    access_token = token
    request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
    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:
        ima = response.json()
        data = base64.b64decode(ima['image']) #base64 解码
        # 生成图片
        file = open("p2.png", "wb")
        file.write(data)
        print('人像动漫化 生成完毕!')


# 人像动漫化
# 运用对抗生成网络技术,结合人脸检测、头发分割、人像分割等技术,为用户量身定制千人千面的二次元动漫形象,
# 并支持通过参数设置,生成戴口罩的二次元动漫人像
# 人像动漫化:需要处理的图片base64编码后大小不超过4M,最短边至少64px,最长边最大4096px,长宽比3:1以内
if __name__ == '__main__':
    accessToken = access_token()
    imgUrl = "C:\\\\Users\\\\97942\\\\PycharmProjects\\\\Comic\\\\周深.png"  # 图片的绝对路径
    portraitAnimation(accessToken,imgUrl)



二、生成戴口罩的二次元动漫人像

import requests
import base64

# 获取 访问秘钥
# client_id     去官网获取的AK,       
# client_secret 去官网获取的SK   
def access_token():
    AK = ' '  # client_id     去官网获取的AK,  
    SK = ' '  # client_secret 去官网获取的SK   
    host = '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(),'\\n\\n')
        access_token = response.json()
        return access_token['access_token']

# 人像动漫化
def portraitAnimation(token,imgUrl):
    f = open(imgUrl, 'rb')              #二进制方式打开图片文件
    img = base64.b64encode(f.read())    #图片 base64 编码
    
    # 1~8之间的整数,用于指定所使用的口罩的类型 
    params = "image": img,"type":'anime_mask',"mask_id":"2"
    
    access_token = token
    request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
    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:
        ima = response.json()
        data = base64.b64decode(ima['image']) #base64 解码
        # 生成图片
        file = open("p2.png", "wb")
        file.write(data)
        print('人像动漫化 生成完毕!')


# 人像动漫化
# 运用对抗生成网络技术,结合人脸检测、头发分割、人像分割等技术,为用户量身定制千人千面的二次元动漫形象,
# 并支持通过参数设置,生成戴口罩的二次元动漫人像
# 人像动漫化:需要处理的图片base64编码后大小不超过4M,最短边至少64px,最长边最大4096px,长宽比3:1以内
if __name__ == '__main__':
    accessToken = access_token()
    imgUrl = "C:\\\\Users\\\\97942\\\\PycharmProjects\\\\Comic\\\\p1.png"  # 图片的绝对路径
    portraitAnimation(accessToken,imgUrl)



以上是关于人像动漫化的主要内容,如果未能解决你的问题,请参考以下文章

头像总撞脸,如何定制化头像?几行Python代码实现人像动漫化

调用百度API实现人像动漫化(C++)

调用百度API实现人像动漫化(C++)

周三直播 | PaddleGAN又开金手指,零门槛人像转卡通

明晚直播丨PaddleGAN又开金手指,零门槛人像转卡通

程序员独特的浪漫:拿女朋友的照片做成动漫人物当头像