关于midjourney代理服务api搭建
由于midjourney官方并没有开放api接口调用,因此我们需要搭建一个服务来代理 MidJourney 的discord频道,实现api形式调用AI绘图。
需要准备:
1、一台能科学上网的服务器,可以和杜总的项目在同一个服务器下。
2、一个midjourney付费discord账号
安装步骤:
discord部分
如何购买midjourney账号和加入midjourney官方频道这里就不多说了,有需要的参考下官方的文档https://docs.midjourney.com/docs/quick-start
这里不多说了,我们需要创建一个自己的频道和机器人
在discord内添加一个自己的频道
邀请midjourney机器人到自己的频道
在midjourney官方频道找到midjourney机器人进行邀请
成功后在自己的频道就能看见Midjourney Bot,可以在自己频道用/imagine试一下。
创建添加discord机器人
我们需要创建一个自己的discord机器人来读取midjourney机器人的消息
网址:https://discord.com/developers/applications
刷新token后显示,即机器人Token,后续配置到 mj.discord.bot-token
如图勾选后,打开url进行授权
选择Midjourney Bot所在的服务器
勾上这两个选项,点击 Save Changes
进入频道,打开F12 选择network,然后在频道内随便发个消息,这里的 authorization 即用户Token,后续设置到 mj.discord.user-token
频道的url里取出 服务器ID、频道ID ,前者为服务器ID,后者为频道ID,后续配置到mj.discord.guild-id和mj.discord.channel-id
在频道中确认是否存在mj机器人和新创建的机器人,注意mj机器人名称为”Midjourney Bot”,不一致时需要改启动参数 mj.discord.mj-bot-name
到这里discord的部分就配置完成了。
服务部署
1、安装docker
服务部署用的方法是使用docker部署,因此我们需要在服务器内先安装一个docker。
宝塔安装
在宝塔面板的软件商店找到堡塔Docker模块进行安装。
安装完成后可以在首页找到对应模块,打开菜单左侧开关
在这个界面可以安装管理docker容器
服务器直接安装
参考https://docs.docker.com/engine/install/,选择自己的系统进行安装
2、服务部署
参考https://github.com/novicezk/midjourney-proxy/tree/main
(1)下载镜像
docker pull novicezk/midjourney-proxy:1.5.1
(2)启动容器,并设置参数
# 复制出 src/main/resources/application.yml,更改配置(黄色部分为一整段指令)
docker run -d –name midjourney-proxy \
-p 8080:8080 \
-v /home/xxx/data/application.yml:/home/spring/config/application.yml \
–restart=always \
novicezk/midjourney-proxy:1.5.1
# 或者直接在启动命令中设置参数(黄色部分为一整段指令)
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 \
–restart=always \
novicezk/midjourney-proxy:1.5.1
3、访问 http://ip:8080/mj 提示 “项目启动成功”
4、检查discord频道中新创建的机器人是否在线
5、调用api接口的根路径为 http://ip:port/mj
6、日志查看
建议:1、接口最好本地调用,如果需要远程调用的时候,建议开启防火墙IP白名单。
Midjourney本身不支持中文prompt,接口代理程序本身集成了百度翻译进行机翻,如果需要使用:
进入https://fanyi-api.baidu.com/manage/developer获取自己的APP ID和密钥
在启动指令中配置环境
-e mj.translate-way=baidu \
-e mj.baidu-translate.appid=XXX \
-e mj.baidu-translate.app-secret=XXX \
配好后的启动指令
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.translate-way=baidu \
-e mj.baidu-translate.appid=XXX \
-e mj.baidu-translate.app-secret=XXX \
–restart=always \
novicezk/midjourney-proxy:1.5.1
3、mj.discord.user-token可能会过期,过期后重新获取,更改环境配置后重启容器