使用心得:搭建ChatGPT-Midjourney,实现聊天加绘图

2,894 阅读3分钟

发现了一个很好的项目github.com/Licoy/ChatG…

效果:

image.png

基本上等于Discord的功能里,可以发imagine命令,可以使用u/v选图,可以垫图、识图、混图,功能很全了。

  •  原ChatGPT-Next-Web所有功能
  •  midjourney imgine 想象
  •  midjourney upscale 放大
  •  midjourney variation 变幻
  •  midjourney describe 识图
  •  midjourney blend 混图
  •  midjourney 垫图
  •  绘图进度百分比、实时图像显示

并且这个项目基于github.com/Yidadaa/Cha… ,有非常好的GPT体验。

image.png

我使用的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-iddiscord服务器ID
mj.discord.channel-iddiscord频道ID
mj.discord.user-tokendiscord用户Token
mj.discord.session-iddiscord用户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.serverdiscord.com 反代地址
mj.ng-discord.cdncdn.discordapp.com 反代地址
mj.ng-discord.wsswss://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-keygpt的api-key
mj.openai.timeoutopenai调用的超时时间,默认30秒
mj.openai.modelopenai的模型,默认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_KEYOpenAI的token
CODE页面的访问密码,最好加一个,省的被人传外面后被Token爆破
BASE_URLapi.openai.com
MIDJOURNEY_PROXY_URLMidjourneyProxy的访问地址
PROXY_URL魔法的代理地址,用猫是7890,纸飞机是1080

如果你的本地代理需要账号密码,可以使用:

-e PROXY_URL="http://127.0.0.1:7890 user password"

效果

image.png

这就是不说英文的坏处,要一只狗,给了一条龙和一个姑娘。