跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonNode.jsAI

Midjourney Imagine API 接入与实战详解

综述由AI生成本文档详细阐述了 Midjourney Imagine API 的接入流程与核心功能。涵盖从获取 Token 开始的基础调用,到图像放大、变换、垫图融合及局部重绘的高级操作。重点解析了异步 Webhook 回调机制与流式输出方案,提供了 Python 与 Node.js 的完整代码示例,帮助开发者快速集成 AI 绘图能力至实际业务场景中。

协议工匠发布于 2026/4/8更新于 2026/6/1216 浏览

Midjourney Imagine API 接入与实战详解

Midjourney 的 Imagine API 允许开发者通过 HTTP 请求直接调用其图像生成能力。本文将介绍如何申请凭证、基础调用流程,以及放大、变换、垫图融合和局部重绘等高级功能的实现细节。

1. 申请流程

访问官方文档页面点击「Acquire」按钮获取请求所需的凭证(Token)。首次申请通常赠送免费额度,注册登录后即可直接使用。

2. 基本使用

在界面填写 authorization 和 prompt 参数即可发起请求。建议 Prompt 使用英文描述以获得更精准的效果。

主要请求参数说明:

  • prompt:图片描述词(支持自动翻译)。
  • mode:生成模式,可选 fast/relax/turbo,默认 fast。
  • timeout:超时时间(秒),超时会直接返回。
  • translation:是否自动翻译非英文 prompt。
  • split_images:是否将 2x2 结果拆分返回单张。
  • action/image_id:对历史图片继续操作时需指定。
  • callback_url:异步回调地址。

请求示例

curl -X POST 'https://api.acedata.cloud/midjourney/imagine' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{ "prompt": "A cute cat", "action": "generate" }'

响应结构

成功后的返回 JSON 包含以下关键字段:

  • task_id:任务唯一标识。
  • image_id:图片唯一标识,用于后续变换操作。
  • image_url:缩略图 URL。
  • raw_image_url:原图 URL(更高清)。
  • actions:可执行的操作列表(如 upscale, variation 等)。

3. 图像放大与变换

针对已生成的图片,可通过传递 action 和 image_id 进行进一步处理。

  • 变换 (Variation):例如 variation2 表示基于右上角图片进行微调。
  • 放大 (Upscale):例如 upscale4 表示放大第四张图片。

注意:upscale 操作相比 variation 耗时通常更短。

放大后的图片会提供新的 actions,包括 upscale_2x、zoom_out、pan 系列偏移操作等。

4. 图像改写(垫图)

API 支持垫图功能,即在输入一张图片 URL 的基础上添加文字描述进行改写。

格式要求: 图片 URL 需为纯图片链接(建议使用图床),放在 Prompt 开头,后接空格和文字描述。

https://example.com/image.jpg an illustration of a car parked on the beach --iw2

其中 --iw2 是调整图片权重的参数。将上述内容整体传递给 prompt 字段即可。

5. 图像融合

支持传入多张图片 URL 实现融合效果,最多支持 5 张图片。

Prompt 构造: 多个图片 URL 用空格分隔,最后跟上文字描述。

https://img1.png https://img2.png The bear is holding the chainsaw --iw2

6. 局部变换(Inpainting)

支持对生成图片的特定区域进行重绘。需要传入掩码(Mask)的 Base64 编码。

获取掩码

掩码通常通过灰度图生成,白色区域代表重绘范围。以下是一个简化的 Python 示例,用于绘制并保存掩码:

import cv2
import base64

# 读取原图和掩码图
image_path = 'temp.jpg'
grey_image = cv2.imread(image_path)
_, buffer = cv2.imencode('.jpg', grey_image)
base64_encoded = base64.b64encode(buffer).decode('utf-8')

print(base64_encoded)

调用接口

设置 action 为 variation_region,并传入 image_id 和 mask。

{
  "prompt": "A cute cat",
  "action": "variation_region",
  "image_id": "1265875488702726144",
  "mask": "/9j/4AAQSkZJRgABAQAAAQABAAD..."
}

7. 异步回调

由于生图耗时较长,API 支持 Webhook 回调。设置 callback_url 后,生成完成或失败时都会发送 HTTP 请求到该地址。

  • 成功回调:包含 success: true 及图片信息。
  • 失败回调:包含 success: false 及 error.code、error.message。

8. 流式输出

为了提升体验,API 支持流式返回进度。修改请求头 accept 为 application/x-ndjson 即可开启。

Python 示例

import requests

url = 'https://api.acedata.cloud/midjourney/imagine'
headers = {
    'content-type': 'application/json',
    'accept': 'application/x-ndjson',
    'authorization': 'Bearer {token}'
}
body = {"prompt": "a beautiful cat --v 6"}

r = requests.post(url, headers=headers, json=body, stream=True)
for line in r.iter_lines():
    print(line.decode())

Node.js 示例

const axios = require("axios");
const url = "https://api.acedata.cloud/midjourney/imagine";
const headers = {
    "content-type": "application/json",
    "accept": "application/x-ndjson",
    "authorization": "Bearer {token}"
};
const body = {
    prompt: "a beautiful cat --v 6",
    action: "generate"
};

axios.post(url, body, { headers: headers, responseType: "stream" })
    .then((response) => {
        console.log(response.status);
        response.data.on("data", (chunk) => {
            console.log(chunk.toString());
        });
    })
    .catch((error) => {
        console.error(error);
    });

注意:流式输出中 progress 字段表示生成进度(0-100)。未完成时 actions 为空,且中间生成的 image_url 会在完成后销毁。

目录

  1. Midjourney Imagine API 接入与实战详解
  2. 1. 申请流程
  3. 2. 基本使用
  4. 请求示例
  5. 响应结构
  6. 3. 图像放大与变换
  7. 4. 图像改写(垫图)
  8. 5. 图像融合
  9. 6. 局部变换(Inpainting)
  10. 获取掩码
  11. 读取原图和掩码图
  12. 调用接口
  13. 7. 异步回调
  14. 8. 流式输出
  15. Python 示例
  16. Node.js 示例
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Z-Image-Turbo 与 Stable Diffusion 核心优势对比
  • 二叉树常见节点操作与统计
  • AI 重构产品能力边界:为何“人人都是产品经理”终成现实
  • 无人机视觉任务常用数据集汇总(检测与分割)
  • openclaw-termux:在 Android 上部署 OpenClaw AI Gateway
  • Coze 智能体开发指南:插件、知识库与数据库详解
  • 什么是前端?零基础入门指南
  • Ollama 模型下载慢?国内镜像加速与 LLama-Factory 微调实战
  • Linux 系统编程:Ext2 文件系统核心架构解析
  • Android 补间动画基础:位移、缩放、旋转与透明度详解
  • Java 位运算算法题目练习
  • Java 核心数据结构:LinkedList 原理与手动实现
  • 基于 SSM 框架的医院医药药品管理系统设计与实现
  • Apache Tomcat曝三大安全漏洞,最严重可致远程代码执行(CVE-2025-55752)
  • Android 开发者成长路径与技术进阶指南
  • Java SE 多线程并发:锁策略、JUC 与原理
  • Java 实现双向链表:LinkedList 模拟与源码解析
  • 通义灵码 AI 程序员实操指南:从 IDE 安装到全栈开发落地
  • Vercel agent-browser 深度解析:AI 驱动浏览器自动化实践
  • Android 大厂面试真题解析与复习思路指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online