|

Nano Banana Pro API Полное руководство по выводу в оригинальных пропорциях: 3 сценария генерации изображений в исходном размере

Заметка автора: Подробный разбор того, как добиться вывода в оригинальных пропорциях через Nano Banana Pro API. Узнайте, как правильно опускать параметр aspect_ratio, чтобы решить проблему изменения размеров при редактировании изображений.

При редактировании изображений через Nano Banana Pro API разработчики часто сталкиваются с вопросом: как сохранить исходный размер картинки? Официальная документация указывает, что параметр aspect_ratio поддерживает только 10 фиксированных пропорций. Однако на деле существует простое решение: в сценариях редактирования (image-to-image) просто не указывайте параметр aspect_ratio, и вы получите результат в оригинальном размере.

Ключевая ценность: Прочитав эту статью, вы полностью освоите технику сохранения пропорций в Nano Banana Pro API и сможете гибко управлять размерами изображений в любых ситуациях.

nano-banana-pro-original-aspect-ratio-output-ru 图示


Ключевые моменты вывода в оригинальных пропорциях Nano Banana Pro

Пункт Описание Ценность
Метод пропуска параметра Не передавайте aspect_ratio при редактировании Автоматическое сохранение размеров оригинала
10 фиксированных пропорций 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 Используются в сценариях генерации по тексту
Разница в поведении Генерация по тексту: 1:1 по дефолту; Правка фото: оригинал по дефолту Ключ к пониманию логики работы API

Принцип работы вывода в оригинальных пропорциях

У Nano Banana Pro (он же Gemini 3 Pro Image) есть две разные модели поведения по умолчанию. В сценариях генерации изображений чисто по тексту (text-to-image), если не указать aspect_ratio, API по умолчанию создаст квадратную картинку 1:1.

Однако в режиме редактирования изображений (image-to-image) логика меняется. Когда вы предоставляете референс и просите внести в него изменения, не указывая параметр aspect_ratio, API автоматически распознает исходные размеры входного изображения и выдает результат в том же разрешении. Это и есть базовый механизм, позволяющий сохранить оригинальные пропорции.

Почему это удобно?

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

nano-banana-pro-original-aspect-ratio-output-ru 图示


Подробный разбор официальных правил вывода в оригинальном соотношении сторон для Nano Banana Pro

Официальная документация API четко определяет, что параметр aspect_ratio принимает только следующие 10 предустановленных значений:

Соотношение Пример размера (1K) Типичное использование Сферы применения
1:1 1024×1024 Аватары, иконки Аватары в соцсетях
2:3 832×1248 Вертикальные постеры Обои для телефона
3:2 1248×832 Горизонтальные фото Стандартный формат камеры
3:4 864×1152 Вертикальный контент Обложки для соцсетей
4:3 1152×864 Традиционные мониторы Иллюстрации для презентаций
4:5 896×1120 Instagram Контент для соцсетей
5:4 1120×896 Печать фото Фото 8×10 дюймов
9:16 768×1344 Вертикальное видео Обложки для Reels/Shorts
16:9 1344×768 Горизонтальное видео Обложки для YouTube
21:9 1536×658 Ультраширокий экран Кинокадр

Важное примечание: Вышеуказанные ограничения по соотношению сторон применяются только в тех случаях, когда вам нужно явно задать размеры. При редактировании изображений рекомендуем проводить тесты через платформу APIYI (apiyi.com) — если просто опустить параметр aspect_ratio, вы получите результат в оригинальном размере исходника.


Быстрый старт: вывод в оригинальном соотношении в Nano Banana Pro

Минималистичный пример: редактирование с сохранением размера

Вот самый простой способ реализовать вывод в оригинальном соотношении сторон:

import openai
import base64

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://vip.apiyi.com/v1"
)

# Читаем исходное изображение и кодируем его
with open("input.jpg", "rb") as f:
    image_base64 = base64.b64encode(f.read()).decode()

# Важно: не передаем параметр aspect_ratio
response = client.chat.completions.create(
    model="gemini-3-pro-image-preview",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_base64}"}},
            {"type": "text", "text": "Измени фон изображения на закат"}
        ]
    }]
)

Посмотреть полный код реализации (с обработкой ошибок)
import openai
import base64
from pathlib import Path

def edit_image_keep_ratio(
    image_path: str,
    edit_prompt: str,
    output_path: str = "output.png"
) -> bool:
    """
    Редактирование изображения с сохранением исходного соотношения сторон

    Args:
        image_path: Путь к исходному изображению
        edit_prompt: Инструкция (промпт) для редактирования
        output_path: Путь для сохранения результата
    
    Returns:
        bool: Успешно ли выполнена операция
    """
    client = openai.OpenAI(
        api_key="YOUR_API_KEY",
        base_url="https://vip.apiyi.com/v1"
    )

    # Читаем и кодируем изображение
    image_data = Path(image_path).read_bytes()
    image_base64 = base64.b64encode(image_data).decode()

    # Определяем MIME-тип изображения
    suffix = Path(image_path).suffix.lower()
    mime_type = {"jpg": "jpeg", "jpeg": "jpeg", "png": "png", "webp": "webp"}.get(suffix[1:], "jpeg")

    try:
        # Суть: не передаем aspect_ratio, и система автоматически сохраняет оригинал
        response = client.chat.completions.create(
            model="gemini-3-pro-image-preview",
            messages=[{
                "role": "user",
                "content": [
                    {"type": "image_url", "image_url": {"url": f"data:image/{mime_type};base64,{image_base64}"}},
                    {"type": "text", "text": edit_prompt}
                ]
            }]
        )

        # Сохраняем результат
        result_base64 = response.choices[0].message.content
        output_data = base64.b64decode(result_base64)
        Path(output_path).write_bytes(output_data)
        return True

    except Exception as e:
        print(f"Ошибка редактирования: {e}")
        return False

# Пример использования
edit_image_keep_ratio(
    "product.jpg",
    "Удали фон изображения, оставив только основной продукт",
    "product_nobg.png"
)

Рекомендация: Воспользуйтесь платформой APIYI (apiyi.com), чтобы получить бесплатные тестовые лимиты и быстро проверить, как работает вывод в оригинальном соотношении. Платформа поддерживает полный функционал модели Nano Banana Pro.


Сравнение трех сценариев вывода в оригинальных пропорциях для Nano Banana Pro

nano-banana-pro-original-aspect-ratio-output-ru 图示

Сценарий Конфигурация aspect_ratio Результат Применение
Генерация по тексту (пропорции) "aspect_ratio": "16:9" 1344×768 (1K) Постеры, дизайн обложек
Генерация по тексту (стандарт) Не передавать параметр 1024×1024 Квадратные иконки
Правка — оригинал Не передавать параметр Как у оригинала Редактирование фото товаров

Сценарий 1: Генерация по тексту с заданным соотношением сторон

При создании изображения чисто по текстовому промпту, если вам нужны специфические размеры, необходимо явно указать параметр aspect_ratio:

response = client.chat.completions.create(
    model="gemini-3-pro-image-preview",
    messages=[{"role": "user", "content": "Милый котик"}],
    extra_body={
        "image_config": {
            "aspect_ratio": "16:9",  # Обязательно к указанию
            "resolution": "2K"
        }
    }
)

Сценарий 2: Редактирование с сохранением оригинального размера

Это основной кейс, ради которого написана статья. Чтобы сохранить исходные пропорции при обработке готового изображения, просто опустите параметр aspect_ratio:

response = client.chat.completions.create(
    model="gemini-3-pro-image-preview",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img}"}},
            {"type": "text", "text": "Сделай цвета на фото более насыщенными"}
        ]
    }]
    # extra_body и aspect_ratio не передаются
)

Сценарий 3: Принудительное изменение пропорций при редактировании

Если же при редактировании вам действительно нужно изменить форму картинки, можно прописать нужный параметр явно:

response = client.chat.completions.create(
    model="gemini-3-pro-image-preview",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img}"}},
            {"type": "text", "text": "Переделай композицию фото под квадрат"}
        ]
    }],
    extra_body={"image_config": {"aspect_ratio": "1:1"}}
)

Примечание: Данные конфигурации параметров проверены и успешно работают на платформе APIYI (apiyi.com).


Часто задаваемые вопросы (FAQ)

Q1: Почему после того, как я убрал aspect_ratio, изображение все равно получилось квадратным?

Убедитесь, что ваш запрос действительно содержит входное изображение. Если в messages передается только текст без картинок, API будет работать в режиме генерации по тексту (text-to-image), где по умолчанию установлено соотношение 1:1. Вывод в оригинальном размере работает только в сценариях редактирования при наличии референсного изображения.

Q2: Что делать, если размер оригинала не входит в 10 поддерживаемых пропорций?

В этом и заключается фишка метода с пропуском параметра. Например, если оригинал имеет разрешение 1920×1080 (примерно 16:9), API выдаст результат, максимально близкий к этому размеру, без принудительной обрезки. Если же вы явно укажете aspect_ratio: "16:9", на выходе получится стандартное разрешение 1344×768.

Q3: Как быстро протестировать вывод в оригинальных пропорциях?

Рекомендуем использовать агрегаторы API с поддержкой нескольких моделей:

  1. Зайдите на сайт APIYI apiyi.com и зарегистрируйте аккаунт.
  2. Получите API-ключ и бесплатные лимиты.
  3. Используйте примеры кода из этой статьи и загрузите тестовое изображение для проверки.

Итоги

Ключевые моменты для вывода в оригинальном размере в Nano Banana Pro:

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

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

Рекомендуем быстро проверить результат через APIYI apiyi.com — платформа предоставляет бесплатные лимиты и полную поддержку модели Nano Banana Pro.


📚 Полезные ресурсы

⚠️ О формате ссылок: Все внешние ссылки указаны в формате Название ресурса: domain.com. Их удобно копировать, но они не кликабельны — это сделано для сохранения SEO-веса.

  1. Официальная документация Google Gemini API: Полное описание параметров генерации изображений Nano Banana

    • Ссылка: ai.google.dev/gemini-api/docs/nanobanana
    • Описание: Официальный авторитетный документ, содержащий полное определение параметра aspect_ratio.
  2. fal.ai Nano Banana Pro API: Подробное описание интерфейса на сторонней платформе

    • Ссылка: fal.ai/models/fal-ai/nano-banana-pro/edit/api
    • Описание: Содержит примеры конфигурации параметров для сценариев image-to-image.
  3. Форум разработчиков Google AI: Обсуждения в сообществе и ответы на вопросы

    • Ссылка: discuss.ai.google.dev
    • Описание: Здесь можно найти опыт других разработчиков по управлению размерами изображений.

Автор: Техническая команда
Техническое общение: Приглашаем обсудить приемы работы с Nano Banana Pro API в комментариях. Больше материалов можно найти в техническом сообществе APIYI на сайте apiyi.com

Похожие записи