|
|
@@ -1,220 +0,0 @@ |
|
|
|
package com.iformall.sm; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.iformall.common.ErrorCode; |
|
|
|
import com.iformall.enums.EnumDigitalAvatarMouldType; |
|
|
|
import com.iformall.exception.MallinkException; |
|
|
|
import com.iformall.utils.Base64Util; |
|
|
|
import com.iformall.utils.HttpUtil; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@Component |
|
|
|
public class AiDigitalAvatarHelper { |
|
|
|
|
|
|
|
public static String digital_avatar; |
|
|
|
@Value("${suimang.digital_avatar}") |
|
|
|
public void setDigitalAvatar(String digital_avatar){ |
|
|
|
this.digital_avatar = digital_avatar; |
|
|
|
} |
|
|
|
|
|
|
|
public static String digital_avatar_hy; |
|
|
|
@Value("${suimang.digital_avatar_hy}") |
|
|
|
public void setDigitalAvatarHy(String digital_avatar_hy){ |
|
|
|
this.digital_avatar_hy = digital_avatar_hy; |
|
|
|
} |
|
|
|
|
|
|
|
public static String callbackUrl; |
|
|
|
@Value("${suimang.callbackUrl}") |
|
|
|
public void setCallbackUrl(String callbackUrl){ |
|
|
|
this.callbackUrl = callbackUrl; |
|
|
|
} |
|
|
|
|
|
|
|
//智象小程序人脸检测 |
|
|
|
public static AiCheckPhotoResult checkPhoto(AiCheckPhotoParam param) { |
|
|
|
// String response = HttpUtil.doAiVideoPost("http://nas.pucao.cn:2005/dec_face", JSONObject.toJSONString(param)); |
|
|
|
String response = HttpUtil.doAiVideoPost(digital_avatar + "/dec_face", JSONObject.toJSONString(param)); |
|
|
|
log.info("图片人脸检测 end response:" + response); |
|
|
|
AiCheckPhotoResult result = new AiCheckPhotoResult(); |
|
|
|
|
|
|
|
if (StringUtils.isBlank(response)) { |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("(MetaService)图片人脸检测失败,请稍后重试"); |
|
|
|
return result; |
|
|
|
} |
|
|
|
JSONObject jsonObject = JSON.parseObject(response); |
|
|
|
JSONObject status = jsonObject.getJSONObject("status"); |
|
|
|
Integer code = status.getInteger("code"); |
|
|
|
String msg = status.getString("msg"); |
|
|
|
if (code == null) { |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("(MetaService)图片人脸检测失败,请稍后重试"); |
|
|
|
return result; |
|
|
|
} |
|
|
|
if (code.intValue() == 1000) { |
|
|
|
result.setCode(code); |
|
|
|
result.setSuccess(true); |
|
|
|
result.setMsg(msg); |
|
|
|
} else { |
|
|
|
result.setCode(code); |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg(msg); |
|
|
|
} |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
//智象小程序生成 |
|
|
|
public static DigitalAvatarResult digitalAvatarPhoto(DigitalAvatarParam param,Long taskId) { |
|
|
|
|
|
|
|
param.setTask_id(taskId); |
|
|
|
// param.setCallback_url("https://phototest.metavatar.cc/C/callback/create/photo"); |
|
|
|
param.setCallback_url(callbackUrl + "/callback/create/photo"); |
|
|
|
// log.info("生成照片start request:" + param.getBg_img()); |
|
|
|
// String response = HttpUtil.doAiVideoPost("http://http://111.198.0.15:22200/make_face", JSONObject.toJSONString(param)); |
|
|
|
String response = HttpUtil.doAiVideoPost(digital_avatar + "/make_face", JSONObject.toJSONString(param)); |
|
|
|
log.info("生成照片end response:"); |
|
|
|
|
|
|
|
DigitalAvatarResult result = new DigitalAvatarResult(); |
|
|
|
|
|
|
|
if(StringUtils.isBlank(response)){ |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("[metavatar]请求异常,请稍后重试"); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
JSONObject jsonObject = JSON.parseObject(response); |
|
|
|
JSONObject status = jsonObject.getJSONObject("status"); |
|
|
|
Integer code = status.getInteger("code"); |
|
|
|
if(code == null){ |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("[metavatar]请求异常,请稍后重试"); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
if(code.intValue() == 2000){ |
|
|
|
result.setSuccess(true); |
|
|
|
result.setMsg("success"); |
|
|
|
|
|
|
|
JSONObject data = jsonObject.getJSONObject("data"); |
|
|
|
List<String> imgList = new ArrayList<>(); |
|
|
|
imgList.add(data.getString("fusion_img1")); |
|
|
|
imgList.add(data.getString("roop_img1")); |
|
|
|
imgList.add(data.getString("fusion_img2")); |
|
|
|
imgList.add(data.getString("roop_img2")); |
|
|
|
imgList.add(data.getString("fusion_img3")); |
|
|
|
imgList.add(data.getString("roop_img3")); |
|
|
|
imgList.add(data.getString("fusion_img4")); |
|
|
|
imgList.add(data.getString("roop_img4")); |
|
|
|
result.setImgList(imgList); |
|
|
|
}else{ |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("[metavatar]"+status.getString("msg")); |
|
|
|
} |
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public static SuperImgResult superImg(SuperImgParam param,Long taskId) { |
|
|
|
param.setTask_id(taskId); |
|
|
|
// param.setCallback_url("https://phototest.metavatar.cc/C/callback/create/photo"); |
|
|
|
param.setCallback_url(callbackUrl + "/callback/super/photo"); |
|
|
|
// log.info("生成照片start request:" + param.getBg_img()); |
|
|
|
String response = HttpUtil.doAiVideoPost(digital_avatar_hy + "/sr_img", JSONObject.toJSONString(param)); |
|
|
|
log.info("照片超分end response:"); |
|
|
|
|
|
|
|
SuperImgResult result = new SuperImgResult(); |
|
|
|
|
|
|
|
if(StringUtils.isBlank(response)){ |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("[metavatar]请求异常,请稍后重试"); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
JSONObject jsonObject = JSON.parseObject(response); |
|
|
|
JSONObject status = jsonObject.getJSONObject("status"); |
|
|
|
Integer code = status.getInteger("code"); |
|
|
|
if(code == null){ |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("[metavatar]请求异常,请稍后重试"); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
if(code.intValue() == 3000){ |
|
|
|
result.setSuccess(true); |
|
|
|
result.setMsg("success"); |
|
|
|
JSONObject data = jsonObject.getJSONObject("data"); |
|
|
|
result.setImg(data.getString("img")); |
|
|
|
}else{ |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("[metavatar]"+status.getString("msg")); |
|
|
|
} |
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//智象小程序生成logo |
|
|
|
public static ShareImgResult createShareImg(ShareImgParam param) { |
|
|
|
|
|
|
|
// log.info("生成照片start request:" + param.getBg_img()); |
|
|
|
String response = HttpUtil.doAiVideoPost(digital_avatar + "/logo_img", JSONObject.toJSONString(param)); |
|
|
|
log.info("生成照片end response:"+response); |
|
|
|
|
|
|
|
ShareImgResult result = new ShareImgResult(); |
|
|
|
|
|
|
|
if(StringUtils.isBlank(response)){ |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("[metavatar]请求异常,请稍后重试"); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
JSONObject jsonObject = JSON.parseObject(response); |
|
|
|
JSONObject status = jsonObject.getJSONObject("status"); |
|
|
|
Integer code = status.getInteger("code"); |
|
|
|
if(code == null){ |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("[metavatar]请求异常,请稍后重试"); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
if(code.intValue() == 4000){ |
|
|
|
result.setSuccess(true); |
|
|
|
result.setMsg("success"); |
|
|
|
JSONObject data = jsonObject.getJSONObject("data"); |
|
|
|
result.setImg(data.getString("img")); |
|
|
|
}else{ |
|
|
|
result.setSuccess(false); |
|
|
|
result.setMsg("[metavatar]"+status.getString("msg")); |
|
|
|
} |
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public static void main(String[] args) { |
|
|
|
// AiCheckPhotoParam param = new AiCheckPhotoParam(); |
|
|
|
// String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personmould/16760216806604820_cSHoijDX_grace_1080.jpg"); |
|
|
|
// param.setImg(img); |
|
|
|
// AiCheckPhotoResult result = AiDigitalAvatarHelper.checkPhoto(param); |
|
|
|
// System.out.println(result); |
|
|
|
|
|
|
|
|
|
|
|
// DigitalAvatarParam param = new DigitalAvatarParam(); |
|
|
|
// param.setBg_img("素白"); |
|
|
|
// String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/capi/2023-08-31/91f69a7fdac146159d2408baaad26619.jpg?x-oss-process=image/resize,w_10000/quality,q_60"); |
|
|
|
// param.setImg_lift(img); |
|
|
|
// param.setImg_middle("None"); |
|
|
|
// param.setImg_right("None"); |
|
|
|
// DigitalAvatarResult result = AiDigitalAvatarHelper.digitalAvatarPhoto(param,100001l); |
|
|
|
// System.out.println(result); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |