阿里云人物动漫化工具

简介

使用阿里云人物动漫化制作自己的专属头像-

  • 支持风格:日漫、3D、手绘、铅笔画、艺术特效等风格。

官方文档- 收费标准 : 

人脸人体如何计费_视觉智能开放平台-阿里云帮助中心

效果展示:

  • 原图:

  • 日漫风效果图:

  • 3D特效效果图:

  • 手绘风效果图:

  • 铅笔画效果图:

  • 艺术特效效果图:

 操作步骤 :

官网 : 阿里云-计算,为了无法计算的价值

1. 注册阿里云账号

2. 登录阿里云页面搜索 : 人物动漫化

1.开通人脸人体服务:

1.1. 点击人物动漫化文档 --> 接入指引  -->  开通人脸人体服务

1.2. 开通成功 --> 控制台

1.3. 购买人物动漫化

2. 实名认证(已实名可忽略)

3.RAM授权

3.1 创建AccessKey

3.2 RAM授权

3.3 创建RAM用户 --> 新增授权

授权 --> 新增授权 --> 授权主体 --> 权限名称 --> 确定

权限名称 :  AliyunVIAPIFullAccess

授权主体 :  创建好的RAM用户

4.安装SDK(导入依赖)

4.1 打开人物动漫化示例代码 ---> 点击SDK总览

4.2 选择 java

4.3 选择人脸人体 --> SDK链接

4.4 选择最新版本Maven依赖

Maven依赖 : 

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>facebody20191230</artifactId>
    <version>5.0.0</version>
</dependency>

5. 代码-工具类

阿里云AccessKey ID 和 Accesskey Secret 自行查看

import com.alibaba.fastjson2.JSON;
import com.aliyun.facebody20191230.Client;
import com.aliyun.facebody20191230.models.GenerateHumanAnimeStyleAdvanceRequest;
import com.aliyun.facebody20191230.models.GenerateHumanAnimeStyleResponse;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.util.Map;

/**
 * 阿里云 - 人物动漫化工具
 */
public class AliYunUtils {

    // AccessKey ID
    private static final String accessKeyId = "阿里云AccessKey ID";
    // AccessKey Secret
    private static final String accessKeySecret = "阿里云AccessKey Secret";
    /**
     * 日漫风
     */
    public static final String anime = "anime";
    /**
     * 3D特效
     */
    public static final String threeD = "3d";
    /**
     * 手绘风
     */
    public static final String handdrawn = "handdrawn";
    /**
     * 铅笔画
     */
    public static final String sketch = "sketch";
    /**
     * 艺术特效
     */
    public static final String artstyle = "artstyle";


    /**
     * 本地文件上传生成头像
     * @param style 图片风格
     * @param filePath 本地图片路径
     * @return 下载图片Url
     */
    public static String localByFile(String style, String filePath) throws Exception {
        // 本地图片路径
        InputStream inputStream = new FileInputStream(new File(filePath));
        return GeneratePicture(style,inputStream);
    }

    /**
     * 根据图片Url生成
     * @param style 图片风格
     * @param webUrl 网络图片 Url
     * @return 下载图片Url
     */
    public static String webByUrl(String style, String webUrl) throws Exception {
        // 网络图片Url
        URL url = new URL(webUrl);
        InputStream inputStream = url.openConnection().getInputStream();
        return GeneratePicture(style,inputStream);
    }

    /**
     * 公共调用方法
     * @param style
     * @param inputStream
     * @return
     */
    private static String GeneratePicture(String style, InputStream inputStream) throws Exception {
        //初始化
        Client client = createClient();
        //人物动漫化的API
        GenerateHumanAnimeStyleAdvanceRequest generateHumanAnimeStyleAdvanceRequest = new GenerateHumanAnimeStyleAdvanceRequest()
                .setImageURLObject(inputStream)
                //3. 指定生成的效果,分为5种模式   日漫风(anime) / 3D特效(3d) / 手绘风(handdrawn) / 铅笔画(sketch)  / 艺术特效(artstyle)
                .setAlgoType(style);
        RuntimeOptions runtime = new RuntimeOptions();
        // 复制代码运行请自行打印 API 的返回值
        GenerateHumanAnimeStyleResponse response = client.generateHumanAnimeStyleAdvance(generateHumanAnimeStyleAdvanceRequest, runtime);
        //返回生成照片的路径Url
        return getImageUrl(response);
    }

    /**
     * 初始化方法
     * @return Client
     */
    public static Client createClient() throws Exception {
        Config config = new Config()
                // 必填,您的 AccessKey ID
                .setAccessKeyId(accessKeyId)
                // 必填,您的 AccessKey Secret
                .setAccessKeySecret(accessKeySecret);
        // 访问的域名 默认:
        config.endpoint = "facebody.cn-shanghai.aliyuncs.com";
        return new com.aliyun.facebody20191230.Client(config);
    }

    /**
     * 获取返回结果中的imageUrl
     * @param response 结果
     * @return Url
     */
    private static String getImageUrl(Object response) {
        String responseJson = JSON.toJSONString(response);
        Map<String, Object> responseMap = JSON.parseObject(responseJson);
        String bodyJson = JSON.toJSONString(responseMap.get("body"));
        Map<String, Object> bodyMap = JSON.parseObject(bodyJson);
        String dataJson = JSON.toJSONString(bodyMap.get("data"));
        Map<String, Object> imageUrlMap = JSON.parseObject(dataJson);
        return String.valueOf(imageUrlMap.get("imageURL"));
    }

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值