最新版本号:1.0.44
打个广告,我的MJ后端服务项目也先发了一个先行版midjourney-api
,由于时间方面,目前暂时还不是很完善,部署那些教程脚本都还没写,后续完善些这个后端服务后,我会重新开设一个插件,喜欢的话可以关注下给个Star,你的Star就是我的动力
使用代理 MidJourney 的discord频道midjourney-proxy
的api在chatgpt-on-wechat
进行请求绘图发送
本插件依赖于chatgpt-on-wechat
而开发的插件
本插件基于midjourney-proxy
,需要先部署该项目,起了该服务才能用接下来的mj_url进行配置,没有该服务无法使用
- 可接入个人微信聊天使用
chatgpt-on-wechat
- 可接入企业微信应用使用
企业微信应用号
- 可接入微信公众号
微信公众号
,但由于个人主体的微信订阅号由于无法通过微信认证,无法主动发出消息,只能被动回复,存在回复时间限制(最多只有15秒的自动回复时间窗口),所以可能无法及时发送图片,只能通过查询接口去拿,建议不使用个人公众号,可以使用公众号测试号
或认证后的公众号
- midjourney
imgine
想象 - midjourney
upscale
放大 - midjourney
variation
变幻 - midjourney
describe
识图,使用方式:(1)私聊窗口(非群聊模式)发图直接生成;(2)发送describe_prefix配置的指令,然后发送一张图片进行识别(此方法不限群聊还是私聊方式) - midjourney
blend
混图,使用方式:发送blend_prefix配置的指令,然后发送多张图片进行混合(此方法不限群聊还是私聊方式) - midjourney 垫图,使用方式:发送pad_prefix配置的指令+prompt描述,然后发送一张图片进行生成(此方法不限群聊还是私聊方式)
- 绘图进度百分比查询
- 发送/queue 任务队列查询
- 解决webp图片无法发送问题
- mj_tip可关闭多条消息发送(最终只发图片或者描述)
- 可自定义添加修改各种功能prefix前缀
- 聊天窗口管理员指令可修改管理员密码,配置mj_url,mj_api_secret,暂停启用mj服务
- 聊天窗口管理员指令可增删改查白名单群组和白名单用户,从而限制用户使用,减少损耗
- 增加图片代理地址discordapp_proxy配置,解决图片本地国内无法发送的问题,可配置discordapp_proxy或配置chatgpt-on-wechat配置的proxy
- 新增每日图片上限,限制普通用户每日作图数,管理员和白名单用户不受限(daily_limit)
- 新增指令设置每日作图数数量和重置清空用户作图数
- 使用midjourney-api重构项目的api服务
- 如有其他点子可提交issues
- $mj_help 说明文档
- $mj_admin_password 口令 进行管理员认证(如未配置,临时管理员密码为123456)
- $mj_admin_cmd 查询管理员指令
- $set_mj_admin_password 新口令 进行设置新密码(此方式会直接写入config.json方便重启直接使用)
- $set_mj_url mj代理地址 mj_api_secret请求参数 discordapp代理地址 进行设置MJ服务器信息(此方式会直接写入config.json方便重启直接使用)
- $stop_mj: 暂停MJ服务
- $enable_mj: 启用MJ服务
- $clean_mj: 清除MJ服务缓存
- $g_prefix : 查询前缀
- $s_prefix 前缀类名 前缀: 设置前缀
- $r_prefix 前缀类名 前缀或序列号: 移除前缀
- $set_mj_admin_password 口令: 修改管理员口令
- $g_admin_list : 查询管理员列表
- $s_admin_list 用户ID或昵称: 设置管理员列表
- $r_admin_list 用户ID或昵称或序列号: 移除管理员列表
- $c_admin_list : 清空管理员列表
- $g_wgroup : 查询白名单群组
- $s_wgroup 群组名称: 设置白名单群组
- $r_wgroup 群组名称或序列号: 移除白名单群组
- $c_wgroup : 清空白名单群组
- $g_wuser : 查询白名单用户
- $s_wuser 用户ID或昵称: 设置白名单用户
- $r_wuser 用户ID或昵称或序列号: 移除白名单用户
- $c_wuser : 清空白名单用户
- $g_bgroup : 查询黑名单群组
- $s_bgroup 群组名称: 设置黑名单群组
- $r_bgroup 群组名称或序列号: 移除黑名单群组
- $c_bgroup : 清空黑名单群组
- $g_buser : 查询黑名单用户
- $s_buser 用户ID或昵称: 设置黑名单用户
- $r_buser 用户ID或昵称或序列号: 移除黑名单用户
- $c_buser : 清空黑名单用户
- $s_limit : 设置每日作图数限制
·超时问题:首先在discord输入/info查看你的Fast Time Remaining
快速出图时间,然后我了解到有些朋友的是某宝某鱼上租的共享账号,这类账号的特点问题就是人多使用,加上上面的快速出图时间可能用完了,造成了你提交的作图一直在排队中,针对这类问题的解决方案如下:首先将midjourney-proxy更新到最新版,然后在他的配置项里面有一个mj.queue.timeout-minutes
配置,即为任务超时时间,默认是五分钟,由于你的是多人使用的账号,所以次数可以延长些,改到十分钟甚至更长,具体自己试试,如果是专业版的话还可以修改mj.queue.core-size
和mj.queue.queue-size
并发数和等待队列长度,具体参考MidJourney订阅级别
首先,先部署好midjourney-proxy
,具体方法教程就点击midjourney-proxy
前往查看文档部署,此处就不过多的粘贴复制了,敲代码敲累了,不复制了
Tips:部署midjourney-proxy后,下方mj_url不需要带/mj,只需域名/ip+端口;该插件读取不到docker-compose.yml的环境变量,所以不用去docker-compose.yml配置,具体原因回头再研究
{
"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反代地址
"mj_groups": [], // 白名单群组,通过管理员指令添加
"mj_users": [], // 白名单用户,通过管理员指令添加
"mj_admin_users": [], // 认证后管理员用户,通过管理员认证
"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\"]" // 重新绘制触发前缀
}
配置文件优先级:先使用env环境变量 => 使用config.json/config.json.template配置 => 使用代码中gconf
最终都会在插件目录下重新生成一个config.json文件,方便以后重启进行读取,当然重启的时候env环境变量依然会优先读取写入
新方式,直接聊天窗口配置,部署好midjourney-proxy
和chatgpt-on-wechat
后
## 第一步:进入聊天窗口,先认证管理员,如果是临时密码,请重启chatgpt-on-wechat前往logs查看,上方日志中有临时密码
#auth+密码
## 第二步:认证成功后进行安装
#installp https://github.com/mouxangithub/midjourney.git
## 第三步:#scanp扫描插件,提示发现MidJourney插件即为成功
#scanp
## 第四步:输入$mj_help有提示说明插件安装成功
## 第五步:输入$mj_admin_password 密码(未配置mj_admin_password则临时密码为123456,认证完后请尽快输入$set_mj_admin_password进行修改)
## 第六步:$set_mj_url mj代理地址 mj_api_secret请求参数 discordapp代理地址 进行设置MJ服务器信息
## 无需重启服务,即配即用
如果是本地或者docker部署的chatgpt-on-wechat
,参考下方方法安装此插件:
插件安装:根据插件文档
进行安装该插件
## 第一步:进入聊天窗口,先认证管理员,如果是临时密码,请重启chatgpt-on-wechat前往logs查看,上方日志中有临时密码
#auth+密码
## 第二步:认证成功后进行安装
#installp https://github.com/mouxangithub/midjourney.git
## 第三步:前往插件目录/plugins/midjourney/config.json.template如果有config.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\"]" // 重新绘制触发前缀
}
## 第四步:#scanp扫描插件,提示发现MidJourney插件即为成功
#scanp
## 第五步:输入$mj_help有提示说明成功,输入/mj出图
## 第一步:前往Variables配置下方环境变量
mj_url= ""
mj_api_secret= ""
mj_tip=True
mj_admin_password= ""
discordapp_proxy= ""
daily_limit= 3
imagine_prefix="[\"/imagine\", \"/mj\", \"/img\"]"
fetch_prefix="[\"/fetch\", \"/ft\"]"
up_prefix="[\"/u\", \"/up\"]"
pad_prefix="[\"/p\", \"/pad\"]"
blend_prefix="[\"/b\", \"/blend\"]"
describe_prefix="[\"/d\", \"/describe\"]"
queue_prefix="[\"/q\"]"
end_prefix="[\"/e\"]"
reroll_prefix="[\"/r\"]"
## 第二步:重新部署redeploy
## 第三步:扫码登录进入聊天窗口,先认证管理员,如果是临时密码,请重启chatgpt-on-wechat前往logs查看,上方日志中有临时密码
#auth+密码
## 第四步:认证成功后进行安装
#installp https://github.com/mouxangithub/midjourney.git
## 第五步:#scanp扫描插件,提示发现MidJourney插件即为成功
#scanp
## 第六步:输入$mj_help有提示说明成功,输入/mj出图
详细教程在插件文档
和midjourney-proxy
有说明