|
@@ -2,8 +2,6 @@ package com.backendsys.modules.crt.service.impl;
|
|
|
|
|
|
import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
-import cn.hutool.json.JSONObject;
|
|
|
|
-import cn.hutool.json.JSONUtil;
|
|
|
|
import com.backendsys.exception.CustException;
|
|
import com.backendsys.exception.CustException;
|
|
import com.backendsys.modules.crt.dao.CrtDramaProjectSettingsDao;
|
|
import com.backendsys.modules.crt.dao.CrtDramaProjectSettingsDao;
|
|
import com.backendsys.modules.crt.dao.CrtDramaProjectStoryboardDao;
|
|
import com.backendsys.modules.crt.dao.CrtDramaProjectStoryboardDao;
|
|
@@ -15,12 +13,12 @@ import com.backendsys.modules.crt.entity.CrtGenerateImage;
|
|
import com.backendsys.modules.crt.entity.CrtModel;
|
|
import com.backendsys.modules.crt.entity.CrtModel;
|
|
import com.backendsys.modules.crt.enums.SamplerEnums;
|
|
import com.backendsys.modules.crt.enums.SamplerEnums;
|
|
import com.backendsys.modules.crt.service.CrtGenerateService;
|
|
import com.backendsys.modules.crt.service.CrtGenerateService;
|
|
-import com.backendsys.modules.sdk.comfyui.entity.CFPromptResponse;
|
|
|
|
-import com.backendsys.modules.sdk.comfyui.entity.CFQueue;
|
|
|
|
-import com.backendsys.modules.sdk.comfyui.entity.Text2Image;
|
|
|
|
-import com.backendsys.modules.sdk.comfyui.service.ComfyUIService;
|
|
|
|
-import com.backendsys.modules.sdk.comfyui.service.ComfyUISocketService;
|
|
|
|
-import com.backendsys.modules.sdk.comfyui.service.Text2ImageService;
|
|
|
|
|
|
+import com.backendsys.modules.sdk.comfyui.entity.ComfyuiResponse;
|
|
|
|
+import com.backendsys.modules.sdk.comfyui.entity.ComfyuiQueue;
|
|
|
|
+import com.backendsys.modules.sdk.comfyui.entity.ComfyuiText2Image;
|
|
|
|
+import com.backendsys.modules.sdk.comfyui.service.ComfyuiService;
|
|
|
|
+import com.backendsys.modules.sdk.comfyui.service.ComfyuiSocketService;
|
|
|
|
+import com.backendsys.modules.sdk.comfyui.service.ComfyuiText2ImageService;
|
|
import com.backendsys.modules.upload.enums.StyleEnums;
|
|
import com.backendsys.modules.upload.enums.StyleEnums;
|
|
import com.backendsys.modules.upload.utils.UploadUtil;
|
|
import com.backendsys.modules.upload.utils.UploadUtil;
|
|
import com.backendsys.utils.response.PageEntity;
|
|
import com.backendsys.utils.response.PageEntity;
|
|
@@ -41,12 +39,12 @@ import java.util.stream.Collectors;
|
|
public class CrtGenerateServiceImpl implements CrtGenerateService {
|
|
public class CrtGenerateServiceImpl implements CrtGenerateService {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private ComfyUIService comfyUIService;
|
|
|
|
|
|
+ private ComfyuiService comfyUIService;
|
|
@Autowired
|
|
@Autowired
|
|
- private ComfyUISocketService comfyUISocketService;
|
|
|
|
|
|
+ private ComfyuiSocketService comfyUISocketService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private Text2ImageService text2ImageService;
|
|
|
|
|
|
+ private ComfyuiText2ImageService comfyuiText2ImageService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private CrtModelDao crtModelDao;
|
|
private CrtModelDao crtModelDao;
|
|
@@ -63,8 +61,8 @@ public class CrtGenerateServiceImpl implements CrtGenerateService {
|
|
@Override
|
|
@Override
|
|
public Map<String, Object> getQueue() {
|
|
public Map<String, Object> getQueue() {
|
|
// [ComfyUI] 执行任务
|
|
// [ComfyUI] 执行任务
|
|
- Mono<CFQueue> cfQueueMono = comfyUIService.getQueue();
|
|
|
|
- CFQueue response = cfQueueMono.block();
|
|
|
|
|
|
+ Mono<ComfyuiQueue> cfQueueMono = comfyUIService.getQueue();
|
|
|
|
+ ComfyuiQueue response = cfQueueMono.block();
|
|
System.out.println("结果: " + response);
|
|
System.out.println("结果: " + response);
|
|
|
|
|
|
Map<String, Object> resp = new LinkedHashMap<>();
|
|
Map<String, Object> resp = new LinkedHashMap<>();
|
|
@@ -83,23 +81,22 @@ public class CrtGenerateServiceImpl implements CrtGenerateService {
|
|
|
|
|
|
CrtDramaProjectStoryboard storyboardDetail = crtDramaProjectStoryboardDao.selectById(drama_project_storyboard_id);
|
|
CrtDramaProjectStoryboard storyboardDetail = crtDramaProjectStoryboardDao.selectById(drama_project_storyboard_id);
|
|
if (storyboardDetail == null) throw new CustException("分镜不存在");
|
|
if (storyboardDetail == null) throw new CustException("分镜不存在");
|
|
- System.out.println("- 分镜详情: " + JSONUtil.toJsonStr(storyboardDetail));
|
|
|
|
|
|
+ // System.out.println("- 分镜详情: " + JSONUtil.toJsonStr(storyboardDetail));
|
|
|
|
|
|
Long drama_project_id = storyboardDetail.getDrama_project_id();
|
|
Long drama_project_id = storyboardDetail.getDrama_project_id();
|
|
LambdaQueryWrapper<CrtDramaProjectSettings> wrapperSettings = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<CrtDramaProjectSettings> wrapperSettings = new LambdaQueryWrapper<>();
|
|
wrapperSettings.eq(CrtDramaProjectSettings::getDrama_project_id, drama_project_id);
|
|
wrapperSettings.eq(CrtDramaProjectSettings::getDrama_project_id, drama_project_id);
|
|
List<CrtDramaProjectSettings> settingsDetail = crtDramaProjectSettingsDao.selectList(wrapperSettings);
|
|
List<CrtDramaProjectSettings> settingsDetail = crtDramaProjectSettingsDao.selectList(wrapperSettings);
|
|
if (settingsDetail == null) throw new CustException("项目配置不存在");
|
|
if (settingsDetail == null) throw new CustException("项目配置不存在");
|
|
- System.out.println("- 项目配置: " + JSONUtil.toJsonStr(settingsDetail));
|
|
|
|
|
|
+ // System.out.println("- 项目配置: " + JSONUtil.toJsonStr(settingsDetail));
|
|
|
|
|
|
// 项目配置类型 (1:生图配置, 2:生视频配置)
|
|
// 项目配置类型 (1:生图配置, 2:生视频配置)
|
|
CrtDramaProjectSettings settings_image = settingsDetail.stream().filter(item -> item.getDrama_project_setting_type() == 1).findFirst().orElse(null);
|
|
CrtDramaProjectSettings settings_image = settingsDetail.stream().filter(item -> item.getDrama_project_setting_type() == 1).findFirst().orElse(null);
|
|
CrtDramaProjectSettings settings_video = settingsDetail.stream().filter(item -> item.getDrama_project_setting_type() == 2).findFirst().orElse(null);
|
|
CrtDramaProjectSettings settings_video = settingsDetail.stream().filter(item -> item.getDrama_project_setting_type() == 2).findFirst().orElse(null);
|
|
- System.out.println("- 生图配置: " + JSONUtil.toJsonStr(settings_image));
|
|
|
|
- System.out.println("- 生视频配置: " + JSONUtil.toJsonStr(settings_video));
|
|
|
|
|
|
+ // System.out.println("- 生图配置: " + JSONUtil.toJsonStr(settings_image));
|
|
|
|
+ // System.out.println("- 生视频配置: " + JSONUtil.toJsonStr(settings_video));
|
|
|
|
+
|
|
|
|
|
|
- // 用于更新的参数实体类
|
|
|
|
- CrtDramaProjectStoryboard entity = new CrtDramaProjectStoryboard();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -119,10 +116,12 @@ public class CrtGenerateServiceImpl implements CrtGenerateService {
|
|
Convert.toStr(DateUtil.current()) :
|
|
Convert.toStr(DateUtil.current()) :
|
|
storyboardDetail.getParam_seed();
|
|
storyboardDetail.getParam_seed();
|
|
|
|
|
|
|
|
+ // [分集详情] 实体类
|
|
|
|
+ CrtDramaProjectStoryboard entity = new CrtDramaProjectStoryboard();
|
|
entity.setParam_seed(param_seed);
|
|
entity.setParam_seed(param_seed);
|
|
entity.setText_to_image_prompt(prompt_text);
|
|
entity.setText_to_image_prompt(prompt_text);
|
|
|
|
|
|
- // [db] 更新分集记录 (种子值、提示词)
|
|
|
|
|
|
+ // [db] 更新分集详情记录 (种子值、提示词)
|
|
LambdaQueryWrapper<CrtDramaProjectStoryboard> wrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<CrtDramaProjectStoryboard> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(CrtDramaProjectStoryboard::getId, drama_project_storyboard_id);
|
|
wrapper.eq(CrtDramaProjectStoryboard::getId, drama_project_storyboard_id);
|
|
crtDramaProjectStoryboardDao.update(entity, wrapper);
|
|
crtDramaProjectStoryboardDao.update(entity, wrapper);
|
|
@@ -135,8 +134,8 @@ public class CrtGenerateServiceImpl implements CrtGenerateService {
|
|
CrtModel modelDetail = crtModelDao.selectById(model_id);
|
|
CrtModel modelDetail = crtModelDao.selectById(model_id);
|
|
String model_name = modelDetail.getModel_name();
|
|
String model_name = modelDetail.getModel_name();
|
|
|
|
|
|
- // 风格 Lora?
|
|
|
|
- // 风格 Lora (阙值)?
|
|
|
|
|
|
+ // 风格 Lora 待定
|
|
|
|
+ // 风格 Lora (阙值)待定
|
|
|
|
|
|
// ===========================================================================================================
|
|
// ===========================================================================================================
|
|
|
|
|
|
@@ -145,26 +144,25 @@ public class CrtGenerateServiceImpl implements CrtGenerateService {
|
|
// -- [ComfyUI] 创建 WebSocket 监听连接 --------------------------
|
|
// -- [ComfyUI] 创建 WebSocket 监听连接 --------------------------
|
|
Map<String, Object> params = new LinkedHashMap<>();
|
|
Map<String, Object> params = new LinkedHashMap<>();
|
|
params.put("drama_project_storyboard_id", drama_project_storyboard_id);
|
|
params.put("drama_project_storyboard_id", drama_project_storyboard_id);
|
|
- comfyUISocketService.connectToSse(client_id, 8000, params).subscribe();
|
|
|
|
|
|
+ // - is_save: 是否转存到 cos/tos
|
|
|
|
+ comfyUISocketService.connectToSse(client_id, 8000, false, params).subscribe();
|
|
|
|
|
|
// -- [ComfyUI] 生图参数 ----------------------------------------
|
|
// -- [ComfyUI] 生图参数 ----------------------------------------
|
|
- Text2Image text2Image = new Text2Image();
|
|
|
|
- text2Image.setBatch_size(param_batch_size);
|
|
|
|
- text2Image.setPrompt_flux_guidance(param_prompt_flux_guidance);
|
|
|
|
- text2Image.setSampler(param_sampler);
|
|
|
|
- text2Image.setStep(param_step);
|
|
|
|
-// text2Image.setWidth(width);
|
|
|
|
- text2Image.setWidth(400);
|
|
|
|
-// text2Image.setHeight(height);
|
|
|
|
- text2Image.setHeight(200);
|
|
|
|
- text2Image.setModel_name(model_name);
|
|
|
|
- text2Image.setPrompt_text(prompt_text);
|
|
|
|
- text2Image.setSeed(param_seed);
|
|
|
|
|
|
+ ComfyuiText2Image comfyuiText2Image = new ComfyuiText2Image();
|
|
|
|
+ comfyuiText2Image.setBatch_size(param_batch_size);
|
|
|
|
+ comfyuiText2Image.setPrompt_flux_guidance(param_prompt_flux_guidance);
|
|
|
|
+ comfyuiText2Image.setSampler(param_sampler);
|
|
|
|
+ comfyuiText2Image.setStep(param_step);
|
|
|
|
+ comfyuiText2Image.setWidth(width);
|
|
|
|
+ comfyuiText2Image.setHeight(height);
|
|
|
|
+ comfyuiText2Image.setModel_name(model_name);
|
|
|
|
+ comfyuiText2Image.setPrompt_text(prompt_text);
|
|
|
|
+ comfyuiText2Image.setSeed(param_seed);
|
|
|
|
|
|
// -- [ComfyUI] 生图 --------------------------------------------
|
|
// -- [ComfyUI] 生图 --------------------------------------------
|
|
- CFPromptResponse response = text2ImageService.generateText2Image(client_id, text2Image);
|
|
|
|
|
|
+ ComfyuiResponse response = comfyuiText2ImageService.generateText2Image(client_id, comfyuiText2Image);
|
|
System.out.println("结果: " + response);
|
|
System.out.println("结果: " + response);
|
|
- // 结果: CFPromptResponse(client_id=1a8a2d01-5500-437f-bb11-7a986130da48, prompt_id=c74501ed-6755-48f8-a440-aef3474b523c, number=47, node_errors={}, error=null)
|
|
|
|
|
|
+ // 结果: ComfyuiResponse(client_id=1a8a2d01-5500-437f-bb11-7a986130da48, prompt_id=c74501ed-6755-48f8-a440-aef3474b523c, number=47, node_errors={}, error=null)
|
|
|
|
|
|
Map<String, Object> resp = new LinkedHashMap<>();
|
|
Map<String, Object> resp = new LinkedHashMap<>();
|
|
resp.put("drama_project_storyboard_id", drama_project_storyboard_id);
|
|
resp.put("drama_project_storyboard_id", drama_project_storyboard_id);
|