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

# Hy-Image-3.5 Preview Генерация изображений

> Генерация по тексту, до 5 референсов, вывод 1K / 2K / 4K или точные размеры в пикселях. Одно изображение на запрос.

<Info>
  Эндпоинт работает асинхронно. После отправки получите ID из `data[0].task_id` и проверяйте состояние и изображение через [запрос задачи](/ru/api-reference/tasks/status). Опрашивайте каждые 3–5 секунд; рекомендуемый общий тайм-аут клиента — 5 минут. Остановитесь при `completed` или `failed`.
</Info>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://api.apimart.ai/v1/images/generations \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "model": "hy-image-v3.5-preview",
      "prompt": "A golden retriever running on a beach in warm evening light",
      "size": "16:9",
      "resolution": "2K"
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.apimart.ai/v1/images/generations",
      headers={"Authorization": "Bearer <token>"},
      json={
          "model": "hy-image-v3.5-preview",
          "prompt": "A golden retriever running on a beach in warm evening light",
          "size": "16:9",
          "resolution": "2K"
      }
  )
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.apimart.ai/v1/images/generations", {
    method: "POST",
    headers: {
      Authorization: "Bearer <token>",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "hy-image-v3.5-preview",
      prompt: "A golden retriever running on a beach in warm evening light",
      size: "16:9",
      resolution: "2K"
    })
  });
  if (!response.ok) throw new Error(await response.text());
  console.log(await response.json());
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "code": 200,
    "data": [
      {
        "status": "submitted",
        "task_id": "task_01K..."
      }
    ]
  }
  ```
</ResponseExample>

## Заголовки запроса

<ParamField header="Authorization" type="string" required>
  Авторизация Bearer: `Bearer <token>`, где `<token>` — ваш APIMart API Key.
</ParamField>

## Параметры запроса

<ParamField body="model" type="string" required>
  Фиксированное значение: `hy-image-v3.5-preview`.
</ParamField>

<ParamField body="prompt" type="string" required>
  Описание для генерации или редактирования. Поддерживаются китайский и английский; не должно быть пустым.
</ParamField>

<ParamField body="size" type="string" default="auto">
  Соотношение сторон или точные размеры в пикселях.

  * Соотношение: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`.
  * Точные пиксели: например `2000x1104`, с учётом ограничений ниже.
  * `auto` или не задано: модель выбирает соотношение по промпту.

  При точных пикселях `resolution` не определяет размеры результата.
</ParamField>

<ParamField body="resolution" type="string" default="1K">
  Разрешение: `1K`, `2K` или `4K`; по умолчанию `1K`.

  При точных пикселях поле не определяет размеры. Всегда используйте поддерживаемое значение; другие значения возвращают HTTP 400.
</ParamField>

<ParamField body="width" type="integer">
  Точная ширина в пикселях. Обязательно передавать с `height`; приоритет выше, чем у `size` и `resolution`.

  Ширина 256–8192; ширина × высота не более 8 294 400. Рекомендуются значения, кратные 16.
</ParamField>

<ParamField body="height" type="integer">
  Точная высота в пикселях. Обязательно передавать с `width`.

  Высота 256–8192; ширина × высота не более 8 294 400. Рекомендуются значения, кратные 16.
</ParamField>

<ParamField body="image_urls" type="string[]">
  Общедоступные URL референсов, до 5 изображений. Без них — генерация по тексту; с ними — по референсам через тот же эндпоинт.

  Поддерживаются JPEG, PNG и WEBP. Рекомендуется менее 7MB на изображение. URL должны быть общедоступными.
</ParamField>

<ParamField body="negative_prompt" type="string">
  Содержимое, которое не должно появляться на изображении.
</ParamField>

<ParamField body="seed" type="integer">
  Случайное зерно; неотрицательное целое число. `0` или отсутствие означает случайное значение.
</ParamField>

<ParamField body="n" type="integer" default="1">
  Одно изображение на запрос. Допускается только `1`; другие значения возвращают HTTP 400.
</ParamField>

## Выбор размеров

Приоритет: пара `width` / `height` → точные пиксели в `size` → соотношение или `auto` в `size` совместно с `resolution`.

При точных пикселях ширина и высота — каждая 256–8192, всего не более 8 294 400 пикселей. Для обеих рекомендуются значения, кратные 16.

### Пример точных размеров

```json theme={null}
{
  "model": "hy-image-v3.5-preview",
  "prompt": "A minimalist seaside travel poster with a warm sunset",
  "width": 2000,
  "height": 1104
}
```

Можно не передавать `width` и `height`, а указать `"size": "2000x1104"`.

### Пример с референсом

```json theme={null}
{
  "model": "hy-image-v3.5-preview",
  "prompt": "Make the car in the reference image red, preserving the original background and lighting",
  "image_urls": ["https://example.com/car.png"],
  "size": "16:9",
  "resolution": "2K",
  "negative_prompt": "blur, text watermarks",
  "seed": 42,
  "n": 1
}
```

Замените URL примеров реальными общедоступными адресами. Для нескольких референсов добавьте URL в `image_urls`, суммарно не более 5 изображений.

## Ответ на отправку

<ResponseField name="code" type="integer">
  Код ответа; `200` означает успех.
</ResponseField>

<ResponseField name="data" type="array">
  Результат отправки задачи.

  <Expandable title="Показать поля задачи">
    <ResponseField name="status" type="string">
      `submitted` означает успешную отправку, а не завершение генерации.
    </ResponseField>

    <ResponseField name="task_id" type="string">
      ID задачи для проверки состояния и результата.
    </ResponseField>
  </Expandable>
</ResponseField>

## Получение результата

```bash theme={null}
curl --request GET \
  --url https://api.apimart.ai/v1/tasks/task_01K... \
  --header 'Authorization: Bearer <token>'
```

Пример успешного ответа (URL изображения приведён для примера):

```json theme={null}
{
  "code": 200,
  "data": {
    "id": "task_01K...",
    "status": "completed",
    "result": {
      "images": [
        {
          "url": ["https://example.com/generated-image.png"]
        }
      ]
    }
  }
}
```

* `pending` / `processing`: продолжать опрос.
* `completed`: получить URL из `data.result.images[0].url[0]`; `url` — массив строк.
* `failed`: прекратить опрос и прочитать причину из `data.error.message`. Полный возврат средств. Нарушения в промпте и отклонение модерацией также считаются ошибкой задачи.

Изображения хранятся в CDN платформы. Скачайте и сохраните их до времени `expires_at`, указанного в результате запроса.

## Оплата

Оплата за изображение. Актуальные цены — в [тарифах моделей](https://apimart.ai/pricing).

* При соотношении сторон оплата идёт по уровню `resolution`.
* При точных пикселях уровень определяется короткой стороной:

| Уровень | Короткая сторона |
| - | - |
| 1K | До 1024 пикселей включительно |
| 2K | 1025–2048 пикселей |
| 4K | Более 2048 пикселей |

При сбое задачи средства возвращаются полностью.

## Типичные ошибки параметров

Следующие случаи синхронно возвращают HTTP 400 без создания задачи и списания средств:

| Проблема | Действие |
| - | - |
| Пустой `prompt` | Передайте непустой промпт |
| `n` не равно `1` | Запрашивайте одно изображение за раз |
| Отрицательный `seed` | Используйте неотрицательное целое; `0` означает случайное значение |
| Неподдерживаемое `resolution` | Используйте `1K`, `2K` или `4K` |
| Неподдерживаемое соотношение в `size` | Используйте одно из 10 соотношений выше или `auto` |
| Размеры вне диапазона | Ширина и высота — каждая 256–8192, суммарно не более 8 294 400 пикселей |
| Более 5 референсов | Сократите `image_urls` до 5 изображений |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.