后台服务
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

205 rader
6.6 KiB

  1. package com.iformall.sm;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.iformall.common.ErrorCode;
  5. import com.iformall.enums.EnumDigitalAvatarMouldType;
  6. import com.iformall.exception.MallinkException;
  7. import com.iformall.utils.Base64Util;
  8. import com.iformall.utils.HttpUtil;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.apache.commons.lang3.StringUtils;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.stereotype.Component;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. @Slf4j
  16. @Component
  17. public class AiDigitalAvatarHelper {
  18. private static String digital_avatar;
  19. @Value("${photo.digital_avatar}")
  20. public void setDigitalAvatar(String digital_avatar){
  21. this.digital_avatar = digital_avatar;
  22. }
  23. private static String callbackUrl;
  24. @Value("${photo.callbackUrl}")
  25. public void setCallbackUrl(String callbackUrl){
  26. this.callbackUrl = callbackUrl;
  27. }
  28. public static AiCheckPhotoResult checkPhoto(AiCheckPhotoParam param) {
  29. // String response = HttpUtil.doAiVideoPost("http://nas.pucao.cn:2005/dec_face", JSONObject.toJSONString(param));
  30. String response = HttpUtil.doAiVideoPost(digital_avatar + "/dec_face", JSONObject.toJSONString(param));
  31. log.info("图片人脸检测 end response:" + response);
  32. AiCheckPhotoResult result = new AiCheckPhotoResult();
  33. if (StringUtils.isBlank(response)) {
  34. result.setSuccess(false);
  35. result.setMsg("(MetaService)图片人脸检测失败,请稍后重试");
  36. return result;
  37. }
  38. JSONObject jsonObject = JSON.parseObject(response);
  39. JSONObject status = jsonObject.getJSONObject("status");
  40. Integer code = status.getInteger("code");
  41. String msg = status.getString("msg");
  42. if (code == null) {
  43. result.setSuccess(false);
  44. result.setMsg("(MetaService)图片人脸检测失败,请稍后重试");
  45. return result;
  46. }
  47. if (code.intValue() == 1000) {
  48. result.setCode(code);
  49. result.setSuccess(true);
  50. result.setMsg(msg);
  51. } else {
  52. result.setCode(code);
  53. result.setSuccess(false);
  54. result.setMsg(msg);
  55. }
  56. return result;
  57. }
  58. public static DigitalAvatarResult digitalAvatarPhoto(DigitalAvatarParam param,Long taskId) {
  59. param.setTask_id(taskId);
  60. // param.setCallback_url("https://phototest.metavatar.cc/C/callback/create/photo");
  61. param.setCallback_url(callbackUrl + "/callback/create/photo");
  62. // log.info("生成照片start request:" + param.getBg_img());
  63. // String response = HttpUtil.doAiVideoPost("http://nas.pucao.cn:2005/make_face", JSONObject.toJSONString(param));
  64. String response = HttpUtil.doAiVideoPost(digital_avatar + "/make_face", JSONObject.toJSONString(param));
  65. log.info("生成照片end response:");
  66. DigitalAvatarResult result = new DigitalAvatarResult();
  67. if(StringUtils.isBlank(response)){
  68. result.setSuccess(false);
  69. result.setMsg("[metavatar]请求异常,请稍后重试");
  70. return result;
  71. }
  72. JSONObject jsonObject = JSON.parseObject(response);
  73. JSONObject status = jsonObject.getJSONObject("status");
  74. Integer code = status.getInteger("code");
  75. if(code == null){
  76. result.setSuccess(false);
  77. result.setMsg("[metavatar]请求异常,请稍后重试");
  78. return result;
  79. }
  80. if(code.intValue() == 2000){
  81. result.setSuccess(true);
  82. result.setMsg("success");
  83. JSONObject data = jsonObject.getJSONObject("data");
  84. List<String> imgList = new ArrayList<>();
  85. imgList.add(data.getString("img_0"));
  86. imgList.add(data.getString("img_1"));
  87. imgList.add(data.getString("img_2"));
  88. imgList.add(data.getString("img_3"));
  89. result.setImgList(imgList);
  90. }else{
  91. result.setSuccess(false);
  92. result.setMsg("[metavatar]"+status.getString("msg"));
  93. }
  94. return result;
  95. }
  96. public static SuperImgResult superImg(SuperImgParam param) {
  97. // log.info("生成照片start request:" + param.getBg_img());
  98. String response = HttpUtil.doAiVideoPost(digital_avatar + "/sr_img", JSONObject.toJSONString(param));
  99. log.info("照片超分end response:"+response);
  100. SuperImgResult result = new SuperImgResult();
  101. if(StringUtils.isBlank(response)){
  102. result.setSuccess(false);
  103. result.setMsg("[metavatar]请求异常,请稍后重试");
  104. return result;
  105. }
  106. JSONObject jsonObject = JSON.parseObject(response);
  107. JSONObject status = jsonObject.getJSONObject("status");
  108. Integer code = status.getInteger("code");
  109. if(code == null){
  110. result.setSuccess(false);
  111. result.setMsg("[metavatar]请求异常,请稍后重试");
  112. return result;
  113. }
  114. if(code.intValue() == 3000){
  115. result.setSuccess(true);
  116. result.setMsg("success");
  117. JSONObject data = jsonObject.getJSONObject("data");
  118. result.setImg(data.getString("img"));
  119. }else{
  120. result.setSuccess(false);
  121. result.setMsg("[metavatar]"+status.getString("msg"));
  122. }
  123. return result;
  124. }
  125. public static ShareImgResult createShareImg(ShareImgParam param) {
  126. // log.info("生成照片start request:" + param.getBg_img());
  127. String response = HttpUtil.doAiVideoPost(digital_avatar + "/logo_img", JSONObject.toJSONString(param));
  128. log.info("照片超分end response:"+response);
  129. ShareImgResult result = new ShareImgResult();
  130. if(StringUtils.isBlank(response)){
  131. result.setSuccess(false);
  132. result.setMsg("[metavatar]请求异常,请稍后重试");
  133. return result;
  134. }
  135. JSONObject jsonObject = JSON.parseObject(response);
  136. JSONObject status = jsonObject.getJSONObject("status");
  137. Integer code = status.getInteger("code");
  138. if(code == null){
  139. result.setSuccess(false);
  140. result.setMsg("[metavatar]请求异常,请稍后重试");
  141. return result;
  142. }
  143. if(code.intValue() == 4000){
  144. result.setSuccess(true);
  145. result.setMsg("success");
  146. JSONObject data = jsonObject.getJSONObject("data");
  147. result.setImg(data.getString("img"));
  148. }else{
  149. result.setSuccess(false);
  150. result.setMsg("[metavatar]"+status.getString("msg"));
  151. }
  152. return result;
  153. }
  154. public static void main(String[] args) {
  155. AiCheckPhotoParam param = new AiCheckPhotoParam();
  156. String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personmould/16760216806604820_cSHoijDX_grace_1080.jpg");
  157. param.setImg(img);
  158. AiCheckPhotoResult result = AiDigitalAvatarHelper.checkPhoto(param);
  159. System.out.println(result);
  160. // DigitalAvatarParam param = new DigitalAvatarParam();
  161. // param.setBg_img("style_threeface");
  162. // String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personmould/16760216806604820_cSHoijDX_grace_1080.jpg");
  163. // param.setImg_lift(img);
  164. // param.setImg_middle(img);
  165. // param.setImg_right(img);
  166. // DigitalAvatarResult result = AiDigitalAvatarHelper.digitalAvatarPhoto(param,100001l);
  167. // System.out.println(result);
  168. }
  169. }