插件描述

最新版本号: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)
  • 新增指令设置每日作图数数量和重置清空用户作图数

后续计划

MJ指令说明

通用指令

  • $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-sizemj.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环境变量依然会优先读取写入

本地运行和Docker部署

新方式,直接聊天窗口配置,部署好midjourney-proxychatgpt-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出图

railway部署

## 第一步:前往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有说明

Star History

Star History Chart