<div id="2号站图片-api-文档" class="section level1">

# Site 2 image API documentation

English translation. Model names, API fields and executable examples retain their original text, including prompts and comments.

Applies to groups: **\#75、#77、#127**. Updated: 2026-09-14.

- API base URL: `https://yyds.seqnode.com/v1`
- Authentication: `Authorization: Bearer YOUR_API_KEY`
- **Your API key determines the group**. Changing the model name or `quality` does not switch groups.

<div id="1-分组与模型" class="section section level2">

<span id="group75"></span><span id="group77"></span><span id="group127"></span>

## 1. Groups and models

| Group | Available models | Capabilities |
|----|----|----|
| \#75: upscaling available | `gpt-image-2`, `gpt-image-2.5`, `gpt-image-2.5-flare`, `gpt-image-2.5-sunburst` | Includes native and local-upscaling channels; all four names map to`gpt-image-2` |
| \#77: no upscaling | `gpt-image-2`, `gpt-image-2.5`, `gpt-image-2.5-flare`, `gpt-image-2.5-sunburst` | No local upscaling; all four names map to`gpt-image-2` |
| \#127：Image 2 / flare / sunburst | `gpt-image-2`, `gpt-image-2.5-flare`, `gpt-image-2.5-sunburst` | Each of the three models retains its upstream name; the group does not offer`gpt-image-2.5` |

**Note:** flare / sunburst in \#75 and \#77 are aliases, different from the same names in \#127.

</div>

<div id="2-参考图数量" class="section section level2">

## 2. Reference-image counts

| Scenario / group | Counts and limits |
|----|----|
| Text to image | 0 references |
| \#75 image editing | Start with 1–2 references; two were verified. When a request actually enters the local upscaling proxy, the limit is 15 |
| \#77 image editing | Start with 1–2 references; two were verified. A common maximum across upstreams has not been confirmed; larger counts need separate testing |

- File uploads: repeat the `image` field. Keep each image strictly below **20 MiB**; gateway and upstream limits also apply to the total request.
- JSON: use the `images` array, with directly downloadable image URLs or `data:image/png;base64,...`.
- `n` is the **number of output images**, not reference-image count. This guide consistently uses `n=1`.

</div>

<div id="3-尺寸比例与超分规则" class="section section level2">

## 3. Dimensions, ratios and upscaling

<div id="当前哪些请求会超分" class="section level3">

<span id="upscale-sizes"></span>

### Which requests currently use upscaling?

**Requests pass through the upscaling proxy only when routed to the local upscaling account. Size-based automatic routing is currently disabled, so requesting 2K/4K or nonstandard dimensions in \#75 does not guarantee that the proxy is used.** \#77 and \#127 are not bound to this local upscaling account.

Inside the proxy, the upstream source size follows the target orientation. The result is scaled proportionally and center-cropped to the target dimensions:

| Target orientation | Upstream source size | Target examples          |
|--------------------|----------------------|--------------------------|
| Square             | `1024x1024`          | `2048x2048`, `4096x4096` |
| Landscape          | `1536x1024`          | `2048x1152`, `3840x2160` |
| Portrait           | `1024x1536`          | `1152x2048`, `2160x3840` |

Here, upscaling means image resampling and cropping, not an additional AI upscaling model. Smaller targets may be downscaled; cropping may remove edge content.

</div>

<div id="常规尺寸参考集合" class="section level3">

### Standard reference dimensions

The following 14 dimensions come from the site's routing configuration template. **That template is currently disabled**. They explain “standard / nonstandard” dimensions and do not describe live automatic routing.

| Orientation | Standard reference sizes |
|----|----|
| Square | `1024x1024`, `1280x1280` |
| Landscape | `1536x1024`, `1536x1152`, `1360x1024`, `1536x864`, `1600x900`, `1824x1024` |
| Portrait | `1024x1536`, `1152x1536`, `1024x1360`, `864x1536`, `900x1600`, `1024x1824` |

</div>

<div id="比例集合与非常规尺寸示例" class="section level3">

<span id="ratios"></span>

### Ratios and nonstandard size examples

Common ratios: **1:1、16:9、9:16、4:3、3:4、3:2、2:3、3:1、1:3、21:9、9:21、5:4、4:5**.

The dimensions below are outside the standard reference set above. They are request templates, **not an individually verified allowlist for all models or a billing-tier table**.

| Aspect ratio | Nonstandard`size` example                          |
|--------------|----------------------------------------------------|
| 1:1          | `2048x2048`, `2880x2880`, `4096x4096`              |
| 16:9         | `1792x1008`, `2048x1152`, `2560x1440`, `3840x2160` |
| 9:16         | `1008x1792`, `1152x2048`, `1440x2560`, `2160x3840` |
| 4:3          | `2048x1536`, `4096x3072`                           |
| 3:4          | `1536x2048`, `3072x4096`                           |
| 3:2          | `3072x2048`, `3840x2560`                           |
| 2:3          | `2048x3072`, `2560x3840`                           |
| 3:1          | `1536x512`, `3072x1024`, `3840x1280`               |
| 1:3          | `512x1536`, `1024x3072`, `1280x3840`               |
| 21:9         | `2016x864`, `3780x1620`                            |
| 9:21         | `864x2016`, `1620x3780`                            |
| 5:4          | `2560x2048`, `3840x3072`                           |
| 4:5          | `2048x2560`, `3072x3840`                           |

`2000x1001` and other custom dimensions are also outside the standard set; listing every possible size is impractical.

**How to fill the fields:**

- `size` uses pixel width and height, such as `2048x1152`, separated by a lowercase `x`; the basic example does not additionally send `aspect_ratio`.
- For \#77, prefer `1024x1024`, `1536x1024`, `1024x1536`, `1536x864` or the corresponding portrait sizes.
- For \#127, prefer 16:9 / 9:16 requests, such as `3840x2160`, `2160x3840`; actual returned images are the source of truth.
- Local proxy limits: positive integer dimensions; each side ≤ **16384** and total pixels ≤ **67,108,864**. Multiples of 16 are not required. These limits do not mean every native upstream accepts the same sizes.

**Verified two-reference requests:**

| Group / model | Requested size | Actual result |
|----|----|----|
| \#75 / `gpt-image-2` | `2048x1152` | `1672x941`; this request did not use the upscaling account |
| \#77 / `gpt-image-2.5-sunburst` | `1536x864` | `1536x864` |
| \#127 / `gpt-image-2.5-sunburst` | `3840x2160` | `3584x2016` |

All three returned HTTP 200. **Requested dimensions, actual pixels and billing tiers are different concepts. Inspect image dimensions before delivery.**

</div>

</div>

<div id="4-请求示例" class="section section level2">

<span id="examples"></span>

## 4. Request examples

<div id="先选择分组-key模型和尺寸" class="section level3">

### Choose your group key, model and size first

The commands below are for Bash / WSL. Choose the group you need and execute only the required request.

| Group | Example model`MODEL`     | Example size`SIZE` | `QUALITY`   |
|-------|--------------------------|--------------------|-------------|
| \#75  | `gpt-image-2`            | `2048x1152`        | Leave blank |
| \#77  | `gpt-image-2.5-sunburst` | `1536x864`         | Leave blank |
| \#127 | `gpt-image-2`            | `3840x2160`        | `medium`    |

Other models in the same group use the same structure; replace `MODEL`. For \#127 flare / sunburst, you may initially omit `quality`; that field does not guarantee a quality-tier switch.

</div>

<div id="文生图json" class="section level3">

### Text to image: JSON

The example below uses \#75. When switching groups, replace the key, `model` and `size`; for \#127's `gpt-image-2` also add `"quality":"medium"`.

``` bash
export YM2API_KEY="YOUR_GROUP_75_API_KEY"

curl --max-time 300 "https://yyds.seqnode.com/v1/images/generations" \
  -H "Authorization: Bearer $YM2API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary '{
    "model": "gpt-image-2",
    "prompt": "白色陶瓷杯放在木桌上，柔和自然光，无文字",
    "size": "2048x1152",
    "n": 1,
    "response_format": "b64_json"
  }' \
  -o response.json
```

</div>

<div id="图生图上传两张本地图片" class="section level3">

### Image editing: upload two local images

The following uses \#127's `gpt-image-2`. For one reference, remove the second `image` field; for other groups, replace parameters according to the table.

``` bash
export YM2API_KEY="YOUR_GROUP_127_API_KEY"

curl --max-time 300 "https://yyds.seqnode.com/v1/images/edits" \
  -H "Authorization: Bearer $YM2API_KEY" \
  -F "model=gpt-image-2" \
  -F "prompt=保留图1的主体，采用图2的配色，白色背景，无文字" \
  -F "image=@reference-1.png" \
  -F "image=@reference-2.png" \
  -F "size=3840x2160" \
  -F "quality=medium" \
  -F "n=1" \
  -F "response_format=b64_json" \
  -o response.json
```

Let cURL generate the multipart headers; do not manually set `Content-Type`.

</div>

<div id="图生图图片-url--base64" class="section level3">

### Image editing: image URLs / Base64

For this \#77 example, save the following as `edit.json` and substitute actual image URLs or Base64.

``` json
{
  "model": "gpt-image-2.5-sunburst",
  "prompt": "保留图1的主体，采用图2的配色，白色背景，无文字",
  "images": [
    {"image_url": "https://YOUR_IMAGE_HOST/reference-1.png"},
    {"image_url": "data:image/png;base64,YOUR_REFERENCE_2_BASE64"}
  ],
  "size": "1536x864",
  "n": 1,
  "response_format": "b64_json"
}
```

``` bash
export YM2API_KEY="YOUR_GROUP_77_API_KEY"

curl --max-time 300 "https://yyds.seqnode.com/v1/images/edits" \
  -H "Authorization: Bearer $YM2API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @edit.json \
  -o response.json
```

</div>

<div id="返回结果" class="section level3">

### Responses

``` json
{
  "created": 1789380000,
  "data": [{"b64_json": "BASE64_IMAGE_BYTES"}]
}
```

Decode `data[].b64_json` and save the images. When using `response_format=url`, support and link expiration depend on the upstream; download promptly.

To retrieve the current key's complete model list, call `GET https://yyds.seqnode.com/v1/models` with the same authentication header.

</div>

</div>

</div>


#127 update: `gpt-image-2` supports up to 10 references; 11 returns 400. See the [group-specific tests](adobe-group127-api.en.html).
