Commit 8727c4de92bcd04dc47dc82c44f81f8a5cf864f4
1 parent
fb055bfb
【优化】Midjourney 提交任务 保存 ImageOptions
Showing
3 changed files
with
17 additions
and
8 deletions
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)); |