Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐少华
midjourney-proxy
Commits
8d724f10
Commit
8d724f10
authored
Jul 28, 2023
by
xushaohua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:部署
parent
4adf1a63
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
61 additions
and
7 deletions
+61
-7
SubmitController.java
...thub/novicezk/midjourney/controller/SubmitController.java
+10
-7
SubmitImagineDTO.java
.../com/github/novicezk/midjourney/dto/SubmitImagineDTO.java
+3
-0
DataURIUtil.java
...java/com/github/novicezk/midjourney/util/DataURIUtil.java
+43
-0
MimeTypeUtils.java
...va/com/github/novicezk/midjourney/util/MimeTypeUtils.java
+4
-0
mime.types
midjourney-proxy/src/main/resources/mime.types
+1
-0
No files found.
midjourney-proxy/src/main/java/com/github/novicezk/midjourney/controller/SubmitController.java
View file @
8d724f10
...
...
@@ -19,10 +19,7 @@ import com.github.novicezk.midjourney.service.TaskStoreService;
import
com.github.novicezk.midjourney.service.TranslateService
;
import
com.github.novicezk.midjourney.support.Task
;
import
com.github.novicezk.midjourney.support.TaskCondition
;
import
com.github.novicezk.midjourney.util.BannedPromptUtils
;
import
com.github.novicezk.midjourney.util.ConvertUtils
;
import
com.github.novicezk.midjourney.util.MimeTypeUtils
;
import
com.github.novicezk.midjourney.util.TaskChangeParams
;
import
com.github.novicezk.midjourney.util.*
;
import
eu.maxschuster.dataurl.DataUrl
;
import
eu.maxschuster.dataurl.DataUrlSerializer
;
import
eu.maxschuster.dataurl.IDataUrlSerializer
;
...
...
@@ -37,8 +34,12 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.io.ByteArrayOutputStream
;
import
java.io.InputStream
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
java.util.ArrayList
;
import
java.util.Base64
;
import
java.util.List
;
import
java.util.Set
;
...
...
@@ -78,10 +79,12 @@ public class SubmitController {
return
SubmitResultVO
.
fail
(
ReturnCode
.
BANNED_PROMPT
,
"可能包含敏感词"
);
}
DataUrl
dataUrl
=
null
;
if
(
CharSequenceUtil
.
isNotBlank
(
imagineDTO
.
getBase64
()))
{
IDataUrlSerializer
serializer
=
new
DataUrlSerializer
();
String
imageUrl
=
imagineDTO
.
getImageUrl
();
if
(
CharSequenceUtil
.
isNotBlank
(
imageUrl
))
{
String
base64FromImageUrl
=
DataURIUtil
.
getBase64FromImageUrl
(
imageUrl
);
IDataUrlSerializer
serializer
=
new
DataUrlSerializer
();
try
{
dataUrl
=
serializer
.
unserialize
(
imagineDTO
.
getBase64
()
);
dataUrl
=
serializer
.
unserialize
(
base64FromImageUrl
);
}
catch
(
MalformedURLException
e
)
{
return
SubmitResultVO
.
fail
(
ReturnCode
.
VALIDATION_ERROR
,
"basisImageBase64格式错误"
);
}
...
...
midjourney-proxy/src/main/java/com/github/novicezk/midjourney/dto/SubmitImagineDTO.java
View file @
8d724f10
...
...
@@ -17,4 +17,7 @@ public class SubmitImagineDTO extends BaseSubmitDTO {
@ApiModelProperty
(
value
=
"垫图base64"
)
private
String
base64
;
@ApiModelProperty
(
value
=
"垫图url"
)
private
String
imageUrl
;
}
midjourney-proxy/src/main/java/com/github/novicezk/midjourney/util/DataURIUtil.java
0 → 100644
View file @
8d724f10
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
""
;
}
}
midjourney-proxy/src/main/java/com/github/novicezk/midjourney/util/MimeTypeUtils.java
View file @
8d724f10
...
...
@@ -42,4 +42,8 @@ public class MimeTypeUtils {
return
suffixList
.
iterator
().
next
();
}
public
static
void
main
(
String
[]
args
)
{
guessFileSuffix
(
"image/jpg"
);
}
}
midjourney-proxy/src/main/resources/mime.types
View file @
8d724f10
...
...
@@ -18,6 +18,7 @@ image/x-jng:jng
image/x-ms-bmp:bmp
image/svg+xml:svg svgz
image/webp:webp
image/jpg:jpg
application/javascript:js
application/x-javascript:js
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment