Loading...
Loading...
Модели Nano Banana второго поколения для генерации и редактирования изображений по промпту — точнее следуют промпту, чем первая версия.
Войдите, чтобы запускать модели
No output yet
Run the model to see generated results.
import requests
result = requests.post(
'https://api.e2x.ai/v1/jobs/submit',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
},
json={
'model': 'google/nano-banana-2',
'input': {}
}
)import time
job_id = result.json()['jobId']
while True:
response = requests.get(
f'https://api.e2x.ai/v1/jobs/{'{job_id}'}',
headers={'Authorization': f'Bearer {'{API_KEY}'}'}
)
data = response.json()['data']
if data['status'] == 'completed':
print('Done!', data['outputs'][0]['url'])
break
elif data['status'] == 'failed':
raise Exception(f"Job failed: {'{'}data['error']['message']{'}'}")
time.sleep(2)Nano Banana 2 — это gemini-3.1-flash-image от Google, и это тот тариф, на который мы указываем большинству в первую очередь. Мы отдаём её как google/nano-banana-2 — голый slug, без суффикса capability — и берём $0.04 за сгенерированное изображение при нашем значении 1K по умолчанию. Это половина цены fal.ai за тот же request, и за эти деньги вы получаете модель, которая рисует читаемый текст в кадре, принимает четырнадцать референсов и доходит до самого 4K.
Уже есть картинка, которую нужно изменить, а не заменить? Nano Banana 2 edit-image — те же веса по той же цене, с приделанным полем image_urls.
Одно предупреждение про названия перед цифрами. Nano Banana 2 — это не Nano Banana Pro. Pro — это gemini-3-pro-image, отдельная и более дорогая модель, а некоторые каталоги — в их числе fal.ai — подписывали её на отдельных страницах как «Nano Banana 2». Сравнивайте ID модели Gemini, а не маркетинговое имя.
Вот как выглядела наша цена, когда мы сверяли её в последний раз, 26 августа 2026 года:
| API-провайдер | Цена за изображение (1K) | против E2X |
|---|---|---|
| E2X | $0.04 | — |
| fal.ai | $0.08 | мы на 50% дешевле |
| WaveSpeed | $0.07 | мы на 43% дешевле |
| Google Gemini API | $0.067 | мы на 40% дешевле |
Цены и условия продуктов со временем меняются; проверьте актуальные цены каждого провайдера, прежде чем принимать решение о покупке. Цены Google Batch или Flex не эквивалентны напрямую стандартному on-demand API request, поскольку планирование, доступность и условия обработки отличаются; поэтому они исключены из этого сравнения. Это ограниченное по охвату сравнение, а не утверждение, что E2X — самый дешёвый вариант в мире при любой конфигурации.
resolution — единственный фактор тарификации, и лестница у него фиксированная:
| Разрешение | Множитель | Наша цена | fal.ai |
|---|---|---|---|
| 1K (по умолчанию) | ×1 | $0.04 | $0.08 |
| 2K | ×1,5 | $0.06 | $0.12 |
| 4K | ×2 | $0.08 | $0.16 |
Мы держимся на 50% ниже fal.ai на каждой ступени — включая 4K. Те же цифры лежат в машиночитаемой спецификации вместе с остальной schema.
Собственные прайс-листы Google рассказывают всё: Nano Banana 2 стоит $0.067, Nano Banana Pro — $0.134. Ровно вдвое. Разрыв в качестве и близко не двукратный.
Вот и сделка. Pro сохраняет преимущество на плотных типографических макетах и сложных композициях; вы вдвое режете счёт на каждом вызове, и в большинстве продуктовой работы разница до зрителя не доходит. То, что вы сохраняете на этом тарифе, важнее того, что теряете:
resolution открывает 1k, 2k и 4k. Это самый большой разрыв с её Lite-родственником, у которого параметра resolution нет вовсе — 1K там единственное, что производится.Модель Google поддерживает и сверхширокие кадрирования, которых нет у Pro — 1:4, 4:1, 1:8, 8:1. Наш enum aspect_ratio сейчас покрывает десять стандартных соотношений от 1:1 до 21:9, поэтому сверьтесь с живой спецификацией, прежде чем строить баннерный пайплайн на сверхшироком значении.
Одно жёсткое ограничение: function calling не поддерживается. Не проектируйте вокруг неё цикл с использованием инструментов.
Создайте ключ в дашборде, держите его на своём сервере и отправьте POST на наш submit endpoint. prompt — единственное обязательное поле.
curl -X POST https://api.e2x.ai/v1/jobs/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/nano-banana-2",
"input": {
"prompt": "Меловое меню, написанное от руки, у входа в лиссабонскую пекарню, тёплый предвечерний свет, слова PASTEL DE NATA 1,20 EUR отчётливо читаются",
"aspect_ratio": "4:5",
"resolution": "2k"
}
}'
Мы возвращаем job ID. Опрашивайте его или отдайте нам webhook и забудьте про polling:
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
const submitted = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/nano-banana-2",
input: {
prompt: "Изометрический разрез небольшой гидропонной теплицы, подписанные баки и трубы, стиль технической иллюстрации",
aspect_ratio: "16:9",
resolution: "1k",
},
}),
}).then((r) => r.json());
const jobId = submitted.data.jobId;
while (true) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") {
console.log(job.data.outputs[0].url);
break;
}
if (job.data.status === "failed") {
throw new Error(job.data.error?.message ?? "Generation failed");
}
await new Promise((r) => setTimeout(r, 1500));
}
Статус идёт pending → processing → completed либо останавливается на failed или cancelled. Пришлите webhookUrl, если предпочитаете, чтобы вам перезвонили.
Две детали схемы, на которых спотыкаются. Значение aspect_ratio по умолчанию у нас — 9:16, а не 1:1: портрет, потому что этого хочет основная часть нашего трафика. И значения resolution пишутся в нижнем регистре: 1k, 2k, 4k.
Nano Banana 2 стоит в середине нашего ряда, а значит для части нагрузок она неверный выбор сразу в обе стороны. Честная карта:
| Модель | Цена / изображение | Когда брать |
|---|---|---|
| Nano Banana 2 | $0.04 | Вывод 2K или 4K, смешанные референсы, реальные объекты |
| Nano Banana 2 Lite | $0.0238 | Большие объёмы, 1K достаточно, один объект на prompt |
| Nano Banana Pro | $0.075 | Плотная типографика, строгая консистентность персонажа |
| Nano Banana (legacy) | $0.0312 | Интеграция, которую вы ещё не перенесли |
| GPT Image 2 | от $0.0525 | Вам ближе эстетика OpenAI |
Начните со строки Lite, потому что именно она реально сэкономит вам деньги. Nano Banana 2 Lite стоит примерно на 40% меньше, работает примерно в 2,7 раза быстрее и в прямом сравнении идёт вровень с этой моделью по читаемости текста и консистентности референсов. То, чем вы жертвуете, узко, но реально: только 1K, никакого search grounding и слабее следование инструкциям, когда prompt жонглирует несколькими объектами. Один объект в разрешении для соцсетей? Берите Lite и оставьте разницу себе.
Поднимайтесь к Pro, когда результат — постер, набитый словами, или кампания, где одно лицо должно пережить двадцать изображений. Строку legacy пропускайте: Google сам теперь называет gemini-2.5-flash-image legacy и вместо неё рекомендует Nano Banana 2 Lite ради лучшего качества, большей скорости и меньшей цены. Такая миграция — деньги из воздуха. Остальной ряд лежит в категории text-to-image и в полном каталоге моделей.
Thinking mode меняет то, как надо писать. Модель рассуждает перед отрисовкой, поэтому вознаграждает заявленное намерение, а не гору прилагательных: «плакат для найма, который должен читаться с трёх метров» направляет её лучше, чем пятнадцать стилевых токенов.
Любой текст, который надо отрисовать, берите в кавычки ровно в том виде, в каком он должен появиться — с пунктуацией и регистром. Расплывчатые инструкции дают декоративные закорючки на любом тарифе.
Если объект существует в реальном мире, назовите его. Grounding помогает только тогда, когда модель знает, за чем тянуться. И будьте прямолинейны насчёт композиции: высокие и сверхширокие кадрирования тянет к центрированным объектам, если не сказать, где что стоит.
Каждое изображение несёт водяной знак SynthID. Незаметная метка происхождения от Google, накладывается без исключений, и ни у одного провайдера — включая нас — нет переключателя, чтобы её отключить. Если договор с клиентом запрещает материалы с водяным знаком, решите этот вопрос до интеграции.
Закладывайте задержку около 8,4 секунды медианного времени модели, а не субсекундный отклик маленькой диффузионной модели. Thinking стоит времени на часах. Наш ETA по job стоит на 30 секундах, чтобы поглотить очередь и рендеры 4K.
Явно фиксируйте resolution в коде. Значения по умолчанию у провайдеров не совпадают, и лучше обнаружить это в diff, чем в счёте.
Nano Banana 2 — продуктовое название gemini-3.1-flash-image от Google, текущей модели flash-уровня в семействе Nano Banana. Она генерирует изображения из текста, принимает до четырнадцати референсов, рисует читаемый текст в кадре и выдаёт вплоть до 4K.
Мы берём $0.04 за сгенерированное изображение при нашем 1K по умолчанию, $0.06 на 2K и $0.08 на 4K, по данным проверки 26 августа 2026 года. Цены двигаются — перед планированием бюджета сверьтесь на живой странице модели.
Нет. Nano Banana 2 — это gemini-3.1-flash-image; Pro — это gemini-3-pro-image, отдельная модель примерно с двукратной ценой по прайсу. Некоторые каталоги ошибочно подписывали Pro как «Nano Banana 2», поэтому при сравнении характеристик проверяйте ID модели Gemini.
Берите Lite, когда 1K достаточно, а ваши prompt описывают один ясный объект: она примерно на 40% дешевле и примерно в 2,7 раза быстрее. Берите Nano Banana 2 для 2K или 4K, для prompt, где несколько объектов должны встать правильно, или когда вам нужен Google Search grounding, которого у Lite нет.
Да. Каждый результат несёт водяной знак SynthID — незаметную метку Google для контента, сгенерированного ИИ. Ни у одного провайдера, включая нас, нет параметра, чтобы её выключить.
Нет. Nano Banana 2 не поддерживает function calling, так что не проектируйте вокруг неё цикл с использованием инструментов. Зато она поддерживает thinking mode и Google Search grounding, включая поиск по картинкам.
Медианная задержка модели измеряется примерно в 8,4 секунды; мы ставим ETA по job на 30 секунд, чтобы покрыть очередь и более крупные рендеры. API асинхронный — отправьте job, затем опрашивайте /v1/jobs/{id} или передайте webhookUrl.