HiAPI
Блог

Руководство по использованию

gpt-image-2 для карточек товаров: пакетный рабочий процесс на hiapi

Используйте API задач gpt-image-2/text-to-image на hiapi, чтобы сгенерировать для всего каталога товаров чистые изображения на белом фоне для листинга, ракурсы и детали, а также лайфстайл-сцены — с реально воспроизведёнными изображениями, подтверждённой ценой $0.03 за изображение и готовыми к копированию пакетными скриптами.

Jul 1, 2026
gpt-image-2 для карточек товаров: пакетный рабочий процесс на hiapi

TL;DR

  • Что это: рабочий процесс, который можно запустить и воспроизвести, используя gpt-image-2/text-to-image на hiapi для генерации изображений товаров для электронной коммерции. Каждое изображение на этой странице отрисовано по исходному промпту, напечатанному рядом с ним — никаких стоковых фотографий, никаких заимствованных демонстраций.
  • Одна модель, три применения: чистые каталожные изображения на белом фоне, ракурсы и детали одного и того же продукта, а также лайфстайл-сцены — всё через один и тот же интерфейс задач текст-в-изображение.
  • Факты об API (проверено на платформе): gpt-image-2/text-to-image работает на асинхронном интерфейсе задач (/v1/tasks). Объект input требует prompt, aspect_ratio (1:1 для листинга, 4:5 для соцсетей, 16:9 для баннеров) и resolution (1K / 2K / 4K). Результирующее изображение находится в output[0].url.
  • Цена: gpt-image-2/text-to-image — единая цена $0.03 за изображение. Каталог из 20 SKU по 3 изображения на товар — это 60 изображений и $1.80. Актуальные цены смотрите на странице тарифов.
  • Как запустить: отправьте POST в API задач, опрашивайте до статуса success, затем скачайте изображение из output[0].url — этот URL истекает, поэтому сразу сохраните байты. В конце приведены полные готовые к копированию скрипты отправки/опроса/скачивания и пакетный цикл.

Зачем использовать gpt-image-2 для изображений товаров

У конвейера изображений товаров есть скучная, но строгая спецификация: один и тот же продукт, чистая подача, единообразный фон, подходящее для листинга соотношение сторон. gpt-image-2/text-to-image подходит для этого по трём причинам.

Во-первых, он сохраняет описание продукта стабильным в пакете задач — опишите товар один раз, повторно используйте это описание, меняя только ракурс камеры. Именно это превращает «одно главное изображение» в полный набор изображений для листинга.

Во-вторых, это одна асинхронная задача на изображение. Отправьте задачу, опрашивайте её id, заберите готовый файл — используется тот же протокол задач, что и для всех других генеративных моделей hiapi, поэтому если вы уже вызываете другие модели, поток управления здесь точно такой же.

В-третьих, это достаточно дёшево для многократных итераций. При $0.03 за изображение вы можете отрисовать три ракурса для каждого SKU и отбросить неудачные.

Единственное правило: спецификацию продукта пишем один раз и используем повторно

Секрет согласованного набора изображений для листинга в том, чтобы держать продуктовую половину промпта фиксированной и менять только операторскую половину. Вот фиксированная спецификация продукта, использованная для каждого изображения ниже:

a matte ceramic pour-over coffee dripper in sage green with a short conical body and a small pouring spout

Всё остальное — ракурс, фон, свет, композиция — добавляется под конкретный кадр. Поместите это в переменную и конкатенируйте.

Кадр 1 — изображение на белом фоне для листинга

Это кадр, который хотят маркетплейсы: чисто белый фон, мягкий равномерный свет, одна лёгкая тень, ничего лишнего в кадре.

Промпт: Studio e-commerce product photo of a matte ceramic pour-over coffee dripper in sage green with a short conical body and a small pouring spout, front three-quarter angle, centered on a pure white seamless background (#ffffff), soft even box lighting, subtle soft shadow directly beneath, sharp focus, true-to-life color, catalog listing style, no props, no text.

Настройки: aspect_ratio: 1:1, resolution: 1K

Кадры 2 и 3 — вариации того же продукта

Теперь повторно используйте точно такую же спецификацию продукта и измените только инструкцию для камеры. Поскольку продуктовая половина промпта идентична, воронка остаётся узнаваемо тем же товаром во всём наборе изображений.

Промпт (ракурс): …high side angle looking down into the cone, pure white seamless background (#ffffff), soft even box lighting, subtle soft shadow, sharp focus, true-to-life color, catalog listing style, no props, no text.

Промпт (деталь): Close-up… focus on the spout and rim texture, pure white seamless background (#ffffff), soft even box lighting, subtle soft shadow, sharp focus, macro detail, catalog listing style, no props, no text.

Кадр 4 — лайфстайл / вариация для соцсетей

Листингу нужна чистая вырезка; реклама и соцсети нуждаются в сцене. Та же спецификация продукта, новая сцена и вертикальный формат 4:5, подходящий для ленты.

Промпт: Lifestyle e-commerce scene of a matte ceramic pour-over coffee dripper in sage green with a short conical body and a small pouring spout sitting on a light oak kitchen counter beside a glass carafe and a small pile of coffee beans, warm morning window light, shallow depth of field, cozy Scandinavian interior blurred in the background, natural color, premium social-media product shot, no text.

Настройки: aspect_ratio: 4:5, resolution: 1K

API от начала до конца

Три вызова: отправить задачу, опросить, скачать файл.

1. Отправка — POST с моделью и объектом input:

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2/text-to-image",
    "input": {
      "prompt": "Studio e-commerce product photo ... no text.",
      "aspect_ratio": "1:1",
      "resolution": "1K"
    }
  }'
# -> {"data": {"taskId": "task_abc123"}}

2. Опрос — GET задачи, пока status не станет success:

curl -s https://api.hiapi.ai/v1/tasks/task_abc123 \
  -H "Authorization: Bearer $HIAPI_TOKEN"
# -> {"data": {"status": "success", "output": [{"url": "https://.../image.png"}]}}

3. Скачивание — output[0].url временный, поэтому сохраните сразу:

curl -s -o dripper-front.jpg "<output[0].url>"

Пакетный скрипт: один продукт, много изображений

Ниже готовый к копированию цикл на Python, который отрисовывает полный набор изображений для листинга из одной спецификации продукта. Он держит описание продукта фиксированным и перебирает инструкции для кадров.

import os, time, requests

BASE = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_TOKEN"]
HEAD = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}

# Fixed product spec — write it once.
PRODUCT = ("a matte ceramic pour-over coffee dripper in sage green with a short "
           "conical body and a small pouring spout")

# Vary only the shot half.
SHOTS = {
    "front":     ("1:1", "front three-quarter angle, pure white seamless background (#ffffff), "
                         "soft even box lighting, subtle soft shadow, catalog listing style, no text"),
    "angle":     ("1:1", "high side angle looking into the cone, pure white background, "
                         "soft even lighting, catalog listing style, no text"),
    "detail":    ("1:1", "close-up macro on the spout and rim, pure white background, "
                         "soft even lighting, catalog listing style, no text"),
    "lifestyle": ("4:5", "on a light oak kitchen counter with a glass carafe and coffee beans, "
                         "warm morning window light, shallow depth of field, no text"),
}

def submit(prompt, ratio):
    body = {"model": "gpt-image-2/text-to-image",
            "input": {"prompt": prompt, "aspect_ratio": ratio, "resolution": "1K"}}
    r = requests.post(BASE, headers=HEAD, json=body, timeout=60)
    return r.json()["data"]["taskId"]

def wait(task_id, timeout=600):
    deadline = time.time() + timeout
    while time.time() < deadline:
        d = requests.get(f"{BASE}/{task_id}", headers=HEAD, timeout=30).json()["data"]
        if d["status"] == "success":
            return d["output"][0]["url"]
        if d["status"] == "fail":
            raise RuntimeError(d.get("error"))
        time.sleep(5)
    raise TimeoutError(task_id)

for name, (ratio, shot) in SHOTS.items():
    prompt = f"Studio e-commerce product photo of {PRODUCT}, {shot}."
    url = wait(submit(prompt, ratio))
    img = requests.get(url, timeout=120).content   # URL expires — save now
    open(f"dripper-{name}.jpg", "wb").write(img)
    print(f"saved dripper-{name}.jpg  (cost $0.03)")

Замените PRODUCT на свой SKU, оставьте отображение SHOTS и оберните всё во внешний цикл по каталогу товаров, чтобы точно так же отрисовать каждый продукт.

Расчёт стоимости для реального каталога

gpt-image-2/text-to-image тарифицируется единообразно — $0.03 за изображение (проверено на платформе; актуальные цифры смотрите на странице тарифов). Таким образом:

Размер каталога Кадров на SKU Изображений Стоимость
20 SKU 3 60 $1.80
100 SKU 3 300 $9.00
100 SKU 4 (включая лайфстайл) 400 $12.00

Это достаточно дёшево, чтобы при изменении стандарта фона перерисовать весь каталог, а не переснимать его.

Итог

Рабочий процесс намеренно минималистичен: фиксируем спецификацию продукта, варьируем кадры, отправляем → опрашиваем → скачиваем и сохраняем байты вывода до истечения URL. Одна задача gpt-image-2/text-to-image на изображение, $0.03 за изображение, с использованием того же протокола задач, который вы уже используете для других моделей hiapi. Направьте пакетный цикл на свой каталог — и он будет масштабироваться линейно.

Похожие статьи

Все статьи →

Начните работать с постоянными артефактами ИИ

Получите API-ключ и вызывайте модели изображений, видео и аудио через один API на основе tasks.

Читать документацию API