发现了一个很好的项目github.com/Licoy/ChatG… 。
效果:
基本上等于Discord的功能里,可以发imagine命令,可以使用u/v选图,可以垫图、识图、混图,功能很全了。
- 原
ChatGPT-Next-Web所有功能 - midjourney
imgine想象 - midjourney
upscale放大 - midjourney
variation变幻 - midjourney
describe识图 - midjourney
blend混图 - midjourney 垫图
- 绘图进度百分比、实时图像显示
并且这个项目基于github.com/Yidadaa/Cha… ,有非常好的GPT体验。
我使用的Docker部署,所以下面主要写我在使用Docker部署时遇到的各种坑以及解决过程。
主要复制了Docker部署的说明,其他方法去Git中看吧。
部署说明
midjourney-proxy 服务部署
先部署Midjourney-Proxy,下面部署ChatGPT-Midjourney时需要用到这个地址,运行 midjourney-proxy (Midjourney API服务,更多参数配置可以参考: Midjourney-Proxy ,使用Discord Bot实现Midjourney调用)
docker run -d --name midjourney-proxy \
-p 8080:8080 \
-e mj.discord.guild-id=xxx \
-e mj.discord.channel-id=xxx \
-e mj.discord.user-token=xxx \
-e mj.discord.bot-token=xxx \
-e mj.proxy.host=xxx \
-e mj.proxy.port=xxx \
--restart=always \
novicezk/midjourney-proxy:2.3
| 变量名 | 非空 | 描述 |
|---|---|---|
| mj.discord.guild-id | 是 | discord服务器ID |
| mj.discord.channel-id | 是 | discord频道ID |
| mj.discord.user-token | 是 | discord用户Token |
| mj.discord.session-id | 否 | discord用户SessionId,建议从interactions请求中复制替换掉 |
| mj.discord.user-agent | 否 | 调用discord接口、连接wss时的user-agent,建议从浏览器network复制 |
| mj.discord.user-wss | 否 | 是否使用user-token连接wss,默认启用 |
| mj.discord.bot-token | 否 | 自定义机器人Token,user-wss=false时必填 |
| mj.api-secret | 否 | 接口密钥,为空不启用鉴权;调用接口时需要加请求头 mj-api-secret |
| mj.notify-hook | 否 | 全局的任务状态变更回调地址 |
| mj.task-store.type | 否 | 任务存储方式,默认in_memory(内存\重启后丢失),可选redis |
| mj.task-store.timeout | 否 | 任务过期时间,过期后删除,默认30天 |
| mj.queue.core-size | 否 | 并发数,默认为3 |
| mj.queue.queue-size | 否 | 等待队列,默认长度10 |
| mj.queue.timeout-minutes | 否 | 任务超时时间,默认为5分钟 |
| mj.proxy.host | 否 | 代理host,全局代理不生效时设置 |
| mj.proxy.port | 否 | 代理port,全局代理不生效时设置 |
| mj.ng-discord.server | 否 | discord.com 反代地址 |
| mj.ng-discord.cdn | 否 | cdn.discordapp.com 反代地址 |
| mj.ng-discord.wss | 否 | wss://gateway.discord.gg 反代地址 |
| mj.translate-way | 否 | 中文prompt翻译方式,可选null(默认)、baidu、gpt |
| mj.baidu-translate.appid | 否 | 百度翻译的appid |
| mj.baidu-translate.app-secret | 否 | 百度翻译的app-secret |
| mj.openai.gpt-api-key | 否 | gpt的api-key |
| mj.openai.timeout | 否 | openai调用的超时时间,默认30秒 |
| mj.openai.model | 否 | openai的模型,默认gpt-3.5-turbo |
| mj.openai.max-tokens | 否 | 返回结果的最大分词数,默认2048 |
| mj.openai.temperature | 否 | 相似度(0-2.0),默认0 |
| spring.redis | 否 | 任务存储方式设置为redis,需配置redis相关属性 |
注意: 我试了使用gpt翻译,没什么用,先老老实实的写英文命令吧。
ChatGPT-Midjourney 前端部署
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY="sk-xxx" \
-e CODE="123456" \
-e BASE_URL="https://api.openai.com" \
-e MIDJOURNEY_PROXY_URL="http://ip:port" \
--net=host \
-e PROXY_URL="http://127.0.0.1:7890" \
licoy/chatgpt-midjourney:v1.3.8
| 参数 | 说明 |
|---|---|
| OPENAI_API_KEY | OpenAI的token |
| CODE | 页面的访问密码,最好加一个,省的被人传外面后被Token爆破 |
| BASE_URL | api.openai.com |
| MIDJOURNEY_PROXY_URL | MidjourneyProxy的访问地址 |
| PROXY_URL | 魔法的代理地址,用猫是7890,纸飞机是1080 |
如果你的本地代理需要账号密码,可以使用:
-e PROXY_URL="http://127.0.0.1:7890 user password"
效果
这就是不说英文的坏处,要一只狗,给了一条龙和一个姑娘。