# Adobe image API · Site 2 \#127【YYY】4k Image 2.0 (Med) 4K image2.5 flare / sunburst

English translation. Model names, API fields and executable examples retain their original text, including prompts and comments.

> **Tip**
>
> **New to the API? Start with the tutorial.** Complete [Your first image edit](getting-started.en.html) first, then return here for \#127 Adobe parameters, aspect ratios and full examples.

> **Important**
>
> **Start with a single-image baseline:** `gpt-image-2`, `size="1536x864"`, `quality="medium"`, `n=1`. Use the corresponding API key when switching groups. Do not apply Grok's resolution/aspect_ratio rules directly to this group.

Group: **【YYY】4k Image 2.0 (Med) 4K image2.5 flare / sunburst**. Updated: 2026-09-15.

- Base URL：`https://yyds.seqnode.com/v1`
- Authentication: `Authorization: Bearer YOUR_GROUP_127_API_KEY`
- Use **the API key for \#127【YYY】4k Image 2.0 (Med) 4K image2.5 flare / sunburst**. These three names identify separate upstream models. They are not the same-name aliases in \#75【YYY】image 2.0 1k (2k/4k upscaling) or \#77【YYY】image 2.0 2.5 1k (integration, no upscaling).

## 1. Models and pricing

| Model | Retail price (1x) | Quality parameter |
|----|----|----|
| `gpt-image-2` | **\$0.025 / image** | This group uses the Medium tier; the example sends`quality="medium"` |
| `gpt-image-2.5-flare` | **\$0.05 / image** | The example sends`quality="medium"`; this parameter is not guaranteed to switch quality tiers |
| `gpt-image-2.5-sunburst` | **\$0.08 / image** | The example sends`quality="medium"`; this parameter is not guaranteed to switch quality tiers |

All three models are billed per image. Within this group, each model currently has one per-image price across resolutions. The table shows **1x retail prices**, not upstream costs. Account-specific discounts are reflected in your actual bill. Official token prices displayed elsewhere are not these per-image prices.

## 2. Reference images, sizes and ratios

### Number of reference images

| Model | Text to image | Tested reference-image counts |
|----|----|----|
| `gpt-image-2` | 0 images | **1–10 images**; 1, 2, 3, 8 and 10 succeeded. 11 returned 400 with an explicit limit of 10 |
| `gpt-image-2.5-flare` | 0 images | **Verified up to 6 images**; 1, 2, 3 and 6 succeeded. 7, 8 and 15 returned 502 without an explicit image-count limit |
| `gpt-image-2.5-sunburst` | 0 images | **1–6 images**; 1, 2, 3 and 6 succeeded. 7 returned 400, explicitly limiting the currently available upstream account to 6 |

These results reflect the channels tested on 2026-09-15. Intermediate counts such as 4–5 were not tested individually. We inspected the 10-reference Image 2 output and 6-reference Flare / Sunburst outputs: all numbered color cards appeared. This does not guarantee preservation of every complex reference. Flare returned 502 for 7, 8 and 15 references, followed by some 503 responses; these errors do not establish its image-count limit.

- **JSON image editing**: use `images` as an array of objects, each containing `{"image_url":"图片URL或data URL"}`. PNG Base64, two HTTPS references and two multipart references were verified for all three models.
- **Local files**: use multipart and repeat the `image` field. A top-level JSON `image` field is not equivalent.
- **Image encoding**: PNG is verified; see the parameter table for mixed JPEG / WebP references. Each multipart file must be strictly below 20 MiB. These tests used small files and did not verify the file-size boundary; gateway and upstream limits also apply to the entire request.
- URLs must download images directly. Base64 examples include a `data:image/png;base64,`, `data:image/jpeg;base64,` or `data:image/webp;base64,` prefix.
- **JSON forms verified to return 400**: `images: []`, `images: ["URL"]`, top-level `image`, `images[].file_id`, and string-valued `n: "1"`. `n` must be a number.
- `n` is the **number of output images**; the number of reference images is the length of the `images` array.

### Image sizes and aspect ratios

Start with **16:9、9:16** and request `3840x2160` or `2160x3840`. For a basic call, express the aspect ratio through `size` without additionally sending `aspect_ratio`.

| Aspect ratio | Smaller request example | Larger request example |
|--------------|-------------------------|------------------------|
| 1:1          | `1024x1024`             | `2048x2048`            |
| 16:9         | `1536x864`              | `3840x2160`            |
| 9:16         | `864x1536`              | `2160x3840`            |
| 4:3          | `1536x1152`             | `2048x1536`            |
| 3:4          | `1152x1536`             | `1536x2048`            |
| 3:2          | `1536x1024`             | `3072x2048`            |
| 2:3          | `1024x1536`             | `2048x3072`            |

**This table contains common request templates, not a support allowlist exhaustively verified for all three models.** Test other ratios, such as 3:1, 1:3, 21:9, 9:21, 5:4 and 4:5, with a small number of requests at your target dimensions. A complete upstream size allowlist or common maximum pixel count has not been confirmed.

`size` accepts positive integer pixel dimensions, for example `3840x2160`, separated by a lowercase `x`. Do not infer actual output dimensions from the group's “4K” name alone.

**Two-reference test results:** All three were `size="3840x2160"`, `quality="medium"`, `n=1` JSON editing requests and returned HTTP 200.

| Model                    | Test date  | Actual output pixels |
|--------------------------|------------|----------------------|
| `gpt-image-2`            | 2026-09-15 | `3840x2160`          |
| `gpt-image-2.5-flare`    | 2026-09-15 | `3584x2016`          |
| `gpt-image-2.5-sunburst` | 2026-09-14 | `3584x2016`          |

**About actual dimensions:** This Adobe group is not bound to the site's local upscaling proxy. The upstream may adjust dimensions. Inspect the image file before delivery, rather than relying on HTTP 200 or the 4K billing tier. The table confirms successful 4K requests; reference-image limits follow the latest boundary tests on this page. Not all aspect ratios were tested individually.

## 3. Request parameters

The three models use the same request structure, but some parameters behave differently. The table below lists confirmed **JSON `/v1/images/edits` results**. Text-to-image uses the basic structure in the examples below.

| Parameter | Value / format | Current finding |
|----|----|----|
| `model` | Required: full model name | All three models produced images in live tests |
| `prompt` | Recommended | Describe the edit and each reference's role. Numbered color-card tests confirmed that multiple references contributed to the output |
| `images` | Required object array for image editing | Each item contains`{"image_url":"URL或data URL"}`; use multipart for local file uploads`image` |
| `size` | Recommended`宽x高` | Landscape / portrait orientation takes effect. See actual pixels below; they may differ from the request |
| `aspect_ratio` | Tested here`"9:16"` with`size` | omitted. See actual pixels below; priority when this conflicts with`size` was not tested |
| `quality` | **Recommended`"medium"`** | Image 2's`high` returned 200, but a quality-tier change was not established. Sunburst's`high` returned 502; Flare's high-quality request encountered 503 and remains unverified. Do not rely on these results to switch basic calls to High |
| `n` | **Recommended numeric value`1`** | Image 2's`n=2` returned two images. Sunburst's`n=2` returned 502; Flare's`n=2` also returned 502 on retest. Larger output counts were not tested |
| `response_format` | `"b64_json"` or`"url"` | Both formats were verified for all three models. Returned URLs were downloaded and checked; expiration was not tested |
| `output_format` | Optional`"jpeg"` | Image 2 returned PNG even when JPEG was requested. For Flare / Sunburst, use the detected file format shown below |

| Test case | `gpt-image-2` | `gpt-image-2.5-flare` | `gpt-image-2.5-sunburst` |
|----|----|----|----|
| Two references: JPEG + WebP | 1536×864 PNG | 1376×768 PNG | 1376×768 PNG |
| `size="1536x864"` | 1536×864 PNG | 1376×768 PNG | 1376×768 PNG |
| `size="864x1536"` | 864×1536 PNG | 768×1376 PNG | 768×1376 PNG |
| Only`aspect_ratio="9:16"`, omitting`size` | 1440×2560 PNG | 1152×2048 PNG | 1152×2048 PNG |
| `output_format="jpeg"` | 1536×864 PNG | 1376×768 JPEG | 1376×768 JPEG |

Basic examples explicitly set `quality="medium"`. **HTTP 200 confirms request success only**; it does not prove that every supplied field took effect. `seed`, `mask`, `background`, `output_compression`, `moderation`, `input_fidelity`, `style`, `partial_images`, streaming responses and `output_format="webp"` are outside the currently confirmed range.

Full test records: [Parameter verification results (Chinese source)](adobe-group127-test-report.md). Errors and retests are included; 502 / 503 responses were not simplified into “unsupported parameter”.

### Recommended request configuration

| Model | Starting request | Confirmed range |
| --- | --- | --- |
| `gpt-image-2` | One PNG, `1536x864`, `quality="medium"`, `n=1` | 1–10 refs; `n=1–2`; URL / Base64; JSON / multipart; highest verified request 3840×2160 |
| `gpt-image-2.5-flare` | One PNG, `1536x864`, `quality="medium"`, `n=1` | 1–6 refs verified; URL / Base64; JSON / multipart; highest verified request 3840×2160 |
| `gpt-image-2.5-sunburst` | One PNG, `1536x864`, `quality="medium"`, `n=1` | 1–6 refs; URL / Base64; JSON / multipart; highest verified request 3840×2160 |

Read the delivered file format and dimensions. Flare and Sunburst may adjust requested dimensions. `quality="high"` and multiple outputs are outside the confirmed range.

## 4. Request examples

### Text to image: a payload for each model

Choose one example and save it as `request.json`. Each example requests one landscape image.

**gpt-image-2 · \$0.025/image**

``` json
{
  "model": "gpt-image-2",
  "prompt": "白色陶瓷杯放在木桌上，柔和自然光，无文字",
  "size": "3840x2160",
  "quality": "medium",
  "n": 1,
  "response_format": "b64_json"
}
```

**gpt-image-2.5-flare · \$0.05/image**

``` json
{
  "model": "gpt-image-2.5-flare",
  "prompt": "白色陶瓷杯放在木桌上，柔和自然光，无文字",
  "size": "3840x2160",
  "quality": "medium",
  "n": 1,
  "response_format": "b64_json"
}
```

**gpt-image-2.5-sunburst · \$0.08/image**

``` json
{
  "model": "gpt-image-2.5-sunburst",
  "prompt": "白色陶瓷杯放在木桌上，柔和自然光，无文字",
  "size": "3840x2160",
  "quality": "medium",
  "n": 1,
  "response_format": "b64_json"
}
```

**Send the request** （Bash / WSL）：

``` bash
export YM2API_KEY="YOUR_GROUP_127_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 @request.json \
  -o response.json
```

### Image editing: two local references

Use the structure below for all three models, changing only `MODEL`. For one reference, remove the second `image` field.

``` bash
export YM2API_KEY="YOUR_GROUP_127_API_KEY"
MODEL="gpt-image-2.5-flare"
# MODEL 也可填写 gpt-image-2 或 gpt-image-2.5-sunburst

curl --max-time 300 "https://yyds.seqnode.com/v1/images/edits" \
  -H "Authorization: Bearer $YM2API_KEY" \
  -F "model=$MODEL" \
  -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`.

### Image editing: URL / Base64 references

Save the following as `edit.json` and replace the model name and both reference images:

``` 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": "3840x2160",
  "quality": "medium",
  "n": 1,
  "response_format": "b64_json"
}
```

``` bash
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
```

### Responses

``` json
{
  "created": 1789380000,
  "data": [{"b64_json": "BASE64_IMAGE_BYTES"}]
}
```

Decode `data[].b64_json` and save the image. If you choose `url`, read `data[].url` and download promptly. Use the actual image encoding to choose the file extension: Image 2 still returned PNG when JPEG was requested. Check usage after a timeout before resubmitting.

To list models available to the current key, call `GET https://yyds.seqnode.com/v1/models` with the same authentication header.
