MCPcopy
hub / github.com/erictik/midjourney-api

github.com/erictik/midjourney-api @4.3.18 sqlite

repository ↗ · DeepWiki ↗ · release 4.3.18 ↗
242 symbols 683 edges 49 files 31 documented · 13%
README

midjourney-api

非官方的 MidJourney api 的 Node.js 客户端。

English / 中文文档

    <a href="https://discord.gg/GavuGHQbV4"><img src="https://img.shields.io/discord/1082500871478329374?color=5865F2&logo=discord&logoColor=white" alt="Discord server" /></a>
    <a href="https://www.npmjs.com/package/midjourney"><img src="https://img.shields.io/npm/v/midjourney.svg?maxAge=3600" alt="npm version" /></a>

最近更新

快速开始

运行本项目需要安装 Node.js,然后在本项目的根目录运行以下命令:

  1. 下载项目代码

bash git clone https://github.com/erictik/midjourney-api.git cd midjourney-api

  1. 安装依赖

bash yarn # or npm npm install

  1. 设置环境变量

  2. 获取 Discord TOKEN 登录 Discor F12 或者 [Ctrl + Shift + I] 或者 [Command + Option + I] 打开开发者工具,然后在 Console 中输入以下代码:

javascript window.webpackChunkdiscord_app.push([ [Math.random()], {}, (req) => { for (const m of Object.keys(req.c) .map((x) => req.c[x].exports) .filter((x) => x)) { if (m.default && m.default.getToken !== undefined) { return copy(m.default.getToken()); } if (m.getToken !== undefined) { return copy(m.getToken()); } } }, ]); console.log("%cWorked!", "font-size: 50px"); console.log(`%您的Token在剪贴板了!`, "font-size: 16px");

也可以通过 查看 network 获取 discord token

bash # 在浏览器中复制你的服务器网址 # `https://discord.com/channels/$SERVER_ID/$CHANNEL_ID` export SERVER_ID="your-server-id" export CHANNEL_ID="your-channel-id"

  • 将环境变量写入.env文件或者 在控制台中设置

```bash #example variables, please set up yours

export SERVER_ID="1082500871478329374" export CHANNEL_ID="1094892992281718894" export SALAI_TOKEN="your-discord-token" ```

  1. 现在可以运行示例了

    bash npx tsx example/imagine-ws.ts

    或者

    ```bash yarn example:imagine

    or npm

    npm run example:imagine ```

  2. 更多使用案例

在项目中使用

  1. 安装

bash npm i midjourney # or yarn add midjourney

  1. 使用 Imagine 、Variation 和 Upscale

typescript import { Midjourney } from "midjourney"; const client = new Midjourney({ ServerId: <string>process.env.SERVER_ID, ChannelId: <string>process.env.CHANNEL_ID, SalaiToken: <string>process.env.SALAI_TOKEN, Debug: true, Ws: true, //enable ws is required for remix mode (and custom zoom) }); await client.init(); const prompt = "Christmas dinner with spaghetti with family in a cozy house, we see interior details , simple blue&white illustration"; //imagine const Imagine = await client.Imagine( prompt, (uri: string, progress: string) => { console.log("loading", uri, "progress", progress); } ); console.log(Imagine); if (!Imagine) { console.log("no message"); return; } // U1 U2 U3 U4 V1 V2 V3 V4 "Vary (Strong)" ... const V1CustomID = Imagine.options?.find((o) => o.label === "V1")?.custom; if (!V1CustomID) { console.log("no V1"); return; } // Varition V1 const Varition = await client.Custom({ msgId: <string>Imagine.id, flags: Imagine.flags, customId: V1CustomID, content: prompt, //remix mode require content loading: (uri: string, progress: string) => { console.log("loading", uri, "progress", progress); }, }); console.log(Varition); const U1CustomID = Imagine.options?.find((o) => o.label === "U1")?.custom; if (!U1CustomID) { console.log("no U1"); return; } // Upscale U1 const Upscale = await client.Custom({ msgId: <string>Imagine.id, flags: Imagine.flags, customId: U1CustomID, loading: (uri: string, progress: string) => { console.log("loading", uri, "progress", progress); }, }); if (!Upscale) { console.log("no Upscale"); return; } console.log(Upscale); const zoomout = Upscale?.options?.find((o) => o.label === "Custom Zoom"); if (!zoomout) { console.log("no zoomout"); return; } // Custom Zoom const CustomZoomout = await client.Custom({ msgId: <string>Upscale.id, flags: Upscale.flags, content: `${prompt} --zoom 2`, // Custom Zoom require content customId: zoomout.custom, loading: (uri: string, progress: string) => { console.log("loading", uri, "progress", progress); }, }); console.log(CustomZoomout);

route-map


应用项目


支持一下我吧

如果您觉得它很有价值,可以通过以下方式支持作者

   Buy Me a Coffee

Star History

Star History Chart

Extension points exported contracts — how you extend this code

MJConfig (Interface)
(no doc)
src/interfaces/config.ts
ApiData (Interface)
(no doc)
src/gradio/client.ts
MJConfigParam (Interface)
(no doc)
src/interfaces/config.ts
JsApiData (Interface)
(no doc)
src/gradio/client.ts
MJMessage (Interface)
(no doc)
src/interfaces/message.ts
EndpointInfo (Interface)
(no doc)
src/gradio/client.ts
WaitMjEvent (Interface)
(no doc)
src/interfaces/message.ts
ApiInfo (Interface)
(no doc)
src/gradio/client.ts

Core symbols most depended-on inside this repo

log
called by 163
src/discord.ws.ts
nextNonce
called by 22
src/utils/index.ts
Connect
called by 17
src/midjourney.ts
Imagine
called by 17
src/midjourney.ts
Close
called by 14
src/midjourney.ts
fire_event
called by 12
src/gradio/client.ts
Custom
called by 11
src/midjourney.ts
emit
called by 9
src/discord.ws.ts

Shape

Method 121
Function 82
Interface 25
Class 14

Languages

TypeScript100%

Modules by API surface

src/discord.ws.ts52 symbols
src/gradio/client.ts33 symbols
src/midjourney.api.ts25 symbols
src/midjourney.ts23 symbols
src/command.ts19 symbols
src/utils/index.ts12 symbols
src/gradio/types.ts9 symbols
src/discord.message.ts9 symbols
src/interfaces/message.ts8 symbols
src/gradio/utils.ts7 symbols
test/test2.ts4 symbols
src/verify.human.ts4 symbols

Dependencies from manifests, versioned

@huggingface/inference2.5.0 · 1×
@types/async3.2.20 · 1×
@types/node18.16.0 · 1×
@types/ws8.5.4 · 1×
async3.2.4 · 1×
dotenv16.0.3 · 1×
isomorphic-ws5.0.0 · 1×
prettier2.8.8 · 1×
semiver1.1.0 · 1×
snowyflake2.0.0 · 1×
ts-node10.9.1 · 1×
tslib2.5.0 · 1×

For agents

$ claude mcp add midjourney-api \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact