> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openp.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Midjourney 与 Suno

> 图像生成与音乐生成模型的接入方式

OpenPAI 通过 **Midjourney-Proxy / Plus** 与 **Suno API** 接入 Midjourney 与 Suno,采用 **异步任务** 的调用模式。

## Midjourney

### 可用模型 ID

| 模型 ID          | 行为                         |
| -------------- | -------------------------- |
| `mj_imagine`   | 文生图,等价于 Discord `/imagine` |
| `mj_upscale`   | 放大图片(U1-U4)                |
| `mj_variation` | 变体(V1-V4)                  |
| `mj_zoom`      | 缩放出图                       |
| `mj_blend`     | 多图融合                       |
| `mj_describe`  | 反推 prompt                  |

### 异步流程

<Steps>
  <Step title="提交任务">
    `POST /mj/submit/imagine`,返回 `result`(任务 ID)。
  </Step>

  <Step title="轮询任务">
    `GET /mj/task/{id}/fetch`,直到 `status` 为 `SUCCESS` 或 `FAILURE`。
  </Step>

  <Step title="获取图片">
    任务成功后 `imageUrl` 字段返回 4 宫格 PNG 链接。
  </Step>

  <Step title="后续操作(可选)">
    `POST /mj/submit/change` 提交 U/V/Reroll,需传入 `taskId` 与 `action`。
  </Step>
</Steps>

### 示例:文生图

```bash theme={null}
curl https://openp.ai/mj/submit/imagine \
  -H "Authorization: Bearer $OPENPAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A futuristic cyberpunk city at night, neon lights, --ar 16:9 --v 6"
  }'
```

响应:

```json theme={null}
{ "code": 1, "description": "Submitted", "result": "1737200000000000" }
```

轮询:

```bash theme={null}
curl https://openp.ai/mj/task/1737200000000000/fetch \
  -H "Authorization: Bearer $OPENPAI_API_KEY"
```

详细接口见 [Midjourney 接口文档](/api-reference/midjourney/imagine)。

## Suno(音乐生成)

### 可用模型 ID

| 模型 ID       | 类型              |
| ----------- | --------------- |
| `suno_v3.5` | Suno v3.5,2 分钟内 |
| `suno_v4`   | Suno v4         |
| `udio_v1`   | Udio v1(若开放)    |

### 异步流程

```bash theme={null}
# 1. 提交任务
curl https://openp.ai/suno/submit/music \
  -H "Authorization: Bearer $OPENPAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "lo-fi hip hop, rainy night, female vocals, 90bpm",
    "tags": "lofi, hiphop, chill",
    "title": "Rainy Night",
    "model": "suno_v4",
    "make_instrumental": false
  }'
```

```bash theme={null}
# 2. 轮询
curl https://openp.ai/suno/fetch/{task_id} \
  -H "Authorization: Bearer $OPENPAI_API_KEY"
```

成功后响应中 `audio_url` 是可下载的 MP3 链接,`video_url` 是动图视频。

详细接口见 [Suno 接口文档](/api-reference/suno/generate)。

## 计费说明

* Midjourney 与 Suno **按任务计费**,与 Token 模型不同。
* 任务失败(上游错误)不会扣费。
* 用户主动取消的任务按已消耗资源结算。

具体倍率以 [控制台 → 模型](https://openp.ai/dashboard/models) 显示为准。
