|
@@ -4,6 +4,8 @@ import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.iocoder.yudao.framework.ai.midjourney.MidjourneyConfig;
|
|
|
import cn.iocoder.yudao.framework.ai.midjourney.constants.MjInteractionsEnum;
|
|
|
+import cn.iocoder.yudao.framework.ai.midjourney.vo.ReRoll;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.Maps;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
@@ -12,7 +14,7 @@ import java.util.List;
|
|
|
import java.util.UUID;
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
+ * 图片生成
|
|
|
*
|
|
|
* author: fansili
|
|
|
* time: 2024/4/3 17:36
|
|
@@ -28,7 +30,7 @@ public class MjImagineInteractions implements MjInteractions {
|
|
|
|
|
|
@Override
|
|
|
public List<MjInteractionsEnum> supperInteractions() {
|
|
|
- return null;
|
|
|
+ return Lists.newArrayList(MjInteractionsEnum.IMAGINE);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -40,7 +42,7 @@ public class MjImagineInteractions implements MjInteractions {
|
|
|
HashMap<String, String> requestParams = Maps.newHashMap();
|
|
|
requestParams.put("guild_id", midjourneyConfig.getGuildId());
|
|
|
requestParams.put("channel_id", midjourneyConfig.getChannelId());
|
|
|
- requestParams.put("session_id", UUID.randomUUID().toString().replaceAll("-", ""));
|
|
|
+ requestParams.put("session_id", midjourneyConfig.getSessionId());
|
|
|
requestParams.put("nonce", String.valueOf(IdUtil.getSnowflakeNextId()));
|
|
|
requestParams.put("prompt", prompt);
|
|
|
// 设置参数
|
|
@@ -55,4 +57,29 @@ public class MjImagineInteractions implements MjInteractions {
|
|
|
log.error("请求失败! 请求参数:{} 返回结果! {}", requestBody, res);
|
|
|
return isSuccess;
|
|
|
}
|
|
|
+
|
|
|
+ public Boolean reRoll(ReRoll reRoll) {
|
|
|
+ String url = midjourneyConfig.getServerUrl().concat(midjourneyConfig.getApiInteractions());
|
|
|
+ // 获取请求模板
|
|
|
+ String requestTemplate = midjourneyConfig.getRequestTemplates().get("reroll");
|
|
|
+ // 设置参数
|
|
|
+ HashMap<String, String> requestParams = Maps.newHashMap();
|
|
|
+ requestParams.put("guild_id", midjourneyConfig.getGuildId());
|
|
|
+ requestParams.put("channel_id", midjourneyConfig.getChannelId());
|
|
|
+ requestParams.put("session_id", midjourneyConfig.getSessionId());
|
|
|
+ requestParams.put("nonce", String.valueOf(IdUtil.getSnowflakeNextId()));
|
|
|
+ requestParams.put("custom_id", reRoll.getCustomId());
|
|
|
+ requestParams.put("message_id", reRoll.getMessageId());
|
|
|
+ // 设置参数
|
|
|
+ String requestBody = MjClient.setParams(requestTemplate, requestParams);
|
|
|
+ // 发送请求
|
|
|
+ String res = MjClient.post(url, midjourneyConfig.getToken(), requestBody);
|
|
|
+ // 这个 res 只要不返回值,就是成功!
|
|
|
+ boolean isSuccess = StrUtil.isBlank(res);
|
|
|
+ if (isSuccess) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ log.error("请求失败! 请求参数:{} 返回结果! {}", requestBody, res);
|
|
|
+ return isSuccess;
|
|
|
+ }
|
|
|
}
|