Skip to content

Midjourney-api,nodejs,非官方api,Midjourney绘画,Node.js client for the unofficial MidJourney API.

Notifications You must be signed in to change notification settings

souying/Midjourney-node-api

Repository files navigation

Midjourney-node-api

代理 MidJourney 的discord频道,实现api形式调用AI绘图

前端大佬感兴趣的快速提pr, 本人不是专业后端,代码不保证无bug

现有功能

  • 支持 Imagine、U、V 指令,绘图完成后回调
  • 支持队列执行
  • 支持中文 prompt 翻译,需配置百度翻译
  • 队列任务存储在本地小型数据库
  • docker&docker-compose安装

后续计划

  • 定时清空所有任务
  • 账号池子(暂定)
  • 看情况优化
  • 对接阿里OSS

使用前提

  1. 科学上网
  2. node环境 node 18版本以上
  3. 注册 MidJourney,创建自己的频道,参考 https://docs.midjourney.com/docs/quick-start

docker部署:

1.运行docker容器

  • Docker一键命令:
docker run -dit \
  -v $PWD/Midjourney/basedata:/Midjourney/basedata \
  -p 5400:3000 \
  --restart=always \
  --name midjourney \
grbhq/midjourney:latest
  • docker-compose一键部署[需安装docker-compose工具]:
wget -O docker-compose.yaml https://raw.githubusercontent.com/souying/Midjourney-node-api/main/docker-compose.yaml && docker-compose up -d

2.进入当前Midjourney/basedata目录下修改.env文件 参考.env.example

3.重启docker容器(生效.env变量)
docker restart midjourney

4.启动后访问服务器ip:5400

快速启动

1.确保服务器已经有node环境18以上
2.拉取代码

git clone https://github.com/souying/Midjourney-node-api.git
cd Midjourney-node-api

3.下载依赖

yarn
# or npm
npm install

4.项目跟目录下新建 .env 文件 参考.env.example

5.启动项目 启动后访问127.0.0.1:3000

npm start   

6.在线接口文档 https://docs.apipost.cn/preview/c1f3039454fb9e67/02235e4d4590d910?target_id=78d9eb39-d6f9-4ee5-b2fa-82ff6b15678e

7.端口修改/bin/www 3000改成其他

API接口说明

接口状态

已完成

接口URL

http://127.0.0.1:3000/api/v1/trigger/submit?action=IMAGINE&prompt=一只狗&taskId=123456789&index=1&state=main&notifyHook=http://www.baidu.com

请求方式

GET

Content-Type

urlencoded

请求Query参数

参数名 示例值 参数类型 是否必填 参数描述
action IMAGINE String 动作: 必传,IMAGINE(绘图)、UPSCALE(选中放大)、VARIATION(选中变换)
prompt 一只狗 String 绘图参数: IMAGINE时必传
taskId 123456789 String 任务ID: UPSCALE、VARIATION时必传
index 1 String 图序号: 1~4,UPSCALE、VARIATION时必传,表示第几张图
state main String 自定义字符串: 非必传,供回调到业务系统里使用
notifyHook http://www.baidu.com String 支持每个任务配置不同回调地址,非必传

请求Body参数

参数名 示例值 参数类型 是否必填 参数描述
action IMAGINE - 动作: 必传,IMAGINE(绘图)、UPSCALE(选中放大)、VARIATION(选中变换)
prompt 一只狗 - 绘图参数: IMAGINE时必传
taskId 123456789 - 任务ID: UPSCALE、VARIATION时必传
index 1 - 图序号: 1~4,UPSCALE、VARIATION时必传,表示第几张图
state main - 自定义字符串: 非必传,供回调到业务系统里使用
notifyHook http://www.baidu.com - 支持每个任务配置不同回调地址,非必传

成功响应示例

{
	"code": 1,
	"description": "成功",
	"result": "1234679"
}

错误响应示例

{
	"code": 0,
	"description": "失败"
}

/mj绘图相关api/提交绘画任务post

提交任务,后台持续执行任务,成功或者失败后更改任务状态

接口状态

已完成

接口URL

http://127.0.0.1:3000/api/v1/trigger/submit

请求方式

POST

Content-Type

urlencoded

请求Query参数

参数名 示例值 参数类型 是否必填 参数描述
action IMAGINE String 动作: 必传,IMAGINE(绘图)、UPSCALE(选中放大)、VARIATION(选中变换)
prompt 一只狗 String 绘图参数: IMAGINE时必传
taskId 123456789 String 任务ID: UPSCALE、VARIATION时必传
index 1 String 图序号: 1~4,UPSCALE、VARIATION时必传,表示第几张图
state main String 自定义字符串: 非必传,供回调到业务系统里使用
notifyHook http://www.baidu.com String 支持每个任务配置不同回调地址,非必传

请求Body参数

参数名 示例值 参数类型 是否必填 参数描述
action IMAGINE - 动作: 必传,IMAGINE(绘图)、UPSCALE(选中放大)、VARIATION(选中变换)
prompt 一只狗 - 绘图参数: IMAGINE时必传
taskId 123456789 - 任务ID: UPSCALE、VARIATION时必传
index 1 - 图序号: 1~4,UPSCALE、VARIATION时必传,表示第几张图
state main - 自定义字符串: 非必传,供回调到业务系统里使用
notifyHook http://www.baidu.com - 支持每个任务配置不同回调地址,非必传

成功响应示例

{
	"code": 1,
	"description": "成功",
	"result": "1234679"
}

错误响应示例

{
	"code": 0,
	"description": "失败"
}

/mj绘图相关api/查询单个任务get

查询任务完成情况

接口状态

已完成

接口URL

http://127.0.0.1:3000/api/v1//task/fetch?_id=8a2c5959-143b-46c5-adb6-242652ac8141

请求方式

GET

Content-Type

form-data

请求Query参数

参数名 示例值 参数类型 是否必填 参数描述
_id 8a2c5959-143b-46c5-adb6-242652ac8141 String 任务id

请求Body参数

参数名 示例值 参数类型 是否必填 参数描述
_id 8a2c5959-143b-46c5-adb6-242652ac8141 - 任务id

成功响应示例

{
	"_id": "8a2c5959-143b-46c5-adb6-242652ac8141",
	"index": "1",
	"action": "VARIATION",
	"prompt": "一只狗",
	"promptEn": "A dog",
	"taskId": "1108302168013938689",
	"uri": "f61e-4eac-9991-475799668483.png",
	"hash": "adbd1ba4-f61e-4eac-9991-475799668483",
	"content": "A dog--niji --seed 5587",
	"progress": "done",
	"description": "/imagine A dog",
	"submitTime": 1684310738264,
	"finishTime": 1684310741027,
	"state": "main",
	"notifyHook": "http://www.baidu.com",
	"imageUrl": "adbd1ba4-f61e-4eac-9991-475799668483.png",
	"status": "SUCCESS"
}

错误响应示例

{
    code:0
}

/mj绘图相关api/查询单个任务post

查询全部任务

接口状态

已完成

接口URL

http://127.0.0.1:3000/api/v1//task/fetch?_id=8a2c5959-143b-46c5-adb6-242652ac8141

请求方式

POST

Content-Type

form-data

请求Query参数

参数名 示例值 参数类型 是否必填 参数描述
_id 8a2c5959-143b-46c5-adb6-242652ac8141 String 任务id

请求Body参数

参数名 示例值 参数类型 是否必填 参数描述
_id 8a2c5959-143b-46c5-adb6-242652ac8141 - 任务id

成功响应示例

{
	"_id": "8a2c5959-143b-46c5-adb6-242652ac8141",
	"index": "1",
	"action": "VARIATION",
	"prompt": "一只狗",
	"promptEn": "A dog",
	"taskId": "1108302168013938689",
	"uri": "f61e-4eac-9991-475799668483.png",
	"hash": "adbd1ba4-f61e-4eac-9991-475799668483",
	"content": "A dog--niji --seed 5587",
	"progress": "done",
	"description": "/imagine A dog",
	"submitTime": 1684310738264,
	"finishTime": 1684310741027,
	"state": "main",
	"notifyHook": "http://www.baidu.com",
	"imageUrl": "adbd1ba4-f61e-4eac-9991-475799668483.png",
	"status": "SUCCESS"
}

错误响应示例

{
    code:0
}

/mj绘图相关api/查询任务列表post

暂无描述

接口状态

已完成

接口URL

http://127.0.0.1:3000/api/v1//task/list

请求方式

POST

Content-Type

form-data

成功响应示例

[
	{
		"_id": "8a2c5959-143b-46c5-adb6-242652ac8141",
		"index": "1",
		"action": "VARIATION",
		"prompt": "一只狗",
		"promptEn": "A dog",
		"taskId": "1108302168013938689",
		"uri": "f61e-4eac-9991-475799668483.png",
		"hash": "adbd1ba4-f61e-4eac-9991-475799668483",
		"content": "A dog--niji --seed 5587",
		"progress": "done",
		"description": "/imagine A dog",
		"submitTime": 1684310738264,
		"finishTime": 1684310741027,
		"state": "main",
		"notifyHook": "http://www.baidu.com",
		"imageUrl": "adbd1ba4-f61e-4eac-9991-475799668483.png",
		"status": "SUCCESS"
	}
]

错误响应示例

{
    code:0
}

/mj绘图相关api/查询任务列表get

暂无描述

接口状态

已完成

接口URL

http://127.0.0.1:3000/api/v1//task/list

成功响应示例

[{
	"_id": "8a2c5959-143b-46c5-adb6-242652ac8141",
	"index": "1",
	"action": "VARIATION",
	"prompt": "一只狗",
	"promptEn": "A dog",
	"taskId": "1108302168013938689",
	"uri": "f61e-4eac-9991-475799668483.png",
	"hash": "adbd1ba4-f61e-4eac-9991-475799668483",
	"content": "A dog--niji --seed 5587",
	"progress": "done",
	"description": "/imagine A dog",
	"submitTime": 1684310738264,
	"finishTime": 1684310741027,
	"state": "main",
	"notifyHook": "http://www.baidu.com",
	"imageUrl": "adbd1ba4-f61e-4eac-9991-475799668483.png",
	"status": "SUCCESS"
}]

错误响应示例

{
    code:0
}

About

Midjourney-api,nodejs,非官方api,Midjourney绘画,Node.js client for the unofficial MidJourney API.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 2

  •  
  •  
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy