|
@@ -36,14 +36,20 @@ import java.util.Random;
|
|
|
@Slf4j
|
|
|
public class ComfyUIServiceImpl implements IComfyUIService {
|
|
|
|
|
|
- private final ComfyUIMapper baseMapper; public String callbackGenPicUrl="http://121.15.198.153:10208/comfyui/updatePromtId";
|
|
|
+ public String callbackGenPicUrl="http://76fc08da.r11.cpolar.top/comfyui/updatePromtId";
|
|
|
+
|
|
|
+ public String comfyuiUrl = "http://121.15.198.153:43210/prompt";
|
|
|
+
|
|
|
+ private final ComfyUIMapper baseMapper;
|
|
|
// 图片系统配置类
|
|
|
- private final SysOssMapper sysOssMapper; public String comfyuiUrl = "http://121.15.198.153:43210/prompt";
|
|
|
+ private final SysOssMapper sysOssMapper;
|
|
|
// 短信通知
|
|
|
private final ISmsService smsService;
|
|
|
|
|
|
private final BaseUserPhotoFolderMapper photoFolderMapper;
|
|
|
|
|
|
+ private final IUserInfoService userInfoService;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 判断推送comfyui的条件来决定是否推送
|
|
@@ -56,34 +62,29 @@ public class ComfyUIServiceImpl implements IComfyUIService {
|
|
|
// String executeTime = comfyUIExecutJSON.getString("executeTime");
|
|
|
Date executeTime = comfyuiExecute.getExecuteTime();
|
|
|
|
|
|
-// if(Strings.isBlank(executeTimeStr))
|
|
|
-// Date executeTime = null;
|
|
|
-// try {
|
|
|
-// executeTime = new SimpleDateFormat("yyyy-MM-dd'T'hh:MM:ss").parse(executeTimeStr);
|
|
|
-// } catch (ParseException e) {
|
|
|
-// throw new RuntimeException(e);
|
|
|
-// }
|
|
|
|
|
|
// 如果一个小时仍然没有更新,可能是已经挂了,则短信通知管理员
|
|
|
- if (null != executeTime && comfyuiExecute.getExecuteNum() > 0 && executeTime.getTime() + 1000 * 60 * 60 < new Date().getTime()) {
|
|
|
+ // 暂时注释
|
|
|
+ /*if (null != executeTime && comfyuiExecute.getExecuteNum() > 0 && executeTime.getTime() + 1000 * 60 * 60 < new Date().getTime()) {
|
|
|
String noticePhone = comfyuiExecute.getNoticePhone();
|
|
|
// 发送短信
|
|
|
smsService.sendCode(noticePhone, "code", "comfyui生图生成异常!");
|
|
|
- }
|
|
|
+ }*/
|
|
|
String promptId = "";
|
|
|
// 如果为0,则进行推送,并且更新执行次数,
|
|
|
- if (null == comfyuiExecute || 0 == comfyuiExecute.getExecuteNum()) {
|
|
|
+// if (null == comfyuiExecute || 0 == comfyuiExecute.getExecuteNum()) {
|
|
|
// 更新执行次数
|
|
|
-// promptId = sendRestTemplate(jsonObject);
|
|
|
- }
|
|
|
+ promptId = sendRestTemplate(jsonObject);
|
|
|
+// }
|
|
|
|
|
|
Long ossId = null;
|
|
|
if(Strings.isNotBlank(promptId)) {
|
|
|
// ComfyuiExecute comfyuiExecute = new ComfyuiExecute();
|
|
|
- comfyuiExecute.setPromptId(promptId);
|
|
|
- comfyuiExecute.setExecuteNum(comfyuiExecute.getExecuteNum() + 1);
|
|
|
- comfyuiExecute.setExecuteTime(new Date());
|
|
|
- int i = baseMapper.updateComfyuiExecute(comfyuiExecute);
|
|
|
+ // 暂时注释
|
|
|
+// comfyuiExecute.setPromptId(promptId);
|
|
|
+// comfyuiExecute.setExecuteNum(comfyuiExecute.getExecuteNum() + 1);
|
|
|
+// comfyuiExecute.setExecuteTime(new Date());
|
|
|
+// int i = baseMapper.updateComfyuiExecute(comfyuiExecute);
|
|
|
|
|
|
JSONObject minioJson = sysOssMapper.queryConfig("1", "minio");
|
|
|
String bucketName = minioJson.getString("bucket_name");
|
|
@@ -126,7 +127,7 @@ public class ComfyUIServiceImpl implements IComfyUIService {
|
|
|
JSONObject jsonObject = sysOssMapper.queryConfig("1", "minio");
|
|
|
if (jsonObject == null || jsonObject.getString("bucket_name") == null) {
|
|
|
log.error("请先配置minio信息");
|
|
|
- throw new RuntimeException("请先配置minio信息");
|
|
|
+ throw new ServerException(ErrorCode.COMFYUI_MINIO_CONFIG);
|
|
|
}
|
|
|
|
|
|
String url = "http://" + jsonObject.getString("endpoint") + File.separator + jsonObject.getString("bucket_name") + File.separator + minioUrl;
|
|
@@ -150,6 +151,9 @@ public class ComfyUIServiceImpl implements IComfyUIService {
|
|
|
comfyuiExecute.setPromptId(null);
|
|
|
baseMapper.updateComfyuiExecute(comfyuiExecute);
|
|
|
|
|
|
+ // 扣除燃料
|
|
|
+// userInfoService.deduct(null, 1808705496965525505l);
|
|
|
+
|
|
|
// 获取表,进行判断再推送
|
|
|
// BaseUserPhotoFolder baseUserPhotoFolder = photoFolderMapper.selectOne(new QueryWrapper<BaseUserPhotoFolder>().eq("base_user_id", userId).eq("prompt_id", promptId)
|
|
|
// .select("is_generate","generate_time"));
|
|
@@ -177,10 +181,10 @@ public class ComfyUIServiceImpl implements IComfyUIService {
|
|
|
// baseUserPhotoFolder.setType(2l);
|
|
|
// baseUserPhotoFolder.setPhotoOssId(ossId);
|
|
|
|
|
|
- if(null != baseUserPhotoFolders){
|
|
|
- // 如果不为空,那么直接再进行推送
|
|
|
- assert2ComfyUI2save(baseUserPhotoFolders, JSONObject.parseObject(baseUserPhotoFolders.getWorkflowJson()), comfyuiExecute);
|
|
|
- }
|
|
|
+// if(null != baseUserPhotoFolders){
|
|
|
+// // 如果不为空,那么直接再进行推送
|
|
|
+// assert2ComfyUI2save(baseUserPhotoFolders, JSONObject.parseObject(baseUserPhotoFolders.getWorkflowJson()), comfyuiExecute);
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -226,7 +230,7 @@ public class ComfyUIServiceImpl implements IComfyUIService {
|
|
|
ComfyuiWorkflow comfyuiWorkflow = baseMapper.queryWorkflowById(picType);
|
|
|
baseUserPhotoFolder.setWorkflowId(comfyuiWorkflow.getId());
|
|
|
baseUserPhotoFolder.setBaseUserId(SecurityUser.getUserId());
|
|
|
- if (Arrays.asList(1, 2, 4, 6, 7, 9).contains(picType)) {
|
|
|
+ if (Arrays.asList(1, 2, 4, 6, 7).contains(picType)) {
|
|
|
sendWorkFlow(picType, picUrl, baseUserPhotoFolder, comfyuiWorkflow);
|
|
|
log.info("发送工作流1、2、4、6、7、9");
|
|
|
} else if (3 == picType) {
|
|
@@ -238,6 +242,8 @@ public class ComfyUIServiceImpl implements IComfyUIService {
|
|
|
} else if (8 == picType) {
|
|
|
log.info("发送工作流8");
|
|
|
sendWorkFlow8(baseUserPhotoFolder, comfyuiWorkflow);//尺寸外扩
|
|
|
+ } else if (9 == picType) {
|
|
|
+ sendWorkFlow9(baseUserPhotoFolder, comfyuiWorkflow);
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
@@ -295,6 +301,11 @@ public class ComfyUIServiceImpl implements IComfyUIService {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<ComfyuiModel> getAllModel(ComfyuiModel comfyuiModel) {
|
|
|
+ return List.of();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 1 商品抠图
|
|
|
* 2 图片清晰
|
|
@@ -457,6 +468,43 @@ public class ComfyUIServiceImpl implements IComfyUIService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ // 尺寸外扩
|
|
|
+ public void sendWorkFlow9(BaseUserPhotoFolder baseUserPhotoFolder, ComfyuiWorkflow comfyuiWorkflow) {
|
|
|
+// if (Strings.isBlank(baseUserPhotoFolder.getPromptJson())) {
|
|
|
+// throw new RuntimeException("请输入尺寸!");
|
|
|
+// }
|
|
|
+ String prompt = baseUserPhotoFolder.getPromptJson();
|
|
|
+ String appKey = comfyuiWorkflow.getAppKey();
|
|
|
+ String workFlowStr = comfyuiWorkflow.getWorkflowJson();
|
|
|
+ JSONObject jsonObject = getWorkFlowJSON(workFlowStr, appKey, comfyuiWorkflow.getPicType());
|
|
|
+ jsonObject.put("minio_url", baseUserPhotoFolder.getUploadPicUrl());
|
|
|
+ jsonObject.put("user_workflow_id", comfyuiWorkflow.getPicType());
|
|
|
+// JSONObject promptObject = JSONObject.parseObject(baseUserPhotoFolder.getPromptJson());
|
|
|
+// int width = promptJson.getString("6");
|
|
|
+// 6, {'clip': ['4', 1], 'text': 'beach,sunsine\n'} 14 ['beach,sunsine\n']
|
|
|
+// int height = promptJson.getInteger("height");
|
|
|
+// int top, bottom, left, right;
|
|
|
+// top = bottom = height / 2;
|
|
|
+// left = right = width / 2;
|
|
|
+// JSONObject sizeJSONTmp = jsonObject.getJSONObject("prompt").getJSONObject("6").getJSONObject("inputs");
|
|
|
+// jsonObject.getJSONObject("prompt").getJSONObject("6").put("inputs", prompt);
|
|
|
+ jsonObject.getJSONObject("prompt").getJSONObject("6").getJSONObject("inputs").put("text", prompt);
|
|
|
+// jsonObject.getJSONObject("prompt").getJSONObject("6").put("inputs", "prompt");
|
|
|
+// jsonObject.getJSONObject("extra_data").getJSONObject("extra_pnginfo").getJSONObject("workflow").getJSONArray("nodes")
|
|
|
+// .getJSONObject(14).getJSONArray("widgets_values").put("widgets_values", Arrays.asList(prompt));
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONObject("extra_data").getJSONObject("extra_pnginfo").getJSONObject("workflow").getJSONArray("nodes").getJSONObject(14).getJSONArray("widgets_values");
|
|
|
+ jsonArray.remove(0);
|
|
|
+ jsonArray.add(prompt);
|
|
|
+
|
|
|
+ try {
|
|
|
+ assert2ComfyUI2save(baseUserPhotoFolder, jsonObject, null);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(baseUserPhotoFolder.getBaseUserId()+" 证件照制作异常");
|
|
|
+ throw new ServerException(ErrorCode.INTERNAL_SERVER_ERROR);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 工作流基本的格式的封装
|
|
|
* @param workFlowStr
|
|
@@ -655,7 +703,7 @@ public class ComfyUIServiceImpl implements IComfyUIService {
|
|
|
opp2Array.remove(0);
|
|
|
opp2Array.add(oppositePrimitive);
|
|
|
|
|
|
-// sendRestTemplate(jsonObject);
|
|
|
+ sendRestTemplate(jsonObject);
|
|
|
|
|
|
try {
|
|
|
assert2ComfyUI2save(baseUserPhotoFolder, jsonObject, null);
|