Loading...
Loading...
Modelos Nano Banana de segunda geração para geração e edição de imagens por prompt, com maior fidelidade ao prompt que a versão original.
Entre para executar modelos
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)O Nano Banana 2 é o gemini-3.1-flash-image do Google, e é o tier para o qual apontamos a maioria das pessoas primeiro. Expomos como google/nano-banana-2 — o slug puro, sem sufixo de capability — e cobramos $0.04 por imagem gerada no nosso padrão de 1K. Isso é metade do preço da fal.ai para o mesmo request, e te dá um modelo que renderiza texto legível dentro da imagem, aceita quatorze referências e vai até 4K.
Já tem uma imagem que você quer alterar em vez de refazer? O Nano Banana 2 edit-image são os mesmos pesos pelo mesmo preço, com um campo image_urls parafusado por cima.
Um aviso sobre nomes antes dos números. Nano Banana 2 não é Nano Banana Pro. O Pro é o gemini-3-pro-image, um modelo separado e mais caro, e alguns catálogos — a fal.ai entre eles — rotularam ele como "Nano Banana 2" em páginas específicas. Compare o ID do modelo Gemini, não o nome de marketing.
Era este o nosso preço na última vez que conferimos, em 26 de agosto de 2026:
| Provider de API | Preço por imagem (1K) | vs. E2X |
|---|---|---|
| E2X | $0.04 | — |
| fal.ai | $0.08 | somos 50% mais baratos |
| WaveSpeed | $0.07 | somos 43% mais baratos |
| Google Gemini API | $0.067 | somos 40% mais baratos |
Os preços e as condições dos produtos podem mudar. Verifique o preço atual de cada provider antes de tomar uma decisão de compra. O preço do Google Batch ou Flex não é diretamente equivalente a um request de API on-demand padrão, porque as condições de agendamento, disponibilidade e processamento são diferentes; por isso ele ficou fora desta comparação. Esta é uma comparação de escopo limitado, não uma afirmação de que a E2X é a opção mais barata do mundo em qualquer configuração.
resolution é o único fator de cobrança, e a escada é fixa:
| Resolução | Multiplicador | Nosso preço | fal.ai |
|---|---|---|---|
| 1K (padrão) | ×1 | $0.04 | $0.08 |
| 2K | ×1.5 | $0.06 | $0.12 |
| 4K | ×2 | $0.08 | $0.16 |
Ficamos 50% abaixo da fal.ai em todo degrau — 4K incluído. Os mesmos números estão na spec legível por máquina junto com o resto do schema.
As próprias tabelas do Google contam a história: o Nano Banana 2 custa $0.067, o Nano Banana Pro custa $0.134. Exatamente o dobro. A diferença de qualidade não chega nem perto de 2×.
É essa a troca. O Pro mantém vantagem em layouts tipográficos densos e composições elaboradas; você corta a conta pela metade em toda chamada e, para a maior parte do trabalho de produto, a diferença nunca chega ao espectador. O que você mantém neste tier importa mais do que o que você perde:
resolution expõe 1k, 2k e 4k. Essa é a maior distância em relação ao irmão Lite, que não tem parâmetro resolution nenhum — 1K é a única coisa que ele produz.O modelo do Google também suporta enquadramentos ultra-wide que o Pro não oferece — 1:4, 4:1, 1:8, 8:1. Nosso enum de aspect_ratio cobre hoje os dez aspect ratios padrão, de 1:1 a 21:9, então confira a spec ao vivo antes de construir um pipeline de banners em cima de um valor ultra-wide.
Um limite duro: function calling não é suportado. Não projete um loop de uso de ferramentas em torno dele.
Crie uma API key no dashboard, mantenha ela no seu servidor e envie para o nosso endpoint de submit. prompt é o único campo obrigatório.
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": "Um cardápio escrito à mão em lousa na frente de uma padaria de Lisboa, luz quente de fim de tarde, as palavras PASTEL DE NATA 1,20 EUR claramente legíveis",
"aspect_ratio": "4:5",
"resolution": "2k"
}
}'
Devolvemos um job ID. Faça polling nele, ou nos passe um webhook e pare de fazer 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: "Corte isométrico de uma pequena estufa hidropônica, tanques e canos identificados, estilo de ilustração técnica",
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));
}
O status caminha pending → processing → completed, ou para em failed ou cancelled. Mande um webhookUrl se preferir que a gente te chame de volta.
Dois detalhes de schema pegam as pessoas. Nosso padrão de aspect_ratio é 9:16, não 1:1 — retrato, porque é isso que a maior parte do nosso tráfego quer. E os valores de resolution são em minúscula: 1k, 2k, 4k.
O Nano Banana 2 fica no meio da nossa linha, o que significa que ele é a escolha errada nas duas direções para algumas cargas de trabalho. O mapa honesto:
| Modelo | Preço / imagem | Escolha quando |
|---|---|---|
| Nano Banana 2 | $0.04 | Saída em 2K ou 4K, referências mistas, sujeitos com grounding |
| Nano Banana 2 Lite | $0.0238 | Alto volume, 1K resolve, um sujeito por prompt |
| Nano Banana Pro | $0.075 | Tipografia densa, consistência rígida de personagem |
| Nano Banana (legado) | $0.0312 | Uma integração que você ainda não migrou |
| GPT Image 2 | a partir de $0.0525 | Você prefere a estética da OpenAI |
Comece pela linha do Lite, porque é a que vai realmente te economizar dinheiro. O Nano Banana 2 Lite custa cerca de 40% menos, roda mais ou menos 2,7× mais rápido e empata com este modelo em texto legível e consistência de referência em testes lado a lado. O que você abre mão é estreito, mas é real: só 1K, sem search grounding, e obediência mais fraca às instruções assim que um prompt faz malabarismo com vários objetos. Sujeito único em resolução de rede social? Fique com o Lite e guarde a diferença.
Suba para o Pro quando a entrega for um cartaz cheio de palavras, ou uma campanha em que um rosto tem que sobreviver a vinte imagens. Pule a linha do legado — o próprio Google agora chama o gemini-2.5-flash-image de legado e recomenda o Nano Banana 2 Lite no lugar, por melhor qualidade, mais velocidade e custo menor. Essa migração é dinheiro de graça. O resto da linha está na categoria text-to-image e no catálogo de modelos completo.
O thinking mode muda a forma como você deve escrever. O modelo raciocina antes de renderizar, então ele recompensa intenção declarada em vez de adjetivos empilhados — "um cartaz de recrutamento que precisa ser lido a três metros de distância" o guia melhor do que quinze tokens de estilo.
Coloque entre aspas qualquer texto que você queira renderizado, exatamente como ele deve aparecer, pontuação e caixa inclusas. Instruções vagas produzem rabiscos decorativos em qualquer tier.
Quando um sujeito existe no mundo real, dê o nome dele. O grounding só ajuda se o modelo souber que deve buscar. E seja direto sobre layout: enquadramentos altos e ultra-wide tendem a puxar o sujeito para o centro, a menos que você diga onde cada coisa fica.
Toda imagem carrega um watermark SynthID. É o marcador de proveniência imperceptível do Google, aplicado sem exceção, e nenhum provider — nós inclusive — tem um botão para desativar. Se um contrato de cliente proíbe assets com watermark, resolva isso antes de integrar.
Reserve latência em torno de ~8,4 segundos de tempo mediano de modelo, não a resposta abaixo de um segundo de um modelo de difusão pequeno. Pensar custa tempo de relógio. Nosso ETA de job fica em 30 segundos para absorver fila e renderizações em 4K.
Fixe resolution explicitamente no código. Os padrões não coincidem entre providers, e é melhor descobrir isso em um diff do que em uma fatura.
Nano Banana 2 é o nome de produto do gemini-3.1-flash-image do Google, o modelo de tier flash atual na família Nano Banana. Ele gera imagens a partir de texto, aceita até quatorze referências, renderiza texto legível dentro da imagem e entrega até 4K.
Cobramos $0.04 por imagem gerada no nosso padrão de 1K, $0.06 em 2K e $0.08 em 4K, conferido em 26 de agosto de 2026. Preços mudam — confirme na página do modelo ao vivo antes de fechar orçamento em cima disso.
Não. O Nano Banana 2 é o gemini-3.1-flash-image; o Pro é o gemini-3-pro-image, um modelo separado por mais ou menos o dobro do preço de tabela. Alguns catálogos rotularam o Pro errado como "Nano Banana 2", então verifique o ID do modelo Gemini quando for comparar specs.
Use o Lite quando 1K bastar e seus prompts descreverem um único sujeito claro — cerca de 40% mais barato e mais ou menos 2,7× mais rápido. Use o Nano Banana 2 para 2K ou 4K, para prompts que precisam posicionar vários objetos corretamente, ou quando você quiser o Google Search grounding, que o Lite não tem.
Sim. Toda saída carrega um watermark SynthID, o marcador imperceptível do Google para conteúdo gerado por IA. Não existe parâmetro em provider nenhum para desligar, nós inclusive.
Não. O Nano Banana 2 não suporta function calling, então não projete um loop de uso de ferramentas em torno dele. Ele suporta, sim, thinking mode e Google Search grounding, incluindo Image Search.
A latência mediana do modelo fica em torno de 8,4 segundos; definimos o ETA do job em 30 segundos para cobrir fila e renderizações maiores. A API é assíncrona — envie um job e depois faça polling em /v1/jobs/{id} ou forneça um webhookUrl.