# MJ / Seedream images

https://video-doc.1route.dev/en/docs/images



These are **image endpoints on the Video site**. Use `https://video.1route.dev` and create a key in the **Midjourney group** in the [Video console](https://video.1route.dev/keys/). Seedream 5.0 Pro uses this group too. Check your permissions with `GET /v1/models`.

[Images OpenAPI](/images-openapi.json) · [Image models and prices JSON](/image-models.json) · [Model pricing](https://video.1route.dev/pricing/)

## Models and prices [#models-and-prices]

Checked **2026-10-08**. Amounts use the site's balance units, matching your recharge balance. Later changes follow the console and the price frozen at submission.

| API model          | Unit price | Billing unit         |
| ------------------ | ---------- | -------------------- |
| `Midjourney v6`    | 0.12       | Per generation       |
| `Midjourney v6.1`  | 0.12       | Per generation       |
| `Midjourney v7`    | 0.12       | Per generation       |
| `Midjourney v8.1`  | 0.12       | Per generation       |
| `Midjourney v8.2`  | 0.12       | Per generation       |
| `Seedream 5.0 Pro` | 0.095      | Per successful image |

MJ bills `n` generations: `n=1` costs 0.12 and `n=3` costs 0.36. Four candidate images within one generation do not create four charges. Seedream settles against successful image output. Explicit generation failures follow the site's refund process; investigate an uncertain outcome before submitting again.

Site tests confirmed **MJ v8.2 text-to-image and Seedream 5.0 Pro reference editing**. Other MJ versions are configured but have not each received a paid generation test. Model-specific parameters have not all been tested individually.

## Endpoints and output [#endpoints-and-output]

| Operation                         | Method and path                               |
| --------------------------------- | --------------------------------------------- |
| Models available to your key      | `GET /v1/models`                              |
| Text-to-image or JSON references  | `POST /v1/images/generations`                 |
| Reference editing or file uploads | `POST /v1/images/edits`                       |
| Download or inspect headers       | `GET` / `HEAD` on the returned site image URL |

Create and edit requests require `Authorization: Bearer YOUR_VIDEO_API_KEY`. Responses are synchronous JSON and can take several minutes. Set your client timeout to at least 600 seconds. No public image polling or streaming interface is provided; do not submit images through the video task endpoints.

* `response_format="url"` returns a `video.1route.dev/v1/images/content/...` URL valid for **7 days**. Anyone holding the URL can read that image. Keep private image links private and save results promptly.
* `response_format="b64_json"` returns image Base64 without an image URL. Decode it and save it as PNG.
* The site downloads images and removes source metadata such as EXIF. Downloads use a generic filename. Delivery failures return a site error instead of falling back to an external image URL.

Image retention is separate from the temporary video cache.

## MJ text-to-image [#mj-text-to-image]

```bash
curl --fail-with-body --max-time 650 \
  https://video.1route.dev/v1/images/generations \
  -H "Authorization: Bearer $VIDEO_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary '{
    "model": "Midjourney v8.2",
    "prompt": "A red apple on a white ceramic plate, pale blue background",
    "n": 1,
    "aspect_ratio": "1:1",
    "hd": false,
    "response_format": "url"
  }'
```

Illustrative response; use the actual returned URL:

```json
{
  "created": 1791439200,
  "data": [{"url": "https://video.1route.dev/v1/images/content/EXPIRY-OPAQUE_ID.png"}]
}
```

## Seedream reference editing [#seedream-reference-editing]

JSON accepts `images`, `image` or `image_urls`. References may be public image URLs, image data URIs or Base64. Model-specific reference limits are listed below.

```bash
curl --fail-with-body --max-time 650 \
  https://video.1route.dev/v1/images/edits \
  -H "Authorization: Bearer $VIDEO_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary '{
    "model": "Seedream 5.0 Pro",
    "prompt": "Keep the subject and replace the background with a garden",
    "images": ["https://example.com/reference.png"],
    "size": "1:1",
    "resolution": "1k",
    "n": 1,
    "response_format": "b64_json"
  }'
```

For local files, use multipart and let your client generate the Content-Type boundary:

```bash
curl --fail-with-body --max-time 650 \
  https://video.1route.dev/v1/images/edits \
  -H "Authorization: Bearer $VIDEO_API_KEY" \
  -F 'model=Seedream 5.0 Pro' \
  -F 'prompt=Keep the subject and replace the background with a garden' \
  -F 'n=1' -F 'resolution=1k' -F 'size=1:1' \
  -F 'response_format=url' -F 'image=@reference.png'
```

Multiple uploads use repeated `image[]` file fields; each file is limited to **10 MiB**. MJ editing means multiple reference images, not mask-based inpainting. MJ upscale, variation and separate task lookup endpoints are not provided by this integration.

## Parameters [#parameters]

| Parameter         | Midjourney                                                                  | Seedream 5.0 Pro                                                                                |
| ----------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `prompt`          | Non-empty; at most 1024 Unicode characters                                  | Non-empty; at most 5000 Unicode characters                                                      |
| `n`               | Integer 1–50, default 1                                                     | Integer 1–50, default 1                                                                         |
| `count`           | Alias for `n`; both must match when present                                 | Same                                                                                            |
| `images`          | At most 4 references                                                        | At most 10 references                                                                           |
| `aspect_ratio`    | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3`, `4:5`, `5:4`, `21:9`     | Specify the ratio with `size`                                                                   |
| `size`            | Ratio or matching `WIDTHxHEIGHT`; arbitrary exact pixels are not guaranteed | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3`, `21:9`, `auto`, or matching pixel dimensions |
| `resolution`      | Omit; 8.1/8.2 can use `hd`                                                  | `1k` / `2k`                                                                                     |
| `response_format` | `url` / `b64_json`, default `url`                                           | Same                                                                                            |
| `stream`          | Omit or use `false`                                                         | Same                                                                                            |

MJ versions are fixed by model name. Do not override them with `--v`, `--version` or `--niji` in the prompt. Niji is not listed.

Additional MJ parameters are `quality`, `style`, `stylize`, `chaos`, `weird`, `seed`, `tile`, `negative_prompt`, `sref`, `sw` and `iw`. `cref/cw` apply to 6/6.1/7, `draft` to 7/8.1/8.2, `hd` to 8.1/8.2 and `stop` to 6/6.1. Model parameters can appear at the top level or inside `params`; top-level values win and explicit `0`/`false` are preserved. Batch quantities `n/count` must remain top-level.

## Timeouts and errors [#timeouts-and-errors]

| Status                     | Action                                                                        |
| -------------------------- | ----------------------------------------------------------------------------- |
| 400                        | Check model, count, references and model parameters                           |
| 401 / 403                  | Check your site key, group and model whitelist                                |
| 413                        | Reduce reference file sizes or counts                                         |
| 429 / 503                  | Capacity or resource pressure; investigate an uncertain prior request first   |
| 502 / 504 / client timeout | Save the site request ID and contact support; do not automatically regenerate |

**A timeout does not prove generation failed. Regenerating cannot recover an already generated image whose delivery failed.** Save `X-Oneapi-Request-Id` from response headers so support can inspect the original request and charge. Callers receive no supplier address, key or raw supplier error.

For other image models, see the [separate image documentation](https://doc.1route.dev/en/docs/). Every example on this page uses the Video site URL and a Video site key.
