Skip to main content
Как получить именно то изображение, которое вы хотите отвечает на вопрос «эта одна попытка не удалась, как мне это исправить». Эта страница отвечает на следующий вопрос: как сделать так, чтобы каждая попытка была удачной. Вопрос, который возникает постоянно: потребительские продукты для изображений, такие как freepik.com и higgsfield.ai, работают на тех же базовых моделях, что и вы, — на тех же семействах Nano Banana, GPT-Image и FLUX, — но их результат выглядит более завершённым. Разница не в весах модели. Она в слое, который обёрнут вокруг модели, и вы можете создать этот слой сами. Эта страница показывает, как.

1. Что оборачивает модель в потребительских image-продуктах

Разберите любой из этих продуктов, и вы обнаружите примерно восемь слоёв вне модели. Каждый из них можно воспроизвести на API:
Две платформенные границы, которые нужно определить до того, как вы копируете список функций конкурента:
  1. У APIYI нет endpoint для апскейлинга, удаления фона или восстановления лица. Если вам нужен большой image, выбирайте уровень высокого разрешения во время генерации (gpt-image-2 at 4K, Nano Banana Pro at 4K), а не рассчитывайте увеличить его позже. Для прозрачного фона только seedream-5-0 и seedream-5-0-pro можно попросить вернуть PNG с alpha-каналом.
  2. APIYI не предлагает LoRA или обучение идентичности. Возможность «обучить один раз и навсегда зафиксировать лицо», лежащая в основе Soul ID, можно лишь приблизить с помощью изображений-референсов: тот же персонаж всё равно будет дрейфовать между сценами и изменениями освещения, а лучше всего это работает, когда новый кадр остаётся близким к фронтальному ракурсу и исходному освещению. Для коммерческих персонажей, которым нужна строгая согласованность, закладывайте этап ручной проверки.

2. Первый слой уже разделяет результаты: превращайте неформальный ввод в структуру

Это слой с наибольшим эффектом, и именно его чаще всего пропускают.

Сравнение бок о бок: одна модель, один бриф, два prompt

Бриф такой: «товарный снимок кофе для e-commerce». Слева — то, что пользователь действительно вводит; справа — тот же бриф, но с заполненными недостающими решениями. Обе версии были запущены по одному разу на gemini-3-pro-image (Nano Banana Pro) в 2K, 1:1:
Изображение кофе по неструктурированному prompt: деревянный стол, кофемолка, мешок из мешковины и другие не запрошенные предметы, тёплая ностальгическая цветокоррекция и вымышленное название бренда, напечатанное на чашке

Casual prompt: 'Make me a coffee product shot, make it look nice, make it feel premium'

Изображение кофе по структурированному prompt: матовая чёрная керамическая чашка на светло-серой поверхности из микробетона, чистый размытый фон, чёткое направление света, большое негативное пространство

Structured prompt: subject, environment, light position, lens, grading, imperfections and composition all specified

Левое изображение нельзя назвать некрасивым, но оно непригодно к использованию. Модель приняла кучу решений, которые никто не утверждал: добавила кофемолку и мешок из мешковины, выбрала ностальгическую тёплую цветокоррекцию и нанесла на чашку вымышленное название бренда — автоматически сгенерированный текст такого рода делает кадр коммерчески бесполезным. Правое изображение можно сразу разместить на странице товара: нейтральный фон, световая схема, которую можно описать вслух, и место для текста. «Выглядит красиво» и «пригодно к использованию» — разные цели. Casual prompt может добиться только первой.

Шесть элементов, которые должен обеспечить слой переписывания

Переписывание не означает сделать prompt длиннее. Оно означает заполнить недостающие решения. У image prompt есть шесть несущих элементов:
Разрешение — не седьмой элемент. Выходное разрешение задаётся только параметрами вроде size / imageSize; если написать «4K» или «8K» в prompt, не добавится ни одного пикселя. См. Сжатие изображений и выходное разрешение.

Слой переписывания в коде

Здесь достаточно дешёвой и быстрой текстовой модели; её стоимость ничтожна по сравнению с генерацией:
Обратите внимание на правило, запрещающее «8K, ultra HD, masterpiece, perfect» — раздел 4 объясняет почему.

3. Конвейер, который вы реально можете выпустить

Соедините оставшиеся четыре слоя со слоем переписывания, и у вас будет вся схема:
1

Переписывание: неформальный ввод в структурированный prompt

См. раздел 2. Этот шаг по ходу дела также нейтрализует чувствительный контент во вводе пользователя, что заметно снижает, как часто запрос блокируется на следующих этапах.
2

Опора: референсные изображения плюс константа стиля

Стиль закрепляется двумя вещами: константой стиля, добавляемой к каждому prompt (ваш пресет), и фиксированным набором референсных изображений.Лимиты референсов сильно различаются по семействам — проверьте свой вариант, прежде чем проектировать конвейер:Два правила, которых нужно придерживаться: «изображение 1 / изображение 2» в prompt строго соответствуют порядку в массиве, поэтому явно укажите, что есть что; и Grok учитывает референсные изображения только на /v1/images/edits — передача их в /v1/images/generations молча отбрасывает их и все равно списывает с вас средства.
3

Образцы: генерируйте N параллельно, не полагайтесь на n

Ощущение потребительского продукта в духе «попал с первого раза» на самом деле означает, что продукт вытягивает несколько карт за вас.Но параметр n на стороне сервера не влияет на большинство image models (Seedream полностью его игнорирует). Чтобы получить несколько кандидатов, отправляйте несколько запросов одновременно с клиента — на страницах skill этого сайта лимит составляет 5 за раз. Настраивайте параллельные запросы для каждого канала; некоторые начинают возвращать 429 уже при 2, так что добавьте экспоненциальную задержку повторов.
4

Отбор: используйте vision model в роли судьи

Когда у вас есть N кандидатов, вы должны выбрать автоматически, иначе вы просто переложили выбор на пользователя.Отправьте кандидатов обратно в vision model для оценки по стандартному /v1/chat/completions входу изображения; см. Понимание изображений для подходящих моделей. Зафиксируйте рубрику по пяти измерениям и требуйте JSON в ответ: соответствие инструкции, структура и анатомия, корректность текста, реалистичность текстуры, композиция.
Не используйте /v1/rerank для этого. bge-reranker-v2-m3 — это модель reranking только для текста и не принимает изображения. Для оценки изображений требуется модель для понимания изображений.
5

Доработка и релиз

Корректируйте локально после того, как композиция уже определена — так вы получите куда более высокий процент успеха, чем от одной составной инструкции:
  • Локальная перерисовка на уровне пикселей: маски поддерживает только официальный релей gpt-image-2; см. Руководство по масочному inpainting.
  • Накопительное редактирование в несколько ходов: поддерживается на родном эндпоинте Gemini для моделей Nano Banana (передавайте предыдущее изображение обратно как role: "model"); маршруты, полученные реверс-инжинирингом, этого не поддерживают.
  • Сразу перенесите на свой хостинг: каждый возвращаемый URL временный (FLUX — примерно 10 минут и без CORS; Seedream и R2 — примерно 24 часа), поэтому загружайте его в свое объектное хранилище сразу, как только получите.

Минимальная сквозная реализация

4. Устранение «AI-внешнего вида»

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

Сравнение бок о бок

Одна и та же модель (gemini-3-pro-image), один и тот же объект, два стиля prompt, по две изображения в каждой, показана первая из каждой серии:
Портрет по пустому prompt: объект по центру и смотрит в камеру, ровное освещение без заметного направления света, аккуратный фон, вид типичной стоковой фотографии

Bare prompt: 'A photorealistic half-body portrait of a young woman by a cafe window, smiling at the camera, 8K, ultra HD, ultra detailed, flawless skin, beautiful, perfect lighting, masterpiece'

Портрет по контролируемому prompt: один направленный свет из окна, половина лица в тени, видимые поры и пушок на лице, маленькая родинка на щеке, выбившиеся пряди волос, пленочный грейдинг, объект расположен чуть правее центра

The same subject after adding four blocks of control language: light position, lens, medium, imperfections

Левое изображение не плохое — базовая модель достаточно сильна, и даже простой prompt все равно дает красивую картинку. Но в нем проявляется весь набор признаков: объект жестко зафиксирован в центре, свет настолько равномерный, что невозможно сказать, откуда он идет, и каждый элемент выглядит безупречно-нейтральным. И это не случайность: оба изображения из этой партии имели по сути одинаковую композицию и схему освещения. Правая картинка сменила подход: свет имеет направление, половине лица позволено уйти в тень, на коже видны жирный блеск и поры, есть родинка на щеке, выбившиеся волосы не причесаны, а объект расположен чуть правее центра. Это читается как конкретный человек, снятый в конкретный момент, а не как «стоковая фотография улыбающейся женщины в кафе».
Именно здесь также проявляется реальная ценность pipeline. Он не превращает неудачный результат в красивый результат — он превращает «случайно удачное» в «то хорошее, которое вы задали, можете описать и можете воспроизвести». Заинтересованная сторона может не предпочесть правое изображение, но по левому вы не сможете сказать, почему оно выглядит именно так, и не сможете попросить следующее изображение повторить его.

Симптом, исправление и чего не писать

Размытые слова о качестве, такие как 8K, ultra HD, ultra detailed, masterpiece и perfect, скорее вредят. Они не добавляют детализации (её дают только параметры) и подталкивают model к слишком резкому, перенасыщенному render — именно в этом и суть AI-облика. Левый prompt выше был ими переполнен, и результат это показывает. Если вам нужен качественный результат, вместо этого указывайте конкретный свет, объектив и medium.

Четыре блока языка управления для копирования и вставки

Добавляйте в prompt по мере необходимости; одной-двух строк из каждого блока обычно достаточно:

Свет

window light from the left is the only source in frame / hard back-side light at three in the afternoon / backlit, with a rim light on the hair / a desk lamp as a practical light inside the frame / overcast diffuse light with no distinct shadows

Объектив

35mm f/2.0, candid, at eye level / 85mm f/2.8, focus on the near eye / 24mm from a low camera position, slight edge distortion / long lens compressing the space, flattened background layers / mild vignetting in the corners

Материал

Kodak Portra 400 character, fine grain / warm highlights, cool shadows / Polaroid instant film, low contrast, soft edges / noise and colour cast of an early CCD digital camera / low saturation overall, no sharpening

Нюансы

natural skin texture, visible pores and facial fuzz / a few loose strands of hair, unbrushed / pilled sweater, worn cuffs / water rings, fingerprints and crumbs on the table / off-centre framing, part of the subject cropped at the edge

Три полных примера

Непостановочный портрет по пояс: женщина лет двадцати с небольшим у окна кафе, повернута в сторону, смотрит наружу, с улыбкой, которую она едва сдерживает. Свет из окна слева — единственный источник в кадре; правая половина её лица уходит в тень, под переносицей — небольшая жёсткая тень с чётким краем. Объектив 85 мм, f/2.8, на уровне глаз, фокус на ближнем глазе. Характер Kodak Portra 400 с мелким заметным зерном, тёплыми светами и холодными тенями, в целом низкой насыщенностью. Естественная кожа: видимые поры и пушок на лице, немного блеска на боку носа, маленькая родинка на левой щеке, несколько выбившихся волосков бровей, свободные пряди волос на лбу. Без сглаживания кожи, без бьюти-ретуши, без повышения резкости. Объект правее центра, слева — негативное пространство.
Главный кадр для e-commerce: матовая чёрная керамическая чашка для пуровера, заполненная на 80% чёрным кофе, с тонким кольцом крема на поверхности. Она стоит на светло-серой поверхности из микробетона, а позади — размытая стена того же оттенка. Основной свет — от софтбокса в левом верхнем углу, под углом 45 градусов; белый отражатель справа оставляет узкий блик вдоль правого края чашки; мягкая падающая тень уходит назад вправо. Объектив-макро 85 мм, f/5.6, фронтальный вид, наклонённый вниз на 15 градусов, вся чашка в резкости. Холодный нейтральный баланс белого, в целом низкая насыщенность. Глазурь имеет лёгкую ручную неравномерность и один крошечный след от обжига в печи, а на кромке заметен едва различимый след использования. Щедрое негативное пространство, чашка в левой трети кадра. В изображении нигде нет названий брендов или текста.
Узкая улица старого города в шесть вечера, сразу после дождя, с лужами, отражающими световые вывески магазинов по обе стороны. Единственный основной свет — тёплый уличный фонарь в конце улицы, а в качестве заполняющего света — витрины магазинов; в небе ещё ощущается след холодных сумерек, создавая тёпло-холодный контраст. Объектив 28 мм, f/4, камера на уровне глаз, слегка наклонена вверх. В целом низкая насыщенность, шум сохранён в тенях, без осветления теней. На стенах — потёки от воды, рваные старые плакаты и блоки кондиционеров; верхнюю часть кадра пересекают линии электропроводов. Никто не смотрит в камеру; прохожие видны со спины и слегка смазаны движением.

5. Факты, которые изменят дизайн вашего pipeline

Зная это заранее, вы сэкономите себе один цикл переделки:

6. Расчёт стоимости: когда пайплайн оправдан

Пайплайн обменивает деньги на более высокий success rate. На стоимость генерации изображений сильнее всего влияет output (gpt-image-2 выставляет счёт за output по $30 за миллион tokens), тогда как text- и vision-модели, используемые для переписывания и оценки, почти не влияют на итог. Поэтому стоимость по сути определяется тем, сколько вариантов вы сгенерировали. Используйте три уровня вместо одной настройки для всего: Проверка простая: увидит ли это изображение кто-либо за пределами вашей команды? Если да, Standard или выше окупается; если это только внутренний просмотр, Draft достаточно. Вы также можете добавить промежуточное условие — генерировать больше вариантов только тогда, когда лучшая оценка падает ниже порога, что позволяет большинству запросов сходиться на двух.

Краткое резюме

  • Пробел не в весах модели, а в восьми слоях вокруг модели: переписывание, presets, anchoring, sampling, selection, пошаговое редактирование, post-processing, rehosting.
  • Слой переписывания даёт лучшую отдачу: добавьте субъект, окружение, свет, объектив, grading и композицию, и «выглядит красиво» станет «можно использовать».
  • Несколько кандидатов плюс оценка с помощью vision-model — вот откуда на самом деле берётся высокий воспринимаемый процент успеха у потребительских продуктов. n не работает, поэтому делайте fan out на стороне клиента; /v1/rerank не может оценивать изображения.
  • Убрать AI-внешний вид значит добавить конкретику, а не прилагательные: назовите один источник света, укажите фокусное расстояние и диафрагму, задайте medium и grain, намеренно добавьте несовершенства и сместите субъект от центра.
  • 8K / masterpiece / perfect lighting — это чисто отрицательные варианты — дополнительного разрешения нет, а кадр они уводят в сторону отрендеренного вида.
  • Не рассчитывайте на seeds для воспроизведения; вместо этого архивируйте полный запрос. Image API синхронны и списывают плату при разрыве соединения, поэтому pipeline нужна очередь.
  • У APIYI нет эндпоинтов для upscaling, удаления фона или identity-training; проектируйте архитектуру с учётом этих слоёв с самого начала.

Связанная документация

Как получить нужное вам изображение

Спасение одного неудачного вызова: перепишите prompt, повторите попытку, переключите модели, изолируйте с помощью тестового инструмента

Основы Image API

Синхронные вызовы, уровни тайм-аута, тарификация, обработка base64, предварительная обработка входного изображения

Руководство по Mask Inpainting

Локальные правки на уровне пикселей, только для официального релея gpt-image-2

Тестирование слияния нескольких изображений

Как измерялись ограничения по reference, а также результат слияния 14 изображений

Понимание Vision

Модели Vision, которые вы можете использовать для оценки изображений-кандидатов, и как вызывать их

Создайте собственную асинхронную очередь

Обертывание синхронной генерации в очередь задач для поддержки pipeline с несколькими кандидатами