阿里云人物动漫化

article/2025/10/31 16:06:58

简介

使用阿里云人物动漫化功能制作一款属于自己的专属头像(该功能收费)

功能描述
人物动漫化能力可以将一张人物图像进行转换处理,生成二次元卡通形象,并返回动漫化后的结果图像。效果示例如下。
原图:
在这里插入图片描述
日漫风结果图:

在这里插入图片描述

3D特效结果图:
在这里插入图片描述

手绘风结果图:
在这里插入图片描述

铅笔画结果图:
在这里插入图片描述

艺术特效结果图:
这里是引用

详细内容请看官方文档

官方文档

阿里云视觉智能开放平台-人物动漫化文档

开通服务

开通阿里云人脸人体识别服务

所需依赖

<properties><fastjson.version>1.2.9</fastjson.version><aliyun.ocr.version>1.0.4</aliyun.ocr.version><aliyun.facebody.version>2.0.0</aliyun.facebody.version><aliyun.imagerecog.version>1.0.5</aliyun.imagerecog.version><aliyun.imageseg.version>1.0.0</aliyun.imageseg.version><aliyun.imageenhan.version>1.0.3</aliyun.imageenhan.version><aliyun.goodstech.version>0.0.3</aliyun.goodstech.version><aliyun.objectdet.version>2.0.9</aliyun.objectdet.version><aliyun.imgsearch.version>1.0.0</aliyun.imgsearch.version><aliyun.videorecog.version>1.0.0</aliyun.videorecog.version><aliyun.videoenhan.version>1.0.2</aliyun.videoenhan.version><aliyun.videoseg.version>1.0.1</aliyun.videoseg.version><aliyun-java-sdk-facebody.version>1.2.27</aliyun-java-sdk-facebody.version>
</properties>
<dependencies><!--fastjson--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency>
<!--阿里云人物动漫化--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.14</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>ocr20191230</artifactId><version>${aliyun.ocr.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>facebody20191230</artifactId><version>${aliyun.facebody.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>imagerecog20190930</artifactId><version>${aliyun.imagerecog.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>imageseg20191230</artifactId><version>${aliyun.imageseg.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>imageenhan20190930</artifactId><version>${aliyun.imageenhan.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>goodstech20191230</artifactId><version>${aliyun.goodstech.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>objectdet20191230</artifactId><version>${aliyun.objectdet.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>imgsearch20200320</artifactId><version>${aliyun.imgsearch.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>videorecog20200320</artifactId><version>${aliyun.videorecog.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>videoseg20200320</artifactId><version>${aliyun.videoseg.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>videoenhan20200320</artifactId><version>${aliyun.videoenhan.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-facebody</artifactId><version>${aliyun-java-sdk-facebody.version}</version></dependency>
</dependencies>

具体代码


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 com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.facebody.model.v20191230.GenerateHumanAnimeStyleRequest;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.io.File;
import java.io.FileInputStream;
import java.util.Map;/*** @Author ChenNong* @Date 2021/12/7* @Description 头像工具类 by aliyun*/
public class AvatarUtils {private static final String accessKeyId = "阿里云accessKeyId ";private static final String accessKeySecret = "阿里云accessKeySecret ";/*** 日漫风*/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* @throws Exception*/public static String buildAvatarByFile(String style, String filePath) throws Exception {String imageUrl = "";try {Config config = new Config();//你的accessKeyIdconfig.accessKeyId = accessKeyId;//你的accessKeyIdconfig.accessKeySecret = accessKeySecret;//你的accessKeySecretconfig.type = "access_key";config.regionId = "cn-shanghai";// config.endpointType="internal";  //默认通过公网访问OSS,如需通过内网请打开这一行Client client = new Client(config);RuntimeOptions runtimeOptions = new RuntimeOptions();GenerateHumanAnimeStyleAdvanceRequest request = new GenerateHumanAnimeStyleAdvanceRequest();request.setAlgoType(style);request.imageURLObject = new FileInputStream(new File(filePath));GenerateHumanAnimeStyleResponse response = client.generateHumanAnimeStyleAdvance(request, runtimeOptions);
//            System.out.println("头像生成=" + JsonUtils.toJson(response));return getImageUrl(response);} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {System.out.println("ErrCode:" + e.getErrCode());System.out.println("ErrMsg:" + e.getErrMsg());System.out.println("RequestId:" + e.getRequestId());}return imageUrl;}/*** 图片url生成头像* @param algoType 生成的图片风格* @param url 图片url* @return* @throws Exception*/public static String buildAvatarByUrl(String algoType, String url) throws Exception {String imageUrl = "";try {DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", accessKeyId, accessKeySecret);/** use STS TokenDefaultProfile profile = DefaultProfile.getProfile("<your-region-id>",           // The region ID"<your-access-key-id>",       // The AccessKey ID of the RAM account"<your-access-key-secret>",   // The AccessKey Secret of the RAM account"<your-sts-token>");          // STS Token**/IAcsClient client = new DefaultAcsClient(profile);GenerateHumanAnimeStyleRequest request = new GenerateHumanAnimeStyleRequest();request.setAlgoType(algoType);request.setImageURL(url);com.aliyuncs.facebody.model.v20191230.GenerateHumanAnimeStyleResponse response = client.getAcsResponse(request);System.out.println(new Gson().toJson(response));return getImageUrl(response);} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {System.out.println("ErrCode:" + e.getErrCode());System.out.println("ErrMsg:" + e.getErrMsg());System.out.println("RequestId:" + e.getRequestId());}return imageUrl;}/*** 获取返回结果中的imageUrl** @param response* @return*/private static String getImageUrl(Object response) {String responseJson = JsonUtils.toJson(response);Map<String, Object> responseMap = JsonUtils.toMap(responseJson);String bodyJson = JsonUtils.toJson(responseMap.get("body"));Map<String, Object> bodyMap = JsonUtils.toMap(bodyJson);String dataJson = JsonUtils.toJson(bodyMap.get("data"));Map<String, Object> imageUrlMap = JsonUtils.toMap(dataJson);return String.valueOf(imageUrlMap.get("imageURL"));}
}

http://chatgpt.dhexx.cn/article/Y7yKj8GU.shtml

相关文章

服务器虚拟化与云平台,虚拟服务器和云有哪些区别

原标题&#xff1a;虚拟服务器和云有哪些区别 虚拟服务器和云有哪些区别&#xff1f;如果不是专业的人员&#xff0c;其实对于服务器是搞不懂的&#xff0c;其实虚拟服务器和云都是对硬件的抽象&#xff0c;两者都有很多好处和使用的理由&#xff0c;那么服务器虚拟化和云的区别…

腾云忆想构建云化IT生态,助力我国“双循环经济”数字化升级

新冠肺炎疫情全球蔓延,世界经济与国际局势瞬息万变。时局变化之中展望“十四五”,我国逐步形成了以国内大循环为主体、国内国际双循环相互促进的新发展格局。在新时局中,数字经济是重要的支撑力量,产业的数字化转型成为不可逆的趋势。 面对时代变局,腾云忆想紧抓历史机遇,与腾…

欢迎参与2020年云栖大会——引领企业基础设施云化

**简介&#xff1a;**2020年9月18日&#xff0c;阿里云邀您参加2020年云栖大会——引领企业基础设施云化分会场。 2020年9月18日&#xff0c;阿里云邀您参加2020年云栖大会——引领企业基础设施云化分会场。 在数字新基建时代&#xff0c;IT基础设施成为企业数字化转型的一个瓶…

何朝曦:构建云化安全能力的三个建议

11月12日&#xff0c;深信服智安全创新峰会在云端拉开帷幕&#xff0c;深信服创始人&CEO何朝曦在《构建云化时代的安全能力》主题演讲中指出&#xff0c;业务云化已成为用户实现数字化转型与变革的重要方式&#xff0c;这种跨时代的变迁对用户的安全能力提出了更高的要求&a…

英特尔TCI技术落地,锐捷网络发布OCS终端云化新品

编辑 | 宋慧 出品 | CSDN 云计算 2021 年 6 月&#xff0c;国内一直深耕桌面虚拟化的厂商锐捷正式发布了新一代云桌面解决方案——锐捷三擎云桌面解决方案&#xff08; “精耕细作”桌面云市场的锐捷&#xff0c;重磅发布三擎云桌面 &#xff09;&#xff0c;其中三擎指的是终端…

云服务器虚拟化搭建,虚拟化搭建云服务器

虚拟化搭建云服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。本地磁盘映射(推荐使用)使用远程桌面连接M…

云化要求下,数据库架构的演进

如今&#xff0c;大型企业如金融企业和银行等&#xff0c;在下一代的微服务架构转型要求下&#xff0c;需要基础软件和数据平台能够实现原生的云化&#xff0c;以满足微服务架构的需求。 微服务&#xff0c;也就是一种面向服务的&#xff0c;有特定边界的松散耦合的架构。 主要…

【术语】本地部署、云化部署、混合部署

本地部署就是由用户在自己本地部署服务器环境&#xff0c;本地管理。 云化部署就是采用云化的方案&#xff0c;也叫SaaS模式&#xff0c;使用厂商提供的云服务器。 混合部署&#xff0c;就是一部分上云&#xff0c;一部分本地。

科技云报道:全面云化时代,企业需要怎样的云安全能力?

科技云报道原创。 云安全&#xff0c;无论何时提起&#xff0c;其重要性都不容小觑。 根据网络安全机构Sophos的研究&#xff0c;云安全事件正在时刻发生。根据该公司发布的《2021年云安全状况》显示&#xff0c;近四分之三的企业遭受了云安全攻击&#xff0c;其中恶意软件、…

如何构建一个基于IEC61499 的“云化PLC“

前不久&#xff0c;国内一些单位联合正式发布了全球首个广域云化PLC&#xff08;可编程控制器&#xff09;技术试验成果.一时间"云化PLC "又进入了人们的眼帘. 我不来评价云化PLC 具有的实际意义,只是有许多人想了解如何构建这种云化PLC .在本博文中,我介绍构建这种基…

云化Web IDE,在线开发新模式

目录 前言 一、初识云IDE 二、CSDN 云IDE 1、如何使用云IDE 2、使用云IDE 三、云IDE的使用感受 四、总结 前言 工欲善其事必先利其器&#xff0c;作为程序员&#xff0c;我们在编写代码的时候&#xff0c;一定会选用一款得心应手的工具。就像行走江湖的侠客&#xff0c;手…

企业全面云化的时代——云数据库的未来

云数据库 前言传统数据库的不足云原生数据库的优点1.动态可扩展性2.高可用性3.较低的建设成本4.轻松部署5.高可靠性 云原生数据库容器化什么是容器化&#xff1f;为什么需要使用容器&#xff1f;数据库适合容器化吗&#xff1f;1.数据安全性2.性能问题3.资源隔离 亚马逊云原生数…

SASE 本质探究(1):什么是云化

来源 | 好奇瞅瞅 责编 | 寇雪芹 头图 | 下载于视觉中国 为什么先务虚 说明一下&#xff0c;为什么要写这么“务虚”的一篇&#xff1a; SASE的本质是“面向边缘时代的网络和安全的综合云化”&#xff0c;这里有绕不开几个问题&#xff1a;什么是“云化”&#xff1f;什么是“网…

云化架构下,数据库架构的演进

如今&#xff0c;大型企业如金融企业和银行等&#xff0c;在下一代的微服务架构转型要求下&#xff0c;需要基础软件和数据平台能够实现原生的云化&#xff0c;以满足微服务架构的需求。 微服务&#xff0c;是一种面向服务的&#xff0c;有特定边界的松散耦合的架构。 主要特点…

全云化架构(一):概述

一、应用框架构特点 全云化应用平台是一个“聚合、开放”的基础架构平台&#xff0c;依托主流技术框架&#xff0c;高性能、可伸缩、高可用、可扩展&#xff0c;学习成本低&#xff0c;具有以下几个突出优点&#xff1a; 1、全云化架构 设计之初充分调研云原生应用特点&…

getString()和toString() 的区别

刚开始写代码的时候对这两个方法有混淆&#xff0c;现在咱们就来屡屡&#xff0c; getString() :这个适用取数据用的&#xff0c;前台传过来的和数据库查出来的都可以&#xff0c;要是单独的一个字符串就可以往里面赋值 比如前端传过来一个 ID&#xff0c;经过解析完成后&…

【字符串】gets函数详解

在前面从键盘输入字符串是使用 scanf 和 %s。其实还有更简单的方法&#xff0c;即使用 gets() 函数。该函数的原型为&#xff1a; 1 #include <stdio.h> 2 char *gets(char *str); 这个函数很简单&#xff0c;只有一个参数。参数类型为char*型&#xff0c;即str可以是一个…

C#-String.ToString()用法

常用格式举例&#xff1a; &#xff08;1&#xff09; int i12345; this.textBox1.Texti.ToString(); //结果 12345&#xff08;this指当前对象&#xff0c;或叫当前类的实例&#xff09; this.textBox2.Texti.ToString(“d8”); //结果 00012345 &#xff08;2&#xff09; in…

String和get

String和get 在ch4的作业中暴露出了我不懂的一些问题&#xff0c;主要是和String有关的定义和头文件以及和get有关的函数。 String 在C中如果想定义字符串型&#xff0c;即String a&#xff1b;则需要用到头文件<string>或<string.h> 有些人会问&#xff0c;这两个…

String类的getChars的用法

str.getChars(0,str.length(),ch,0); 参数1&#xff1a; 从0索引开始 参数2&#xff1a;复制指定的长度 参数3&#xff1a;目标数组 参数4&#xff1a;从目标数组的指定索引位置粘贴 进入看一下源码&#xff1a; public static void arraycopy(Object src, int srcPos, Obj…