# midjourney-proxy **Repository Path**: suifengdevelop/midjourney-proxy ## Basic Information - **Project Name**: midjourney-proxy - **Description**: MidJourney Discord机器人监听频道信息 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-02-05 - **Last Updated**: 2025-03-13 ## Categories & Tags **Categories**: ai **Tags**: midjourney ## README MidJourney 自建官方接口 包括Discord机器人监听频道信息 使用语言C# # 使用条件 1.确保程序启动环境能访问 Discord 2.已有 Midjourney、Discord 账户 3.创建 Discord 频道并添加机器人,参考教程 [如何集成到自己的平台](https://gitee.com/suifengdevelop/midjourney-proxy/wikis/%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C) 4.需要自建接收回调接口程序 # Bot回调参数 `CallbackData //回调实体类` # MidJoourney API文档 ## 绘制 **接口地址**:`/v1/api/trigger/imagine` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "prompt": "", "picUrl": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |triggerImagineIn|绘制调用参数|body|true|TriggerImagineIn|TriggerImagineIn| |  prompt|描述||false|string|| |  picUrl|图片地址||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 放大指定图片 **接口地址**:`/v1/api/trigger/upscale` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "msgId": "", "msgHash": "", "triggerId": "", "index": 0 } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |triggerUVIn|操作图片调用参数|body|true|TriggerUVIn|TriggerUVIn| |  msgId|imagine 绘画完成后回调报文 id 字段||false|string|| |  msgHash|imagine 绘画完成后回调报文 attachments[0].filename.split("_")[-1].split(".").[0]||false|string|| |  triggerId|imagine 绘画完成后回调报文 trigger_id 字段||false|string|| |  index|图片索引||false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 优化指定图片 **接口地址**:`/v1/api/trigger/variation` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "msgId": "", "msgHash": "", "triggerId": "", "index": 0 } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |triggerUVIn|操作图片调用参数|body|true|TriggerUVIn|TriggerUVIn| |  msgId|imagine 绘画完成后回调报文 id 字段||false|string|| |  msgHash|imagine 绘画完成后回调报文 attachments[0].filename.split("_")[-1].split(".").[0]||false|string|| |  triggerId|imagine 绘画完成后回调报文 trigger_id 字段||false|string|| |  index|图片索引||false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 重新绘制 **接口地址**:`/v1/api/trigger/reset` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "msgId": "", "msgHash": "", "triggerId": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |triggerResetIn|重绘调用参数|body|true|TriggerResetIn|TriggerResetIn| |  msgId|imagine 绘画完成后回调报文 id 字段||false|string|| |  msgHash|imagine 绘画完成后回调报文 attachments[0].filename.split("_")[-1].split(".").[0]||false|string|| |  triggerId|imagine 绘画完成后回调报文 trigger_id 字段||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 做出变化 对upscale的单张图片进行“Make Variations”操作 **接口地址**:`/v1/api/trigger/solovariation` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "msgId": "", "msgHash": "", "triggerId": "", "index": 0 } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |triggerSoloIn|对upscale的单张图片进行操作|body|true|TriggerSoloIn|TriggerSoloIn| |  msgId|imagine 绘画完成后回调报文 id 字段||false|string|| |  msgHash|imagine 绘画完成后回调报文 attachments[0].filename.split("_")[-1].split(".").[0]||false|string|| |  triggerId|imagine 绘画完成后回调报文 trigger_id 字段||false|string|| |  index|图片索引||false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 变化(细微) 对upscale的单张图片进行“Vary(Subtle)”操作 **接口地址**:`/v1/api/trigger/sololowvariation` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "msgId": "", "msgHash": "", "triggerId": "", "index": 0 } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |triggerSoloIn|对upscale的单张图片进行操作|body|true|TriggerSoloIn|TriggerSoloIn| |  msgId|imagine 绘画完成后回调报文 id 字段||false|string|| |  msgHash|imagine 绘画完成后回调报文 attachments[0].filename.split("_")[-1].split(".").[0]||false|string|| |  triggerId|imagine 绘画完成后回调报文 trigger_id 字段||false|string|| |  index|图片索引||false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 变化(强) 对upscale的单张图片进行“Vary(Strong)”操作 **接口地址**:`/v1/api/trigger/solohighvariation` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "msgId": "", "msgHash": "", "triggerId": "", "index": 0 } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |triggerSoloIn|对upscale的单张图片进行操作|body|true|TriggerSoloIn|TriggerSoloIn| |  msgId|imagine 绘画完成后回调报文 id 字段||false|string|| |  msgHash|imagine 绘画完成后回调报文 attachments[0].filename.split("_")[-1].split(".").[0]||false|string|| |  triggerId|imagine 绘画完成后回调报文 trigger_id 字段||false|string|| |  index|图片索引||false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## ⬅️➡️⬆️⬇️ 对upscale单张图片进行某个方向的操作扩展 **接口地址**:`/v1/api/trigger/expand` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "msgId": "", "msgHash": "", "triggerId": "", "direction": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |triggerExpandIn|对upscale单张图片进行某个方向的操作扩展|body|true|TriggerExpandIn|TriggerExpandIn| |  msgId|imagine 绘画完成后回调报文 id 字段||false|string|| |  msgHash|imagine 绘画完成后回调报文 attachments[0].filename.split("_")[-1].split(".").[0]||false|string|| |  triggerId|imagine 绘画完成后回调报文 trigger_id 字段||false|string|| |  direction|right/left/up/down||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 缩小2倍-1.5倍 对upscale的单张图片进行缩小2x-1.5x操作 **接口地址**:`/v1/api/trigger/zoomout` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "msgId": "", "msgHash": "", "triggerId": "", "zoomOut": 0 } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |triggerZoomOutIn|对upscale的单张图片进行缩小2x/1.5x操作|body|true|TriggerZoomOutIn|TriggerZoomOutIn| |  msgId|imagine 绘画完成后回调报文 id 字段||false|string|| |  msgHash|imagine 绘画完成后回调报文 attachments[0].filename.split("_")[-1].split(".").[0]||false|string|| |  triggerId|imagine 绘画完成后回调报文 trigger_id 字段||false|string|| |  zoomOut|图片扩大(OutPaint)系数,2x -> 50、1.5x -> 75||false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 图片会说话 **接口地址**:`/v1/api/trigger/describe` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "upLoadFileName": "", "triggerId": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |triggerDescribeIn|图片会说话调用参数|body|true|TriggerDescribeIn|TriggerDescribeIn| |  upLoadFileName|图片地址||false|string|| |  triggerId|imagine 绘画完成后回调报文 trigger_id 字段||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 上传文件 **接口地址**:`/v1/api/trigger/upload` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,multipart/form-data` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |file||query|false|file|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 发送图片 **接口地址**:`/v1/api/trigger/message` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json-patch+json,application/json,text/json,application/*+json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "upLoadFileName": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |sendMessageIn|发送图片消息调用参数|body|true|SendMessageIn|SendMessageIn| |  upLoadFileName|图片文件名||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|Success|| **响应参数**: 暂无 **响应示例**: ```javascript ```