Skip to content

Commit d4e8de3

Browse files
author
zhukai
committed
feat: 支持mysql存储
1 parent bf0d23b commit d4e8de3

File tree

2 files changed

+51
-43
lines changed

2 files changed

+51
-43
lines changed

README.md

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
- [x] Imagine 时支持添加图片base64,作为垫图
88
- [x] 支持 Blend(图片混合)、Describe(图生文) 指令
99
- [x] 支持任务实时进度
10-
- [x] 支持中英文翻译,需配置百度翻译或gpt
11-
- [x] prompt 敏感词判断,支持覆盖调整
10+
- [x] 支持中文prompt翻译,需配置百度翻译或gpt
11+
- [x] prompt 敏感词预检测,支持覆盖调整
1212
- [x] user-token 连接 wss,可以获取错误信息和完整功能
13-
- [x] 支持 discord域名(server、cdn、wss)反代,配置 mj.ng-discord
14-
- [x] 支持账号池,每个账号可设置对应的任务队列(参考 [MidJourney订阅级别](https://docs.midjourney.com/docs/plans) 调整)
13+
- [x] 支持多账号配置,每个账号可设置对应的任务队列(参考 [MidJourney订阅级别](https://docs.midjourney.com/docs/plans) 调整)
14+
- [x] 任务存储支持内存、Redis
1515

1616
## 先行版功能
1717
- [x] 支持开源版的所有功能
@@ -21,17 +21,13 @@
2121
- [x] 支持局部重绘: Vary (Region) 🖌
2222
- [x] 支持几乎所有的关联按钮动作和🎛️ Remix模式,参考 [API接口说明-执行动作](./docs/api.md#3-%E6%89%A7%E8%A1%8C%E4%BB%BB%E5%8A%A1%E7%9A%84%E5%85%B3%E8%81%94%E5%8A%A8%E4%BD%9C)
2323
- [x] 支持获取图片的seed值
24-
- [x] 中英文翻译额外支持deepl
2524
- [x] 账号池持久化,动态维护
25+
- [x] 账号、任务存储支持内存、Redis、MySQL
2626
- [x] 支持获取账号/info、/settings信息
2727
- [x] 账号settings设置
2828
- [x] 内嵌 [管理后台页面](https://github.com/litter-coder/midjourney-proxy-admin)
2929

3030

31-
## 后续计划
32-
- [ ] 任务、账号存储支持MySQL
33-
- [ ] 取消执行中或排队的任务
34-
3531
## 获取方式
3632

3733
扫码获取,备注mj先行版
@@ -51,10 +47,10 @@
5147

5248
## 配置项
5349
- mj.accounts: 参考 [账号池配置](./docs/config.md#%E8%B4%A6%E5%8F%B7%E6%B1%A0%E9%85%8D%E7%BD%AE%E5%8F%82%E8%80%83)
54-
- mj.account-store-type: 账号存储方式,默认in_memory(内存\重启后丢失),可选redis
55-
- mj.task-store.type: 任务存储方式,默认in_memory(内存\重启后丢失),可选redis
56-
- mj.task-store.timeout: 任务存储过期时间,过期后删除,默认30天
50+
- mj.account-store-type: 账号存储方式,默认in_memory(内存\重启后丢失),可选redis、mysql
51+
- mj.task-store.type: 任务存储方式,默认in_memory(内存\重启后丢失),可选redis、mysql
52+
- mj.task-store.timeout: 任务存储过期时间,过期后删除,默认30天。mysql存储不生效
5753
- mj.api-secret: 接口密钥,为空不启用鉴权;调用接口时需要加请求头 mj-api-secret
5854
- mj.translate-way: 中文prompt翻译成英文的方式,可选null(默认)、baidu、gpt、deepl
5955
- mj.translate-zh-way: describe、shorten等结果翻译成中文的方式,可选null(默认)、baidu、gpt、deepl
60-
- redis、翻译或更多配置查看 [配置项](./docs/config.md)
56+
- redis、mysql、翻译或更多配置查看 [配置项](./docs/config.md)

docs/config.md

Lines changed: 42 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
## 配置项
22

3-
| 变量名 | 非空 | 描述 |
4-
|:------------------------------| :----: | :---- |
3+
| 变量名 | 非空 | 描述 |
4+
|:------------------------------| :----: |:-------------------------------------------------------------------------------------------------------------|
55
| mj.accounts || 参考 [账号池配置](./config.md#%E8%B4%A6%E5%8F%B7%E6%B1%A0%E9%85%8D%E7%BD%AE%E5%8F%82%E8%80%83),配置后不需要额外设置mj.discord |
6-
| mj.account-store-type || 账号存储方式,默认in_memory(内存\重启后丢失),可选redis |
7-
| mj.account-choose-rule || 账号选择策略:默认 BestWaitIdleRule(最少等待空闲)、RoundRobinRule(轮循) |
8-
| mj.api-secret || 接口密钥,为空不启用鉴权;调用接口时需要加请求头 mj-api-secret |
9-
| mj.username || 后台管理登录的用户名 |
10-
| mj.password || 后台管理登录的密码,默认为接口密钥(两者均未设置默认admin) |
11-
| mj.task-store.type || 任务存储方式,默认in_memory(内存\重启后丢失),可选redis |
12-
| mj.task-store.timeout || 任务存储过期时间,过期后删除,默认30天 |
13-
| mj.notify-hook || 全局的任务状态变更回调地址 |
14-
| mj.notify-notify-pool-size || 通知回调线程池大小,默认10 |
15-
| mj.proxy.host || 代理host,全局代理不生效时设置 |
16-
| mj.proxy.port || 代理port,全局代理不生效时设置 |
17-
| mj.ng-discord.server || https://discord.com 反代地址 |
18-
| mj.ng-discord.cdn || https://cdn.discordapp.com 反代地址 |
19-
| mj.ng-discord.wss || wss://gateway.discord.gg 反代地址 |
20-
| mj.ng-discord.resume-wss || wss://gateway-us-east1-b.discord.gg 反代地址 |
21-
| mj.translate-way || 中文prompt翻译成英文的方式,可选null(默认)、baidu、gpt、deepl |
22-
| mj.translate-zh-way || describe、shorten等结果转中文的方式,可选null(默认)、baidu、gpt、deepl |
23-
| mj.baidu-translate.appid || 百度翻译的appid |
24-
| mj.baidu-translate.app-secret || 百度翻译的app-secret |
25-
| mj.openai.gpt-api-url || 自定义gpt的接口地址,默认不需要配置 |
26-
| mj.openai.gpt-api-key || gpt的api-key |
27-
| mj.openai.timeout || openai调用的超时时间,默认30秒 |
28-
| mj.openai.model || openai的模型,默认gpt-3.5-turbo |
29-
| mj.openai.max-tokens || 返回结果的最大分词数,默认2048 |
30-
| mj.openai.temperature || 相似度(0-2.0),默认0 |
31-
| mj.deepl-translate.auth-key || DEEPL翻译的鉴权密钥 |
32-
| mj.error-desc || 任务错误原因转换,默认使用mj提供的英文描述 |
33-
| spring.redis || 存储方式设置为redis,需配置redis相关属性 |
6+
| mj.account-store-type || 账号存储方式,默认in_memory(内存\重启后丢失),可选redis、mysql |
7+
| mj.account-choose-rule || 账号选择策略:默认 BestWaitIdleRule(最少等待空闲)、RoundRobinRule(轮循) |
8+
| mj.api-secret || 接口密钥,为空不启用鉴权;调用接口时需要加请求头 mj-api-secret |
9+
| mj.username || 后台管理登录的用户名 |
10+
| mj.password || 后台管理登录的密码,默认为接口密钥(两者均未设置默认admin) |
11+
| mj.task-store.type || 任务存储方式,默认in_memory(内存\重启后丢失),可选redis、mysql |
12+
| mj.task-store.timeout || 任务存储过期时间,过期后删除,默认30天 |
13+
| mj.notify-hook || 全局的任务状态变更回调地址 |
14+
| mj.notify-notify-pool-size || 通知回调线程池大小,默认10 |
15+
| mj.proxy.host || 代理host,全局代理不生效时设置 |
16+
| mj.proxy.port || 代理port,全局代理不生效时设置 |
17+
| mj.ng-discord.server || https://discord.com 反代地址 |
18+
| mj.ng-discord.cdn || https://cdn.discordapp.com 反代地址 |
19+
| mj.ng-discord.wss || wss://gateway.discord.gg 反代地址 |
20+
| mj.ng-discord.resume-wss || wss://gateway-us-east1-b.discord.gg 反代地址 |
21+
| mj.translate-way || 中文prompt翻译成英文的方式,可选null(默认)、baidu、gpt、deepl |
22+
| mj.translate-zh-way || describe、shorten等结果转中文的方式,可选null(默认)、baidu、gpt、deepl |
23+
| mj.baidu-translate.appid || 百度翻译的appid |
24+
| mj.baidu-translate.app-secret || 百度翻译的app-secret |
25+
| mj.openai.gpt-api-url || 自定义gpt的接口地址,默认不需要配置 |
26+
| mj.openai.gpt-api-key || gpt的api-key |
27+
| mj.openai.timeout || openai调用的超时时间,默认30秒 |
28+
| mj.openai.model || openai的模型,默认gpt-3.5-turbo |
29+
| mj.openai.max-tokens || 返回结果的最大分词数,默认2048 |
30+
| mj.openai.temperature || 相似度(0-2.0),默认0 |
31+
| mj.deepl-translate.auth-key || DEEPL翻译的鉴权密钥 |
32+
| mj.error-desc || 任务错误原因转换,默认使用mj提供的英文描述 |
33+
| spring.redis || 存储方式设置为redis,需配置redis相关属性 |
3434

3535
### 账号池配置参考
3636
```yaml
@@ -72,6 +72,18 @@ spring:
7272
password: xxx
7373
```
7474
75+
### mysql配置参考
76+
77+
> 需要mysql8.0以上版本,注意用户名字段为 user
78+
```yaml
79+
spring:
80+
datasource:
81+
driver-class-name: com.mysql.cj.jdbc.Driver
82+
url: jdbc:mysql://localhost:3306/mj_proxy?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false
83+
user: root
84+
password: novice@123
85+
```
86+
7587
### mj.error-desc配置参考
7688
```yaml
7789
mj:

0 commit comments

Comments
 (0)