Commit 8d724f10 by xushaohua

feat:部署

parent 4adf1a63
...@@ -19,10 +19,7 @@ import com.github.novicezk.midjourney.service.TaskStoreService; ...@@ -19,10 +19,7 @@ import com.github.novicezk.midjourney.service.TaskStoreService;
import com.github.novicezk.midjourney.service.TranslateService; import com.github.novicezk.midjourney.service.TranslateService;
import com.github.novicezk.midjourney.support.Task; import com.github.novicezk.midjourney.support.Task;
import com.github.novicezk.midjourney.support.TaskCondition; import com.github.novicezk.midjourney.support.TaskCondition;
import com.github.novicezk.midjourney.util.BannedPromptUtils; import com.github.novicezk.midjourney.util.*;
import com.github.novicezk.midjourney.util.ConvertUtils;
import com.github.novicezk.midjourney.util.MimeTypeUtils;
import com.github.novicezk.midjourney.util.TaskChangeParams;
import eu.maxschuster.dataurl.DataUrl; import eu.maxschuster.dataurl.DataUrl;
import eu.maxschuster.dataurl.DataUrlSerializer; import eu.maxschuster.dataurl.DataUrlSerializer;
import eu.maxschuster.dataurl.IDataUrlSerializer; import eu.maxschuster.dataurl.IDataUrlSerializer;
...@@ -37,8 +34,12 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -37,8 +34,12 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Base64;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
...@@ -78,10 +79,12 @@ public class SubmitController { ...@@ -78,10 +79,12 @@ public class SubmitController {
return SubmitResultVO.fail(ReturnCode.BANNED_PROMPT, "可能包含敏感词"); return SubmitResultVO.fail(ReturnCode.BANNED_PROMPT, "可能包含敏感词");
} }
DataUrl dataUrl = null; DataUrl dataUrl = null;
if (CharSequenceUtil.isNotBlank(imagineDTO.getBase64())) { String imageUrl = imagineDTO.getImageUrl();
if (CharSequenceUtil.isNotBlank(imageUrl)) {
String base64FromImageUrl = DataURIUtil.getBase64FromImageUrl(imageUrl);
IDataUrlSerializer serializer = new DataUrlSerializer(); IDataUrlSerializer serializer = new DataUrlSerializer();
try { try {
dataUrl = serializer.unserialize(imagineDTO.getBase64()); dataUrl = serializer.unserialize(base64FromImageUrl);
} catch (MalformedURLException e) { } catch (MalformedURLException e) {
return SubmitResultVO.fail(ReturnCode.VALIDATION_ERROR, "basisImageBase64格式错误"); return SubmitResultVO.fail(ReturnCode.VALIDATION_ERROR, "basisImageBase64格式错误");
} }
......
...@@ -17,4 +17,7 @@ public class SubmitImagineDTO extends BaseSubmitDTO { ...@@ -17,4 +17,7 @@ public class SubmitImagineDTO extends BaseSubmitDTO {
@ApiModelProperty(value = "垫图base64") @ApiModelProperty(value = "垫图base64")
private String base64; private String base64;
@ApiModelProperty(value = "垫图url")
private String imageUrl;
} }
package com.github.novicezk.midjourney.util;
import lombok.extern.slf4j.Slf4j;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.util.Base64;
@Slf4j
public class DataURIUtil {
/**
* 将在线图片地址转换成BASE64编码的 DataURI 形式
* @param imageUrl
* @return
*/
public static String getBase64FromImageUrl(String imageUrl) {
try {
URL url = new URL(imageUrl);
InputStream inputStream = url.openStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// 将图片数据读取到字节数组输出流
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
// 将字节数组输出流中的图片数据进行 Base64 编码
byte[] imageBytes = outputStream.toByteArray();
String base64Data = Base64.getEncoder().encodeToString(imageBytes);
// 构建 Data URI
String last = imageUrl.substring(imageUrl.lastIndexOf(".") + 1);
String mimeType = "image/" + last; // 替换为对应的 MIME 类型,根据图片类型可能是 "image/jpeg" 或 "image/gif" 等
String dataURI = "data:" + mimeType + ";base64," + base64Data;
return dataURI;
} catch (Exception e) {
log.error("将在线图片url转换成base64异常:{}", e);
}
return "";
}
}
...@@ -42,4 +42,8 @@ public class MimeTypeUtils { ...@@ -42,4 +42,8 @@ public class MimeTypeUtils {
return suffixList.iterator().next(); return suffixList.iterator().next();
} }
public static void main(String[] args) {
guessFileSuffix("image/jpg");
}
} }
...@@ -18,6 +18,7 @@ image/x-jng:jng ...@@ -18,6 +18,7 @@ image/x-jng:jng
image/x-ms-bmp:bmp image/x-ms-bmp:bmp
image/svg+xml:svg svgz image/svg+xml:svg svgz
image/webp:webp image/webp:webp
image/jpg:jpg
application/javascript:js application/javascript:js
application/x-javascript:js application/x-javascript:js
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment