Loading...
Loading...
A família de modelos de imagem rápida e econômica do Google, para gerar imagens a partir de texto e editar imagens existentes por prompt.
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/text-to-image',
'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 é o gemini-2.5-flash-image do Google, o modelo que colocou o nome no mapa. Expomos como google/nano-banana/text-to-image e cobramos $0.0312 por imagem, 20% abaixo dos $0.039 da fal.ai. E aí vem o número que pesa mais do que o preço: o Google desliga este modelo em 2 de outubro de 2026, trinta e sete dias a contar do dia em que escrevemos isto.
Esse único fato reordena o resto da página. Ainda rodamos o endpoint, ainda respeitamos o preço, e um batch que você enfileirar esta semana termina sem problema. O que não vamos fazer é te convencer a começar uma integração nova em um modelo com cinco semanas de estrada pela frente.
Era este o nosso preço na última vez que conferimos, em 26 de agosto de 2026:
| Provider de API | Preço por imagem | vs. E2X |
|---|---|---|
| E2X | $0.0312 | — |
| fal.ai | $0.039 | somos 20% mais baratos |
| Google Gemini API | $0.039 | somos 20% mais baratos |
| OpenRouter | $0.039 | somos 20% 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.
O fornecedor não está fazendo rodeios. Direto da documentação de geração de imagens:
"O pioneiro legado da série Nano Banana. Embora tenha sido um cavalo de batalha confiável, recomendamos fortemente que os clientes migrem para o Nano Banana 2 Lite, para ter mais qualidade, velocidades de geração mais rápidas e preços de API mais baixos."
Repare em quem escreveu isso. Não é um concorrente, não somos nós — é o Google, sobre o próprio modelo, ao lado de uma tabela de depreciação que lista gemini-2.5-flash-image com data de desligamento em 2 de outubro de 2026. Um "recomendamos fortemente" somado a uma data fixa é mais ou menos como se escreve um aviso de despejo em linguagem de model card.
Já tem uma imagem que você quer alterar em vez de refazer do zero? O Nano Banana edit-image aceita referências em vez de uma tela em branco — mesmo modelo, mesmos $0.0312, mesma data de validade.
Crédito a quem merece. Este modelo construiu a própria reputação e, pelas próximas semanas, continua sendo um gerador rápido e barato.
Ele é veloz. Medição independente da OpenRouter aponta uma mediana em torno de 1,94 segundo no AI Studio e 4,48 segundos no Vertex. Nosso pipeline de jobs reserva cerca de 30 segundos de ponta a ponta, o que inclui fila e entrega do nosso lado.
Ele cobre dez aspect ratios — 21:9, 16:9, 4:3, 3:2, 1:1, 9:16, 3:4, 2:3, 5:4, 4:5. Largura suficiente para tirar um conjunto de banners e um corte de story do mesmo template de prompt.
Ele escreve uma resolução só: 1K. Sem 2K, sem 4K, sem caminho de upscale. Se um cliente pediu material para impressão, este nunca foi o modelo.
E tem uma coisa sobre a qual não vamos fingir: texto dentro da imagem é fraco aqui. O Google atribui a renderização avançada de texto à geração Gemini 3, não a esta. Peça o título de um cartaz e você vai receber formas de letra que parecem certas em tamanho de miniatura e desmontam em tamanho real. Toda página que te disse o contrário estava chutando.
Crie uma API key no dashboard, mantenha ela no seu servidor e envie o job. Só prompt é 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/text-to-image",
"input": {
"prompt": "Um capacete de mergulho de latão apoiado em uma bancada de oficina, luz da manhã atravessando uma janela empoeirada, profundidade de campo rasa",
"aspect_ratio": "3:2"
}
}'
Você recebe de volta um job ID. Faça polling até o status estabilizar:
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/text-to-image",
input: {
prompt: "Telhados de terracota ao entardecer, perspectiva baixa de drone, névoa quente, sem pessoas",
aspect_ratio: "16:9",
},
}),
}).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, 2000));
}
O status caminha pending → processing → completed, ou para em failed ou cancelled. Mande um webhookUrl no corpo se preferir que a gente te chame.
Um detalhe de schema que pega as pessoas: nosso padrão de aspect_ratio é 9:16, não 1:1. Retrato, a menos que você diga o contrário. O schema e o preço atuais moram sempre na spec legível por máquina.
Abaixo está toda a nossa linha de text-to-image. Olhe a segunda linha antes de qualquer outra coisa.
| Modelo | Preço / imagem | Escolha quando |
|---|---|---|
| Nano Banana 2 Lite | $0.0238 | Quase sempre — mais barato e mais novo que o modelo desta página |
| Nano Banana (legado) | $0.0312 | Um pipeline que você está esvaziando antes de 2 de outubro |
| Nano Banana 2 | $0.04 | Você quer a geração atual completa, não o tier Lite |
| Nano Banana Pro | $0.075 | Texto legível dentro da imagem, muitas referências, saída em 4K |
| GPT Image 2 | $0.0525 | Você prefere o estilo de renderização da OpenAI |
O Nano Banana 2 Lite é 24% mais barato que o modelo desta página, e é uma geração mais novo. Essa combinação é incomum, e derruba o único argumento que alguém já usou para ficar em pesos velhos. Não há trade-off de orçamento para pesar aqui: você paga menos, recebe um resultado melhor e sua integração para de vencer em cinco semanas. A migração se paga já no primeiro request.
Mesmo contrato JSON, mesmo loop de polling, mesmos aspect ratios. Troque a string de model e publique. Se o seu trabalho precisa de palavras legíveis gravadas na arte, pule o Lite e vá para o Nano Banana Pro — é nesse tier que o Google colocou a renderização de texto. Todo o resto que rodamos está na categoria text-to-image e no catálogo de modelos completo.
O knowledge cutoff é junho de 2025, então nada que aconteceu depois disso existe dentro dos pesos. Citar um produto de 2026 ou um evento público recente te devolve uma invenção, renderizada com toda a confiança do mundo.
Descreva óptica em vez de adjetivos. "85mm, f/1.8, contraluz, leve flare de lente" trabalha mais do que "bela foto cinematográfica" — a segunda frase é tão comum nos dados de treino que o resultado desaba para a média. Enuncie o espaço negativo também: este modelo enche um canto vazio de tralha com o maior prazer, a menos que você mande não encher.
Mantenha os prompts com menos de um parágrafo. O context window é de 65.536 tokens de entrada e 32.768 de saída, então comprimento nunca é a restrição — atenção é. Prompts longos aqui diluem em vez de refinar.
Toda saída 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 desligar.
Depois, o calendário. Coloque 2 de outubro de 2026 no seu runbook de incidentes, não só no backlog. Quando o Google desligar os pesos, os requests para este slug falham; isso é desligamento de fornecedor, não uma queda que alguém consiga contornar com patch. Se você tem jobs agendados, tarefas de cron ou uma funcionalidade voltada ao cliente apontando para cá, troque o slug agora, enquanto é uma mudança de uma linha em vez de um domingo perdido.
A tabela de depreciação do Google lista gemini-2.5-flash-image com data de desligamento em 2 de outubro de 2026. Depois dessa data o modelo para de atender requests em todos os providers, o nosso incluído, porque os pesos são do Google e cabe a ele aposentá-los. Migre antes disso, não no próprio dia.
Nano Banana 2 Lite, e nem é uma decisão apertada. Cobramos $0.0238 por ele contra os $0.0312 deste modelo, ele é uma geração inteira mais novo e o Google o aponta como substituto recomendado. Troque o slug do modelo — os formatos de request e response não mudam.
$0.0312 por imagem gerada, o que ficava 20% abaixo dos $0.039 da fal.ai quando conferimos em 26 de agosto de 2026. A API do próprio Google e a OpenRouter estavam ambas em $0.039 naquela data. Preços mudam, então confirme na página do modelo ao vivo antes de fechar o orçamento.
Não de forma confiável. O Google atribui a renderização avançada de texto à geração Gemini 3, e este modelo é anterior a ela — palavras curtas às vezes sobrevivem, frases geralmente não. Para embalagem, infográfico ou qualquer coisa com um título, use o Nano Banana Pro.
1K, e só 1K. Não existe caminho para 2K ou 4K nesta geração. Se você precisa de saída maior, o Nano Banana Pro vai até 4096×4096.
Sim. Toda imagem inclui SynthID, o marcador imperceptível do Google para conteúdo gerado por IA. Nenhum provider expõe um parâmetro para desativar, e qualquer um que dissesse o contrário estaria te enganando.
Não. Você envia um job e então faz polling do status ou nos passa um webhookUrl. Um job concluído expõe o arquivo em data.outputs[0].url, e nosso pipeline reserva cerca de 30 segundos por request.