HiAPI
Блог

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

Руководство разработчика по генерации изображений товаров для электронной коммерции с помощью grok-imagine/text-to-image на HiAPI

Шаблоны промптов, сверхширокие соотношения сторон и примеры API-запросов, готовых к использованию для визуальных материалов уровня каталога

Nov 3, 2026
Flat brass and deep-green ribbons woven into a technical lattice on a near-black green field — cover art for the HiAPI developer guide.

Почему стоит использовать модель текст-в-изображение в конвейере изображений для электронной коммерции

В каждом товарном каталоге есть множество мест для изображений, с которыми студийная съёмка справляется с трудом. Продукт, выпускаемый в сорока цветовых вариантах, комплект, который меняется каждый квартал, тематический баннер, для которого нужно сделать пять региональных версий до обеда, — всё это прежде всего вопрос графика, а не творчества. Генерация изображений по тексту не заменяет фотографа, снимающего флагманские ключевые визуалы. Она берёт на себя массу повторяющейся работы вокруг этих ключевых визуалов.

Полезно чётко разграничить обязанности. grok-imagine/text-to-image подходит для таких задач, где субъект можно описать текстом, а композицию можно повторить:

  • Расширение вариантов. Одна базовая композиция, из которой выводятся разные цветовые схемы, материалы или состояния упаковки.
  • Заглушки и черновые позиции. Вывод достаточно приличных изображений уровня каталога, чтобы верстка и обзор товарного планирования продвигались до появления финальных материалов.
  • Исследование концепций. Быстрое перебирание фонов, атмосферы и кадрирования до заказа платной съёмки.
  • Региональные и форматные варианты. Один и тот же продукт, перекомпонованный в широкий ключевой баннер или квадратную плитку сетки.

Он не подходит для сценариев с контрактными требованиями к точности воспроизведения. Регулируемые рекламные заявления, точная типографика этикеток, точная передача поверхности материалов и всё, что требует юридически проверяемого изображения реального объекта, следует отдавать фотографии или контролируемому конвейеру рендеринга. Модели текст-в-изображение генеративны — они приблизительно рисуют логотип, а не точно его воспроизводят.

Практичный способ разделения — рассматривать работу как очередь. Дорогую высокодетализированную работу отдавать людям. Повторяемую, описываемую и массовую работу отдавать модели, а между генерацией и публикацией ставить этап человеческой проверки. Как только такое разделение принято, инженерные вопросы становятся обычными: как обеспечить согласованность вывода, как планировать соотношения сторон, которые реально использует магазин, и как запускать задачи пакетами, не следя за ними вручную?

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

Метафора плетения: промпты сходятся в сетку, а вывод модели затем веером расходится по равномерно расположенным позициям каталога.

Что предлагает grok-imagine/text-to-image на HiAPI

На HiAPI grok-imagine/text-to-image — это идентификатор модели, доступный через единый унифицированный API-интерфейс. Вы отправляете текстовый промпт с описанием нужного изображения и получаете сгенерированный графический ресурс. На концептуальном уровне это весь контракт — и об этом стоит сказать прямо, поскольку многие проблемы интеграции возникают из-за лишних предположений.

Для планирования важно несколько уточнений о границах:

Он управляется промптом, а не референсным изображением. Композиция, которую вы получите, происходит из предоставленного текста. Если позиция требует точного воспроизведения реального объекта, эта модель не подходящий инструмент; используйте её там, где допустимо достоверное изображение по описанию.

Всё проходит через один и тот же интерфейс. Аутентификация, структура запроса и обработка ответа следуют соглашениям платформы HiAPI, а не диалекту, специфичному для модели. Это означает, что код, написанный вами для этой модели, имеет тот же скелет, что и для любой другой модели изображений на платформе, что позволяет держать клиентский слой компактным.

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

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

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

Полезная мысленная модель: HiAPI предоставляет стабильную, унифицированную точку входа, а grok-imagine/text-to-image — то, что находится за дверью. Пусть ваша интеграция всегда указывает на эту точку входа.

Разработка шаблонов промптов для согласованных визуалов продукта

Согласованность всего каталога — не свойство самой модели, а свойство архитектуры промптов. Если каждый промпт пишется наспех, каждое изображение выглядит как отдельная съёмка. Решение — разложить промпт на фиксированные модули и менять только тот модуль, который описывает продукт.

Четырёхмодульный шаблон

[SUBJECT]      что это за продукт и его ключевые свойства материала/цвета
[STAGING]      как он размещён в кадре: ракурс, кадрирование, опорная поверхность, масштаб
[LIGHTING]     положение света, мягкость, цветовая температура, характер теней
[BACKGROUND]   поверхность, глубина резкости, окружение, свободное пространство
[CONSTRAINTS]  чего не должно быть: текста, водяных знаков, лишних предметов, людей

В рамках одной партии каталога держите STAGING, LIGHTING, BACKGROUND и CONSTRAINTS побайтово идентичными. Меняться должен только SUBJECT в зависимости от продукта. Одна эта дисциплина уже заставляет сетку выглядеть в основном согласованной.

Практический шаблон для электронной коммерции

Studio product photograph of {product_name}, {material}, {color}, {finish}.
Centered three-quarter view, product fills roughly 60% of frame height,
resting on a matte neutral surface. Soft large-source key light from
upper left, gentle fill from right, subtle contact shadow directly
beneath. Seamless light-grey background with clean negative space
above the product. No text, no logos, no watermarks, no props, no people.

Заполните {product_name}, {material}, {color} и {finish} из вашей базы данных продуктов. Всё остальное — константы в кодовой базе, лучше всего в версионируемом файле шаблона, а строку template_version записывайте в журнал генерации, чтобы при дрейфе визуального стиля можно было определить, изменился шаблон или модель.

Практические правила

  • Порядок важен меньше, чем стабильность. Выберите один порядок модулей и никогда не меняйте его в пределах каталога.
  • Описывайте материал, а не бренд. «Шлифованный алюминий» поддаётся управлению; товарный знак — нет.
  • Выносите субъект вперёд. Ставьте конкретную именную группу в начало, чтобы она закрепляла композицию.
  • Явно прописывайте отрицания. Для работы с продуктами модуль CONSTRAINTS не опционален — случайный текст и предметы реквизита — самая частая причина непригодности изображения.
  • Сначала сгенерируйте три продукта, потом триста. Дефекты шаблона масштабируются линейно вместе с размером каталога.

Относитесь к промпту как к коду: версионируйте его, проверяйте изменения и всегда связывайте сгенерированные ресурсы с версией шаблона, которая их создала.

Три фиксированных строительных модуля — субъект, освещение, фон — сплетаются в единый промпт и повторяются между вариантами.

Планирование сверхшироких соотношений сторон для витрины магазина

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

Сначала проведите инвентаризацию позиций

Пройдите по своей витрине и перечислите все различные формы рамок, которые будут нести изображения продукта: плитки сетки, галерею страницы товара, баннеры категорий, ключевой визуал главной страницы, шапку письма и любые платные медийные размещения. У каждой позиции есть форма, и формы кластеризуются. Группируйте их и генерируйте по группам, а не по отдельным изображениям.

Что меняется со сверхшироким кадром

Широкий холст — не растянутый квадрат. Когда ширина увеличивается относительно высоты:

  • Горизонтальная безопасная зона растёт, вертикальная — уменьшается. Всё, что находится близко к верхнему или нижнему краю, может быть обрезано при адаптивном кадрировании на маленьких экранах.
  • Масштаб субъекта требует решения. Центрированный продукт, разумный по размеру в квадратном кадре, в сверхшироком кадре превращается в маленький островок. Либо намеренно увеличьте его, либо примите композицию, где продукт занимает одну сторону.
  • Свободное пространство становится критичным. Широкие рамки часто несут наложенный текст, ценовые бейджи или CTA. Явно зарезервируйте эту область в промпте — например, «правую треть оставить как чистый незахламлённый фон для текста заголовка».
  • Градиенты освещения растягиваются. Мягкое виньетирование, хорошо выглядящее на квадрате, на широком кадре может выглядеть как пятно. Делайте описание освещения простым и направленным.

Композиционные схемы, выдерживающие широкое кадрирование

  1. Продукт слева, свободное пространство справа. Самая надёжная схема для ключевого баннера.
  2. Продукт по центру, достаточные поля по обеим сторонам. Подходит, когда тот же материал нужно также обрезать в квадрат.
  3. Продукт справа, окружение слева. Подходит для лайфстайл-баннеров, где левую часть несёт поверхность или текстура.

Генерируйте по самому широкому целевому формату из нужных

Если один материал должен обслуживать и широкий ключевой визуал, и квадратную плитку, сгенерируйте один вариант в композиции широкого кадра и запланируйте квадратную обрезку в вёрстке — либо сгенерируйте два варианта из одного шаблона с разными модулями постановки. Чего следует избегать — так это компоновки в узком кадре и надежды, что широкий вариант тоже подойдёт.

Записывайте предполагаемое соотношение в те же метаданные шаблона вместе с ID продукта, чтобы каждый материал в хранилище знал, для какой позиции он создан.

Как меняется размещение субъекта и безопасные зоны между узким и сверхшироким кадром.

Создание работающего запроса к HiAPI

Скелет интеграции намеренно сделан скучным, и это именно то, что нужно. Соберите промпт, отправьте его с учётными данными и идентификатором модели на endpoint HiAPI, обработайте возвращённый материал.

Схема процесса

import os, requests

HIAPI_BASE = "https://api.hiapi.ai"  # confirm exact base in platform docs
HEADERS = {
    "Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}",
    "Content-Type": "application/json",
}

def build_prompt(product, template):
    return template.format(
        product_name=product["name"],
        material=product["material"],
        color=product["color"],
        finish=product["finish"],
    )

def generate_image(prompt, aspect_ratio="1:1"):
    payload = {
        "model": "grok-imagine/text-to-image",
        "prompt": prompt,
        "aspect_ratio": aspect_ratio,
    }
    resp = requests.post(
        f"{HIAPI_BASE}/v1/images/generations",
        headers=HEADERS, json=payload, timeout=120,
    )
    resp.raise_for_status()
    return resp.json()

Перед публикацией считайте путь endpoint и точные имена параметров тем, что нужно сверить с текущей документацией платформы — этот код показывает структуру, а не замороженную схему. Важные свойства:

  • Идентификатор модели — это данные, а не код. Храните "grok-imagine/text-to-image" в конфигурации, чтобы смена модели была лишь изменением конфигурации.
  • Промпт собирается, а не вводится вручную. Одна функция build_prompt, один источник шаблона.
  • Соотношение — параметр вызова. Оно часть запроса и должно выбираться по инвентаризации позиций, а не применяться как постобработка обрезкой.
  • Ключи берутся из переменных окружения. В репозитории не должно быть никаких учётных данных.

Записывайте информацию, которая понадобится позже

Для каждого запроса сохраняйте: ID запроса, ID продукта, версию шаблона, соотношение сторон, полную строку промпта, идентификатор модели, метку времени и ссылку на возвращённый материал. Когда товарный оператор спросит, почему какая-то плитка выглядит неправильно, этот журнал даст ответ за секунды, а не за полдня.

Держите клиент компактным

Оберните вызов в небольшую функцию, возвращающую ссылку на материал или типизированную ошибку. Ваша задача по каталогу не должна знать про HTTP, а ваш HTTP-слой не должен знать про продукты. Именно это разделение делает логику повторных попыток из следующего раздела короткой.

Обработка вывода, повторные попытки и пакетные задачи

Генерация — простая часть. Всё, что действительно делает конвейер изображений надёжным, происходит после возврата ответа.

Проверяйте перед публикацией

Каждый возвращённый материал должен пройти автоматические ворота, прежде чем попасть в позицию каталога:

  • Существует ли он и декодируется ли? Файл, который скачивается, но не разбирается, — это тихий сбой, ждущий дня запуска.
  • Совпадает ли форма с позицией? Сверяйте размеры с запрошенным соотношением, а не с ожидаемым.
  • Соблюдены ли ограничения? Если ваш шаблон запрещает текст на изображении, помечайте материалы с обнаруженным текстом — лёгкого классификатора или даже выборочной ручной проверки для малых партий достаточно.
  • Проходит ли он человеческую проверку? Для любого клиентского контента настройте этап проверки. Статус одобрения — это поле на записи материала, а не сообщение в Slack.

Повторяйте с учётом различий

Не все сбои одинаковы, и одинаковое к ним отношение тратит ёмкость впустую.

  • Ошибки транспорта и ограничения частоты: повторяйте с экспоненциальной задержкой и джиттером, ограничивая небольшим числом попыток.
  • Сбои сервера: повторите несколько раз с задержкой, затем помечайте элемент как неудачный и продолжайте.
  • Ошибки схемы или валидации: никогда не повторяйте — они будут падать так же. Логируйте и оповещайте.
  • Отказ по качеству: не повторяйте вслепую. Повторный запуск точно того же промпта часто даёт похожий результат. Меняйте одну переменную — обычно описание субъекта — и фиксируйте, что эта повторная попытка использовала изменённый промпт.

Ключуйте задачи по (product_id, template_version, aspect_ratio), чтобы каждая попытка была идемпотентной. Упавший рабочий процесс должен восстанавливаться без повторной траты.

Запускайте партии через очередь, а не через цикл

Для любой задачи более чем с несколькими изображениями организуйте работу как очередь:

  1. Перечислите целевые выходы из базы данных продуктов и инвентаризации позиций, создавая записи задач со статусом pending.
  2. Обрабатывайте задачи с ограничением параллелизма — начинайте консервативно и повышайте только после наблюдения стабильной задержки.
  3. Сохраняйте каждый результат в объектное хранилище под детерминированным ключом и записывайте запись материала с метаданными генерации.
  4. Отчитывайтесь о партии: число попыток, успехов, сбоев, отказов по проверке и общее число повторов. Публикуйте эту сводку, а не только счётчик успехов.

Добавьте режим dry-run, который собирает и записывает каждый промпт без вызова API. Это самый дешёвый способ поймать дефекты шаблона на тысячах SKU.

Чек-лист перед выпуском изображений продукта в продакшен

Пройдите этот чек-лист перед запуском первой партии каталога.

Качество промптов

  • Шаблон разложен на модули субъекта, постановки, освещения, фона и ограничений.
  • В рамках одного прогона каталога меняется только модуль субъекта.
  • Отрицательные ограничения явны и включают текст, водяные знаки и случайные предметы реквизита.
  • Шаблон находится под контролем версий, и строка версии записывается в каждую запись материала.
  • Выборочно проверены как минимум три продукта, представляющих крайние случаи материалов и цветов.

Покрытие соотношений

  • Каждая позиция витрины имеет задокументированное соотношение и соответствующую схему постановки.
  • Сверхширокие материалы компонуются в широком кадре с зарезервированным свободным пространством для наложенного текста.
  • Адаптивное кадрирование проверено на самом маленьком поддерживаемом экране.

Надёжность конвейера

  • API-ключи загружаются из окружения и никогда не коммитятся в репозиторий.
  • Идентификатор модели и endpoint находятся в конфигурации и сверены с текущей документацией платформы.
  • Стратегия повторных попыток различает транспортные, серверные сбои, ошибки валидации и отказы по качеству.
  • Задачи идемпотентны по продукту, версии шаблона и соотношению.
  • Для каждого запроса записываются промпт, соотношение, модель, метка времени и ссылка на возвращённый материал.

Проверка и эксплуатация

  • Для клиентских материалов настроены ворота человеческого одобрения.
  • Сводка партии сообщает о сбоях и отказах по проверке, а не только об успехах.
  • Режим dry-run доступен и реально использовался перед крупными прогонами.
  • Текущие тарифы подтверждены на панели цен платформы, а ёмкость спланирована по количеству изображений.

Когда каждый пункт отмечен, а образец партии выглядит как одна согласованная съёмка, а не собрание незнакомцев, можно выпускать.

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

Все статьи →

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

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

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