O Google lançou o Nano Banana 2.1 em 6 de outubro de 2026, disponível na API Gemini como gemini-nano-banana-2.1. Ele atualiza o Nano Banana 2 (Gemini 3.1 Flash Image) com melhor qualidade visual, edição no estilo máscara e maior consistência de personagens entre interações. Nas resoluções compartilhadas, o custo por imagem é metade do Nano Banana 2.
Neste guia, você vai sair de um terminal vazio até uma imagem salva. Também verá como configurar proporções, saída em 2K e 4K, edição, interações múltiplas, imagens de referência, fundamentação com busca e custos. Salve cada requisição no Apidog para comparar o 2.1 com o modelo usado atualmente.
Quer o contexto antes de começar? Leia O Que É Nano Banana 2.1 para entender o que mudou e o que o Google ainda não publicou.
O que você precisa
| Item | Valor |
|---|---|
| URL base | https://generativelanguage.googleapis.com/v1beta |
| Cabeçalho de autenticação | x-goog-api-key: $GEMINI_API_KEY |
| ID do modelo | gemini-nano-banana-2.1 |
| Endpoint | POST /v1beta/interactions |
| Resoluções | 1K (padrão), 2K, 4K |
| Entradas | Texto, imagens (até 14 referências), vídeo |
| SDK Python | pip install google-genai |
| SDK JavaScript | npm install @google/genai |
Os exemplos usam a API Interactions, que é a API utilizada na documentação de geração de imagens do Google para o 2.1.
Passo 1: obtenha uma chave de API Gemini
- Abra o Google AI Studio e faça login.
- Vá em Obter chave de API e crie uma chave em um projeto do Google Cloud.
- Ative o faturamento no projeto. O nível gratuito do Nano Banana 2.1 aparece como “Não disponível” na página de preços do Google, portanto as chamadas de API exigem um projeto pago.
- Exporte a chave no terminal:
export GEMINI_API_KEY="sua-chave-aqui"
O Google vincula o 2.1 ao playground do AI Studio, útil para testar prompts. Porém, não publicou quanto uma conta gratuita pode gerar nesse ambiente. Consulte o guia sobre como usar o Nano Banana 2.1 gratuitamente e o passo a passo para obter uma chave de API Gemini.
Passo 2: gere sua primeira imagem
curl
Envie um POST para o endpoint interactions:
curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-nano-banana-2.1",
"input": [
{
"type": "text",
"text": "Crie uma imagem de um prato de nano banana em um restaurante sofisticado com tema Gemini"
}
]
}'
A resposta é JSON. A imagem chega como base64 em um bloco de conteúdo de imagem, então você precisará decodificá-la antes de salvar o arquivo.
Python
Instale o SDK:
pip install google-genai
Depois, gere e salve a imagem:
from google import genai
import base64
client = genai.Client() # lê GEMINI_API_KEY
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input="Crie uma imagem de um prato de nano banana em um restaurante sofisticado com tema Gemini",
)
with open("generated_image.png", "wb") as f:
f.write(base64.b64decode(interaction.output_image.data))
interaction.output_image retorna o último bloco de imagem gerado. O campo data contém base64.
JavaScript
Instale o SDK:
npm install @google/genai
Gere e grave a imagem:
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: "gemini-nano-banana-2.1",
input: "Crie uma imagem de um prato de nano banana em um restaurante sofisticado com tema Gemini",
});
const image = interaction.output_image;
if (image) {
fs.writeFileSync(
"nano-banana.png",
Buffer.from(image.data, "base64")
);
}
Os modelos de imagem Gemini 3 pensam antes de desenhar. O modelo pode gerar até duas imagens intermediárias de pensamento para planejar a composição. Essas imagens não são cobradas e o pensamento não pode ser desativado pela API.
Passo 3: defina proporção, resolução e saída somente de imagem
Use response_format para controlar o formato da resposta. Ao definir "type": "image", a API retorna apenas a imagem, descartando texto conversacional e simplificando o processamento.
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input="Uma foto de produto de um moedor de café preto fosco em um balcão de mármore",
response_format={
"type": "image",
"mime_type": "image/png",
"aspect_ratio": "16:9",
"image_size": "2K",
},
)
Pontos importantes:
-
image_sizeaceita1K,2Ke4K. UseKmaiúsculo:2ké rejeitado. - O Nano Banana 2.1 não oferece saída de 512px; esse nível pertence ao Nano Banana 2.
- As proporções incluem
1:1,2:3,3:2,3:4,4:3,4:5,5:4,9:16,16:9,21:9,1:4,4:1,1:8e8:1. - Uma imagem
16:9em 2K mede2752x1536; em 4K,5504x3072. - Para receber texto e imagem, use uma lista:
response_format=[
{"type": "text"},
{"type": "image"},
]
Passo 4: edite uma imagem existente
Envie a imagem como um bloco image em base64 junto com a instrução textual:
with open("living_room.png", "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("utf-8")
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input=[
{
"type": "text",
"text": (
"Usando a imagem fornecida de uma sala de estar, mude apenas "
"o sofá azul para ser um sofá chesterfield vintage de couro marrom. "
"Mantenha o restante do cômodo, incluindo as almofadas no sofá "
"e a iluminação, inalterados."
),
},
{
"type": "image",
"data": image_b64,
"mime_type": "image/png",
},
],
)
Inpainting estilo máscara sem arquivo de máscara
Não há upload de máscara separado. Em vez disso, defina a área editável no prompt:
Usando a imagem fornecida, mude apenas o [elemento específico] para [novo elemento/descrição]. Mantenha todo o resto na imagem exatamente igual, preservando o estilo, iluminação e composição originais.
Para reduzir alterações indesejadas:
- Nomeie um único elemento.
- Descreva a substituição de forma concreta.
- Repita o que deve permanecer inalterado.
Evite instruções vagas como “deixe o sofá mais bonito”, pois elas podem fazer o modelo redesenhar todo o ambiente.
Passo 5: itere com edição em múltiplas interações
Para refinar uma imagem, envie o id da interação anterior como previous_interaction_id. Você só precisa fornecer a próxima alteração desejada:
interaction_2 = client.interactions.create(
model="gemini-nano-banana-2.1",
input=(
"Atualize este infográfico para estar em espanhol. "
"Não altere nenhum outro elemento da imagem."
),
previous_interaction_id=interaction.id,
response_format={
"type": "image",
"mime_type": "image/png",
"aspect_ratio": "16:9",
"image_size": "2K",
},
)
Na API REST, envie o mesmo campo no corpo da requisição:
{
"previous_interaction_id": "<PREVIOUS_INTERACTION_ID>"
}
Essa é a situação em que a consistência aprimorada de personagens entre múltiplas interações do 2.1 importa: personagens e produtos devem permanecer reconhecíveis após várias rodadas de edição.
Passo 6: combine até 14 imagens de referência
Adicione vários blocos image ao array input. Para o Nano Banana 2.1, o Google documenta:
- Até 10 imagens de objetos de alta fidelidade.
- Até 4 imagens de personagens.
- Máximo total de 14 imagens.
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input=[
{
"type": "text",
"text": (
"Uma foto de grupo de escritório dessas pessoas, "
"elas estão fazendo caretas engraçadas."
),
},
{"type": "image", "data": person_1_b64, "mime_type": "image/png"},
{"type": "image", "data": person_2_b64, "mime_type": "image/png"},
{"type": "image", "data": person_3_b64, "mime_type": "image/png"},
],
response_format={
"type": "image",
"aspect_ratio": "5:4",
"image_size": "2K",
},
)
Imagens de referência contam como tokens de entrada. A entrada do 2.1 custa três vezes mais que a do Nano Banana 2, então fluxos com muitas referências reduzem a diferença de preço. Meça esse custo antes de migrar.
Passo 7: fundamente imagens com a Pesquisa Google
Para imagens que dependem de fatos atuais, como clima ou eventos recentes, adicione a ferramenta de busca:
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input="Uma pintura detalhada de uma borboleta Timareta descansando em uma flor",
tools=[
{
"type": "google_search",
"search_types": ["web_search", "image_search"],
}
],
)
Usar apenas {"type": "google_search"} habilita busca na web. Ao incluir image_search, o modelo pode usar imagens da web como contexto visual — um recurso suportado pelo 2.1 e pelo Nano Banana 2.
A fundamentação não pode usar imagens de pessoas reais encontradas na pesquisa. Se você mostrar resultados fundamentados aos usuários, o Google exige exibir as search_suggestions retornadas na etapa google_search_result.
Passo 8: teste no Apidog
Scripts funcionam bem para geração, mas uma requisição salva é mais rápida para validar se prompt, chave e modelo continuam funcionando. No Apidog:
- Crie um ambiente e adicione a variável
GEMINI_API_KEY. - Crie uma requisição:
POST https://generativelanguage.googleapis.com/v1beta/interactions
- Adicione o cabeçalho:
x-goog-api-key: {{GEMINI_API_KEY}}
- Cole um corpo JSON com
model,inputeresponse_format. - Clique em Send.
- Adicione um script pós-resposta para validar status e presença de imagem:
pm.test("status is 200", () => {
pm.response.to.have.status(200);
});
pm.test("response contains an image block", () => {
const steps = pm.response.json().steps || [];
const hasImage = steps.some((step) =>
step.type === "model_output" &&
(step.content || []).some(
(content) => content.type === "image" && content.data
)
);
pm.expect(hasImage).to.be.true;
});
- Duplique a requisição e altere o modelo para
gemini-3.1-flash-image. - Execute ambas usando exatamente o mesmo prompt.
Assim, você terá uma comparação lado a lado entre o 2.1 e o Nano Banana 2, com status, tempo e tamanho de resposta por execução. Para uma comparação de recursos mais ampla, consulte Nano Banana 2.1 vs Nano Banana 2 vs Pro.
Quanto custa
Nível pago, conforme a página de preços do Google em 7 de outubro de 2026:
| Modelo | Entrada / 1M | Imagem 1K | Imagem 2K | Imagem 4K | Lote 1K |
|---|---|---|---|---|---|
| Nano Banana 2.1 | $1.50 | $0.0336 | $0.0504 | $0.0756 | $0.0168 |
| Nano Banana 2 | $0.50 | $0.067 | $0.101 | $0.151 | $0.034 |
| Nano Banana Pro | $2.00 | $0.134 | $0.134 | $0.24 | $0.067 |
A saída de imagem do 2.1 custa $30 por 1 milhão de tokens:
- Imagem 1K: 1.120 tokens.
- Imagem 2K: 1.680 tokens.
- Imagem 4K: 2.520 tokens.
A saída de texto e pensamento custa $7.50 por 1 milhão de tokens. A fundamentação de busca inclui 5.000 requisições gratuitas por mês, compartilhadas entre os modelos Gemini 3.x; depois disso, custa $14 por 1.000 requisições.
Exemplo prático: gerar 1.000 imagens de produto em 2K usando prompts curtos de aproximadamente 100 tokens de entrada.
- Saída:
1.000 x $0.0504= $50.40 - Entrada:
100.000 tokens x $1.50 / 1M= $0.15 - Total: aproximadamente $50.55, além de tokens de texto de pensamento
O mesmo trabalho no Nano Banana 2 custa aproximadamente $101.
Pela API Batch, o preço de uma imagem 2K no 2.1 cai para $0.0252, reduzindo a saída para $25.20 se você puder esperar. Trabalhos em lote trocam tempo de resposta de até 24 horas por limites de taxa mais altos.
Veja mais detalhes na análise de preços da API Nano Banana 2.
Erros comuns
Estes são comportamentos genéricos da API Gemini, não erros específicos do 2.1 documentados.
| Erro | Causa provável | Correção |
|---|---|---|
400 INVALID_ARGUMENT |
image_size em minúsculas, proporção não suportada ou input malformado |
Use 2K, não 2k; confira as proporções suportadas |
403 PERMISSION_DENIED |
Chave inválida ou projeto sem faturamento | Verifique a chave e ative o faturamento |
404 NOT_FOUND |
Erro de digitação no ID do modelo | Use gemini-nano-banana-2.1 exatamente |
429 RESOURCE_EXHAUSTED |
Limite de taxa atingido | Aguarde, tente novamente ou use Batch |
500 / 503
|
Falha temporária do servidor | Tente novamente com backoff exponencial |
200 sem imagem |
Prompt bloqueado ou resposta somente de texto | Defina "type": "image" e reformule o prompt |
FAQ
Existe um nível gratuito para a API Nano Banana 2.1?
Não. O Google lista o nível gratuito da API como “Não disponível”. O playground do AI Studio se conecta ao 2.1, mas o Google não publicou um limite gratuito para ele.
O 2.1 substitui diretamente o Nano Banana 2?
Na maioria dos casos, sim. Troque o ID pelo gemini-nano-banana-2.1. Você perde o nível de 512px e paga mais por tokens de entrada, então edições com muitas referências exigem uma verificação de custo.
As imagens geradas possuem marca d'água?
Sim. Todas as saídas incluem uma marca d'água SynthID.
Posso gerar uma imagem a partir de vídeo?
Sim. O 2.1 aceita um bloco de entrada video, como uma URL do YouTube, junto com o prompt textual.
O guia antigo da API Nano Banana 2 ainda se aplica?
Os conceitos ainda se aplicam. Consulte o guia da API Nano Banana 2 para o modelo anterior.
Conclusão
O Nano Banana 2.1 promete imagens melhores pela metade do preço por imagem do Nano Banana 2, mantendo a mesma estrutura da API Interactions.
Para testar na prática:
- Obtenha uma chave com faturamento ativo.
- Gere uma imagem.
- Salve a requisição no Apidog com asserções de status e imagem.
- Duplique a requisição usando o ID do modelo anterior.
- Compare os resultados com os mesmos prompts.
Em uma tarde, você consegue verificar se o 2.1 vale a migração para seu caso de uso.
Top comments (0)