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 27 private String model;
28 28  
29 29 @Schema(description = "图片宽度 --ar 设置")
30   - private String width;
  30 + private Integer width;
31 31  
32 32 @Schema(description = "图片高度 --ar 设置")
33   - private String height;
  33 + private Integer height;
34 34  
35 35 @Schema(description = "版本号 --v 设置")
36 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 92 * 2. {@link StabilityAiImageOptions}
93 93 */
94 94 @TableField(typeHandler = JacksonTypeHandler.class)
95   - private Map<String, String> options;
  95 + private Map<String, Object> options;
96 96  
97 97 /**
98 98 * 绘画 response
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java
1 1 package cn.iocoder.yudao.module.ai.service.image;
2 2  
  3 +import cn.hutool.core.bean.BeanUtil;
3 4 import cn.hutool.core.codec.Base64;
4 5 import cn.hutool.core.exceptions.ExceptionUtil;
5 6 import cn.hutool.core.map.MapUtil;
... ... @@ -138,9 +139,9 @@ public class AiImageServiceImpl implements AiImageService {
138 139 aiImageDO.setUserId(loginUserId);
139 140 aiImageDO.setPrompt(req.getPrompt());
140 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 145 aiImageDO.setStatus(AiImageStatusEnum.IN_PROGRESS.getStatus());
145 146 // 2、保存 image
146 147 imageMapper.insert(aiImageDO);
... ... @@ -156,15 +157,23 @@ public class AiImageServiceImpl implements AiImageService {
156 157 if (!MidjourneySubmitCodeEnum.SUCCESS_CODES.contains(submitRespVO.getCode())) {
157 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 168 imageMapper.updateById(new AiImageDO()
160 169 .setId(aiImageDO.getId())
161 170 .setTaskId(submitRespVO.getResult())
  171 + .setOptions(BeanUtil.beanToMap(imageOptions))
162 172 );
163 173 return aiImageDO.getId();
164 174 }
165 175  
166 176  
167   -
168 177 @Override
169 178 public void deleteImageMy(Long id, Long userId) {
170 179 // 1. 校验是否存在
... ... @@ -269,7 +278,7 @@ public class AiImageServiceImpl implements AiImageService {
269 278 * @param model
270 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 282 StringBuilder params = new StringBuilder();
274 283 // --ar 来设置尺寸
275 284 params.append(String.format(" --ar %s:%s ", width, height));
... ...