Commit 8727c4de92bcd04dc47dc82c44f81f8a5cf864f4

Authored by cherishsince
1 parent fb055bfb

【优化】Midjourney 提交任务 保存 ImageOptions

yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageMidjourneyImagineReqVO.java
@@ -27,10 +27,10 @@ public class AiImageMidjourneyImagineReqVO { @@ -27,10 +27,10 @@ public class AiImageMidjourneyImagineReqVO {
27 private String model; 27 private String model;
28 28
29 @Schema(description = "图片宽度 --ar 设置") 29 @Schema(description = "图片宽度 --ar 设置")
30 - private String width; 30 + private Integer width;
31 31
32 @Schema(description = "图片高度 --ar 设置") 32 @Schema(description = "图片高度 --ar 设置")
33 - private String height; 33 + private Integer height;
34 34
35 @Schema(description = "版本号 --v 设置") 35 @Schema(description = "版本号 --v 设置")
36 private String version; 36 private String version;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/image/AiImageDO.java
@@ -92,7 +92,7 @@ public class AiImageDO extends BaseDO { @@ -92,7 +92,7 @@ public class AiImageDO extends BaseDO {
92 * 2. {@link StabilityAiImageOptions} 92 * 2. {@link StabilityAiImageOptions}
93 */ 93 */
94 @TableField(typeHandler = JacksonTypeHandler.class) 94 @TableField(typeHandler = JacksonTypeHandler.class)
95 - private Map<String, String> options; 95 + private Map<String, Object> options;
96 96
97 /** 97 /**
98 * 绘画 response 98 * 绘画 response
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java
1 package cn.iocoder.yudao.module.ai.service.image; 1 package cn.iocoder.yudao.module.ai.service.image;
2 2
  3 +import cn.hutool.core.bean.BeanUtil;
3 import cn.hutool.core.codec.Base64; 4 import cn.hutool.core.codec.Base64;
4 import cn.hutool.core.exceptions.ExceptionUtil; 5 import cn.hutool.core.exceptions.ExceptionUtil;
5 import cn.hutool.core.map.MapUtil; 6 import cn.hutool.core.map.MapUtil;
@@ -138,9 +139,9 @@ public class AiImageServiceImpl implements AiImageService { @@ -138,9 +139,9 @@ public class AiImageServiceImpl implements AiImageService {
138 aiImageDO.setUserId(loginUserId); 139 aiImageDO.setUserId(loginUserId);
139 aiImageDO.setPrompt(req.getPrompt()); 140 aiImageDO.setPrompt(req.getPrompt());
140 aiImageDO.setPlatform(AiPlatformEnum.MIDJOURNEY.getPlatform()); 141 aiImageDO.setPlatform(AiPlatformEnum.MIDJOURNEY.getPlatform());
141 - aiImageDO.setModel(null);  
142 - aiImageDO.setWidth(null);  
143 - aiImageDO.setHeight(null); 142 + aiImageDO.setModel(req.getModel());
  143 + aiImageDO.setWidth(req.getWidth());
  144 + aiImageDO.setHeight(req.getHeight());
144 aiImageDO.setStatus(AiImageStatusEnum.IN_PROGRESS.getStatus()); 145 aiImageDO.setStatus(AiImageStatusEnum.IN_PROGRESS.getStatus());
145 // 2、保存 image 146 // 2、保存 image
146 imageMapper.insert(aiImageDO); 147 imageMapper.insert(aiImageDO);
@@ -156,15 +157,23 @@ public class AiImageServiceImpl implements AiImageService { @@ -156,15 +157,23 @@ public class AiImageServiceImpl implements AiImageService {
156 if (!MidjourneySubmitCodeEnum.SUCCESS_CODES.contains(submitRespVO.getCode())) { 157 if (!MidjourneySubmitCodeEnum.SUCCESS_CODES.contains(submitRespVO.getCode())) {
157 throw exception(AI_IMAGE_MIDJOURNEY_SUBMIT_FAIL, submitRespVO.getDescription()); 158 throw exception(AI_IMAGE_MIDJOURNEY_SUBMIT_FAIL, submitRespVO.getDescription());
158 } 159 }
  160 + // 7、构建 imageOptions 参数
  161 + MidjourneyImageOptions imageOptions = new MidjourneyImageOptions()
  162 + .setWidth(req.getWidth())
  163 + .setHeight(req.getHeight())
  164 + .setModel(req.getModel())
  165 + .setVersion(req.getVersion())
  166 + .setState(imagineReqVO.getState());
  167 + // 8、更新 taskId 和参数
159 imageMapper.updateById(new AiImageDO() 168 imageMapper.updateById(new AiImageDO()
160 .setId(aiImageDO.getId()) 169 .setId(aiImageDO.getId())
161 .setTaskId(submitRespVO.getResult()) 170 .setTaskId(submitRespVO.getResult())
  171 + .setOptions(BeanUtil.beanToMap(imageOptions))
162 ); 172 );
163 return aiImageDO.getId(); 173 return aiImageDO.getId();
164 } 174 }
165 175
166 176
167 -  
168 @Override 177 @Override
169 public void deleteImageMy(Long id, Long userId) { 178 public void deleteImageMy(Long id, Long userId) {
170 // 1. 校验是否存在 179 // 1. 校验是否存在
@@ -269,7 +278,7 @@ public class AiImageServiceImpl implements AiImageService { @@ -269,7 +278,7 @@ public class AiImageServiceImpl implements AiImageService {
269 * @param model 278 * @param model
270 * @return 279 * @return
271 */ 280 */
272 - private String buildParams(String width, String height, String version, MidjourneyModelEnum model) { 281 + private String buildParams(Integer width, Integer height, String version, MidjourneyModelEnum model) {
273 StringBuilder params = new StringBuilder(); 282 StringBuilder params = new StringBuilder();
274 // --ar 来设置尺寸 283 // --ar 来设置尺寸
275 params.append(String.format(" --ar %s:%s ", width, height)); 284 params.append(String.format(" --ar %s:%s ", width, height));