如果要在微信机器人上使用Midjourney,需要2个步骤。
- 安装 midjourney-proxy 环境,是基于Discord的API,等于联通后微信和Discord建立链接,可以互通消息。
- 安装 midjourney-proxy-on-wechat 插件
注意
亲测代理方式容易频繁掉线,会导致Discord频繁被监控需要修改密码
建议使用新加坡服务器,一把解决代理和网络各种破问题,节省巨多时间少走弯路,也能丝滑使用midjourney-proxy,否则需要调docker网络才能通
首先需要确认自己已经订阅了Midjourney,并创建自己的服务器和频道,参考Quick Start
需要获取用户Token、服务器ID、频道ID
进入Discord网页频道,F12打开network,刷新页面 找到 messages 的请求,这里的 authorization 即用户Token 后续设置到 mj.discord.user-token
频道的url里取出 服务器ID、频道ID,后续设置到配置项
/xxx/xxx/config目录下创建 application.yml(mj配置项)、banned-words.txt(可选,覆盖默认的敏感词文件);参考src/main/resources下的文件
配置参考(填写时删除汉字备注):
yamlmj:
accounts:
- guild-id: xxx #discord服务器ID
channel-id: xxx #discord频道ID
user-token: xxxx #discord用户Token
全部配置项(按需添加到上面的配置参考中):
变量名 | 非空 | 描述 |
---|---|---|
mj.accounts | 是 | 账号池配置,配置后不需要额外设置mj.discord |
mj.discord.guild-id | 是 | discord服务器ID |
mj.discord.channel-id | 是 | discord频道ID |
mj.discord.user-token | 是 | discord用户Token |
mj.discord.user-agent | 否 | 调用discord接口、连接wss时的user-agent,建议从浏览器network复制 |
mj.discord.core-size | 否 | 并发数,默认为3 |
mj.discord.queue-size | 否 | 等待队列,默认长度10 |
mj.discord.timeout-minutes | 否 | 任务超时时间,默认为5分钟 |
mj.api-secret | 否 | 接口密钥,为空不启用鉴权;调用接口时需要加请求头 mj-api-secret |
mj.notify-hook | 否 | 全局的任务状态变更回调地址 |
mj.notify-notify-pool-size | 否 | 通知回调线程池大小,默认10 |
mj.task-store.type | 否 | 任务存储方式,默认in_memory(内存\重启后丢失),可选redis |
mj.task-store.timeout | 否 | 任务过期时间,过期后删除,默认30天 |
mj.proxy.host | 否 | 代理host,全局代理不生效时设置 |
mj.proxy.port | 否 | 代理port,全局代理不生效时设置 |
mj.ng-discord.server | 否 | https://discord.com 反代地址 |
mj.ng-discord.cdn | 否 | https://cdn.discordapp.com 反代地址 |
mj.ng-discord.wss | 否 | wss://gateway.discord.gg 反代地址 |
mj.ng-discord.resume-wss | 否 | wss://gateway-us-east1-b.discord.gg 反代地址 |
mj.ng-discord.upload-server | 否 | https://discord-attachments-uploads-prd.storage.googleapis.com 反代地址 |
mj.translate-way | 否 | 中文prompt翻译成英文的方式,可选null(默认)、baidu、gpt |
mj.baidu-translate.appid | 否 | 百度翻译的appid |
mj.baidu-translate.app-secret | 否 | 百度翻译的app-secret |
mj.openai.gpt-api-url | 否 | 自定义gpt的接口地址,默认不需要配置 |
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相关属性 |
终端中启动容器,映射config目录,第3行更换成实际路径,第4行中注意版本号,会不断更新。
bashdocker run -d --name midjourney-proxy \ -p 8080:8080 \ -v /xxx/xxx/config:/home/spring/config \ novicezk/midjourney-proxy:2.6.3
确认Docker状态 开通防火墙
机器人私聊,一行一行输入指令,安装插件
bash#installp https://github.com/mouxangithub/midjourney.git
#scanp
安装成功后,输出输入mj_admin_password 密码(未配置mj_admin_password则临时密码为123456,认证完后请尽快输入$set_mj_admin_password进行修改) 输入代理地址,如果你和我一样使用了海外服务器,那么只需要设定一个代理地址:
bash$set_mj_url mj代理地址 mj_api_secret请求参数 discordapp代理地址
进行设置MJ服务器信息
无需其他配置,直接使用即可:
前往插件目录/plugins/midjourney 找到config.json.template,复制成config.json,并进行修改,修改后重启插件即可。
json{
"mj_url": "", // midjourney-proxy的服务地址
"mj_api_secret": "", // midjourney-proxy的api请求头,如果midjourney-proxy没配置此处可以不配
"mj_tip": true, // 是否发送请求提示,让漫长的等待不会枯燥,如果嫌啰嗦可关闭,即:发送一些成功的内容
"mj_admin_password": "", // MJ管理员密码
"daily_limit": 3, // 普通用户每日作图数
"discordapp_proxy": "", // cdn.discordapp.com反代地址
"imagine_prefix": "[\"/i\", \"/mj\"]", // imagine画图触发前缀
"fetch_prefix": "[\"/f\"]", // fetch任务查询触发前缀
"up_prefix": "[\"/u\"]", // up图片放大和变换触发前缀
"pad_prefix": "[\"/p\"]", // 垫图画图触发前缀
"blend_prefix": "[\"/b\"]", // 混图画图触发前缀
"describe_prefix": "[\"/d\"]", // 图生文触发前缀
"queue_prefix": "[\"/q\"]", // 查询正在执行中任务触发前缀
"end_prefix": "[\"/e\"]", // 结束存储打包发送任务(目前用于混图)触发前缀
"reroll_prefix": "[\"/r\"]" // 重新绘制触发前缀
}
本文作者:Golovin
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!