在 AI 绘画里,Midjourney 的出图能力很强,但官方没有开放 API。于是市场上出现了不少第三方封装服务,把原本只能在 Discord 里手动操作的流程,包装成开发者能接入的接口。技术上能跑通,合规上却没那么省心,这两件事最好分开看。
第三方 API 的实现思路
现在常见的做法,基本绕不开 Discord。
Discord 协议模拟
这一类方案会先去理解 Midjourney Bot 在 Discord 里的交互方式,再把外部请求翻译成 Discord 消息。流程大致是这样:
- 先完成 Discord 身份认证,维持会话状态
- 把 REST 请求转换成 Discord 消息格式
- 从 Bot 的回复里解析图片 URL 和生成状态
- 再通过 Webhook 或长轮询把结果返回给调用方
它的本质不是'调用官方接口',而是把人工操作自动化了。能用,但稳定性取决于 Discord 协议、Bot 行为和账号状态,任何一环变化,服务都可能跟着抖。
典型的 Python 代码大概长这样:
import discord
from discord.ext import commands
class MidjourneyClient:
def __init__(self, token):
self.bot = commands.Bot(command_prefix='!', intents=discord.Intents.all())
self.channel_id = 123456789 # 目标频道 ID
async def generate_image(self, prompt):
channel = self.bot.get_channel(self.channel_id)
await channel.send(f'/imagine {prompt}')
def check(m):
return m.author.id == MIDJOURNEY_BOT_ID and m.channel.id == self.channel_id
response = await self.bot.wait_for('message', check=check)
parse_image_urls(response.content)

