Skip to main content
Эта страница предназначена для разработчиков, которые вызывают модели генерации/редактирования изображений через API. Она проясняет два наиболее часто путаемых вопроса: ① Что определяет разрешение выходного изображения? ② Делает ли сжатие входных референсных изображений выход размытым? Выводы применимы к Nano Banana, GPT изображения, SeeDream, Flux и другим моделям изображений, независимо от какого-либо конкретного интерфейса продукта.

Две совершенно разные вещи

При вызове image model есть два «разрешения». Это два независимых поля в запросе — не путайте их: Одной фразой: сжатие влияет на «изображение, которое вы подаете на вход»; параметр разрешения управляет «изображением, которое модель выдает на выход». У каждого — свои задачи.

Сжатие качества или сжатие размеров? Что именно сжимает «компрессия»

«Compression» часто используют в широком смысле, но у изображения есть два независимых вида «размера», и у каждого свой рычаг сжатия: Эти два параметра могут сильно расходиться. Реальный пример (эмпирические значения; зависят от кодирования):
  • Фотография с iPhone 16 Pro имеет размер 4284×5712 (около 24 мегапикселей — очень много), но файл всего 4.6 MB, потому что система уже применила эффективное кодирование с потерями при сохранении;
  • Фотография с тем же количеством пикселей, экспортированная в высоком качестве, может достигать 30 MB.
Поэтому по одному только числу пикселей или по одному только размеру файла нельзя судить, «нужно ли сжимать» изображение — это разные этапы:
  • Размеры в пикселях задают верхнюю границу того, сколько информации модель может «увидеть», и стоимость декодирования/понимания;
  • Размер файла влияет на стоимость передачи: примерно 33% раздувание из-за Base64, время загрузки и ограничение в 20 MB на один файл относятся именно к байтам.
Практическая рекомендация — делать и то и другое, по порядку: сначала ограничьте число пикселей (уменьшите самую длинную сторону пропорционально до ≤ 2048px), затем ограничьте качество (перекодируйте с качеством 0.9); и используйте размер файла как триггер (обрабатывайте только файлы больше 1.5 MB). Указанная выше фотография 4.6 MB пройдет оба шага: сторона 4284px уменьшится до 2048px, затем произойдет перекодирование с качеством 0.9 — файл обычно становится меньше 1 MB без влияния на то, насколько хорошо модель его понимает.

Разрешение вывода задается параметром размера, а не prompt

Это самое распространенное заблуждение, поэтому сначала вывод:
Если написать в prompt “4K”, “HD”, “ultra-clear” или “8K”, это НЕ сделает вывод 4K. Фактическое разрешение вывода зависит только от параметра размера в запросе. prompt управляет тем, “что рисовать”, а не тем, “какого размера будет вывод”.
Разные модели используют разные параметры размера. Наиболее распространенные:

Пример: gemini-3-pro-image

Он управляет разрешением вывода через уровень imageSize1K / 2K / 4K (по умолчанию 1K, если не указан) — а aspectRatio задает соотношение сторон кадра:
imageSize — это поле, которое фактически определяет разрешение вывода. Каждая комбинация соотношения сторон и уровня сопоставляется с фиксированными размерами в пикселях — например, 1:1 на 1K/2K/4K это примерно 1024×1024 / 2048×2048 / 4096×4096, а 16:9 — примерно 1376×768 / 2752×1536 / 5504×3072.

Серия GPT image использует строку размера в пикселях

Важный момент: если вам нужен 4K, задайте параметр размера в соответствии с нужным уровнем/пикселями (например, imageSize:"4K" или size:"4096x4096") — не пишите “4K” в prompt. prompt и параметр размера — это два независимых поля в запросе; движок не извлекает “4K” из prompt, чтобы изменить разрешение.
Некоторые модели (отдельные типы с адаптивным выводом) не принимают параметр размера — разрешение вывода определяется самой моделью (обычно около 1–1.5K). Для таких моделей 4K нельзя принудительно задать через параметры, не говоря уже о prompt. Проверьте документацию/описание возможностей каждой модели.
Поддерживаемые imageSize уровни также различаются внутри одного семейства моделей. Например, в линейке Gemini image, gemini-3-pro-image поддерживает 1K/2K/4K, но Nano Banana 2 Lite (gemini-3.1-flash-lite-image) принимает только 1K — передача 2K/4K возвращает ошибку. При переключении моделей всегда проверяйте поддерживаемые именно этой моделью уровни вместо повторного использования параметров другой модели из того же семейства.

Ухудшает ли сжатие входного изображения резкость результата? В основном нет

Вывод: в подавляющем большинстве сценариев разумное сжатие входных референсных изображений почти не влияет на резкость результата. Три причины:
  1. Результат пересоздаётся, а не является увеличенной версией вашего изображения.
    Модель создаёт новое изображение в заданном вами размере. Разрешение результата зависит только от imageSize/size, а не от того, сколько пикселей было у входного изображения. Неважно, было ли входное изображение 3000px или сжато до 2000px: если вы выберете 4K, вы получите 4K.
  2. Поле сжатия входа и поле размера результата независимы.
    Сжатие меняет только объём/количество пикселей в поле “image data” в запросе — оно никогда не затрагивает поле параметра размера. Эти два поля в запросе не связаны.
  3. Рекомендуемое сжатие мягкое — значительно выше того, что модели нужно, чтобы “видеть” изображение.
    На практике сжатие референсного изображения до длинной стороны примерно 2048px при JPEG quality около 0.9 более чем достаточно, чтобы модель поняла композицию, цвета, стиль и детали объекта — эти модели всё равно внутренне уменьшают входные изображения до умеренного разрешения перед кодированием.

Чтобы быть строгими: пограничный случай

В задачах image-to-image / тонкой правки (когда нужно строго сохранить мелкие текстуры или небольшой текст в конкретной области входа) слишком агрессивное сжатие входа (например, уменьшение длинной стороны до нескольких сотен пикселей или quality ниже 0.5) теоретически может привести к потере части деталей и косвенно повлиять на то, насколько точно правка сохраняет оригинал. Но если вы придерживаетесь мягкого стандарта вроде “длинная сторона ≤ 2048px, quality ≥ 0.85”, этот эффект в реальной работе незначителен. Более точная формулировка:
Разумное сжатие (длинная сторона 2048px, quality 0.9) → без заметного влияния на резкость результата;
только крайнее чрезмерное сжатие может вызвать потерю деталей в сценариях тонкой правки.

Практические настройки сжатия входных изображений

Если вы сжимаете входные изображения перед вызовом, мы рекомендуем такие мягкие стандарты — это позволит экономить трафик без потери полезной информации: Адаптивный подход для нескольких изображений: per-image target = clamp(total budget ÷ image count, 0.3MB, 1.5MB). Чем больше изображений, тем меньше доля на каждое изображение, при этом общий размер остается под контролем; изображения, которые уже укладываются в целевой диапазон, проходят без изменений.
Устойчивость к сбоям: сжатие — это необязательное улучшение, поэтому сохраняйте резервный вариант. Если сжатие изображения не удалось, используйте оригинал и продолжайте; никогда не прерывайте весь запрос на генерацию из-за ошибки на этапе сжатия.

Сгенерированные изображения, поступающие в последующий workflow: обрабатывайте их тоже

Изображения, создаваемые API, часто больше, чем вы ожидаете. Возьмем 4K-уровень Nano Banana Pro в качестве примера (эмпирические значения; зависят от кодирования в каждом канале): Один и тот же 4K-уровень, но разные каналы кодируют по-разному — размер файла может отличаться в 2 раза. Если сгенерированное изображение становится входом следующего шага (повторное редактирование, объединение нескольких изображений, reference image), сначала сжимайте его по тому же стандарту, что и входные изображения (длинная сторона 2048px, quality 0.9). Иначе изображение размером 18 MB после накладных расходов Base64 примерно на ~33% раздуется до около 24 MB — что легко упирается в лимиты на тело запроса/один файл и замедляет загрузку. См. Руководство разработчика Nano Banana Series для подробностей о раздувании Base64.
Использование в последующей обработке ≠ необходимость в нетронутом оригинале. Сжимайте промежуточные изображения workflow до стандарта «модель может это понять»; если итоговый результат требует 4K, генерируйте 4K только на последнем шаге — на промежуточных этапах используйте 1K/2K ради скорости и стоимости.
Если сгенерированное изображение нужно только для отображения/архивации и никогда не возвращается в модель, рассмотрите Nano Banana OSS Group: изображения возвращаются как URL, что позволяет избежать накладных расходов на передачу Base64.

Дополнительные рекомендации по обработке изображений

Помимо сжатия, перед загрузкой в сценариях вызова API стоит учитывать следующее:
  • Встраивайте ориентацию EXIF в пиксели: фотографии с телефона часто хранят сведения о повороте в теге EXIF Orientation, а не в самих пикселях. Некоторые конвейеры обработки игнорируют этот тег, поэтому модель видит изображение, повернутое набок или вверх ногами. Примените поворот к пикселям перед загрузкой (большинство библиотек сжатия делают это автоматически при повторном кодировании).
  • Удаляйте приватные метаданные EXIF перед загрузкой: оригинальные фотографии часто содержат координаты GPS, модель устройства и время съемки в EXIF. Удаляйте метаданные перед отправкой пользовательских фотографий в сторонний API — повторное кодирование обычно делает это как побочный эффект, но следите за порядком: сначала примените ориентацию, затем удалите метаданные.
  • Совместимость форматов: формат HEIC/HEIF по умолчанию на iPhone не поддерживается большинством image API — сначала конвертируйте в JPEG/PNG; используйте PNG/WebP для прозрачности; у анимированных GIF обычно считывается только первый кадр.
  • Конвертируйте цветовое пространство в sRGB: фотографии устройств Apple часто используют Display P3. Конвейеры, которые игнорируют цветовой профиль, будут давать сдвиги цветов — перед загрузкой конвертируйте в sRGB.
  • Выбирайте способ передачи под сценарий: на входной стороне Base64 — самый надежный вариант; загрузка по URL (fileUri) требует строгих условий CDN — см. Руководство разработчика серии Nano Banana, чтобы оценить компромиссы. На выходной стороне используйте Nano Banana OSS группу, чтобы получать URL вместо Base64.
  • Выбирайте нужный вам уровень выходных данных: не запрашивайте 4K, если результат этого не требует — генерация будет медленнее, файлы больше, а последующая передача и обработка дороже. Сначала итеративно работайте в 1K/2K и переходите к 4K только для финального рендера.
  • Своевременно сохраняйте URL-выходы: URL изображений, возвращаемые API, истекают. Переносите их в свое хранилище сразу после получения — никогда не воспринимайте временный URL как постоянный ресурс.

Краткая справка

  • Выходное разрешение = параметр размера (imageSize / size / aspect_ratio), а не текст в prompt. Нужен 4K? Укажите параметр — не пишите это в prompt.
  • gemini-3-pro-image использует imageSize с уровнями 1K / 2K / 4K (по умолчанию 1K); серия изображений GPT использует строку пикселей size.
  • Сжатие входных данных и выходное разрешение не связаны — это два независимых поля в запросе.
  • Размеры в пикселях и размер файла — это разные вещи: сжатие = сначала изменить размер (длинная сторона 2048px), затем перекодировать (quality 0.9); используйте размер файла как триггер (только выше 1.5MB).
  • Разумное сжатие входных данных (длинная сторона 2048px, quality 0.9) не влияет на четкость выхода; только экстремальное чрезмерное сжатие может привести к потере деталей при тонком редактировании.
  • Рекомендуемое сжатие входных данных: сжимайте только выше 1.5MB, длинная сторона ≤2048px, quality 0.9, сохраняйте исходный формат, общий размер нескольких изображений ≤6MB, один файл ≤20MB, при сбое используйте исходный файл.
  • Сжимайте сгенерированные изображения перед передачей их в downstream workflows: изображение Nano Banana Pro 4K занимает примерно 9–18 MB на изображение (зависит от канала) — если отправлять его как есть, лимиты легко будут превышены.
  • Обрабатывайте EXIF и формат перед загрузкой: встраивайте ориентацию в пиксели, удаляйте GPS и другие метаданные, связанные с конфиденциальностью, преобразуйте HEIC в JPEG, преобразуйте Display P3 в sRGB.

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