nano-banana-2.1; substitua o modelo na URL ou no SDK para usar os outros dois.
Dados de conexão
Criar uma BetterToken API Key · catálogo de modelos · Apresentação dos modelos Nano Banana
Gere a primeira imagem
DefinaBETTERTOKEN_API_KEY no terminal e execute. A chamada aguarda a geração e salva o JSON completo em response.json.
- macOS / Linux
- Windows PowerShell
imageSize para 2K ou 4K para maior resolução. Comece com 1K, 1:1 e uma imagem. Não ative novas tentativas automáticas com --retry.
Parâmetros comuns
Para fotos de produto, descreva objeto, material, iluminação e fundo. Para cartazes, indique o texto exato e a disposição. Ao editar, diga o que deve mudar e o que deve ser preservado. HTTP nativo usa os campos abaixo; Python SDK usa snake_case. Coloque as opções dentro degenerationConfig.imageConfig.
Proporções aceitas pelo Google
Nano Banana 2 e 2.1 aceitam 14 proporções; Pro aceita 10. Comece com1:1 na primeira requisição.
Referência de proporções e tamanhos do Google
Esse máximo não garante a quantidade. O modelo pode retornar uma imagem mesmo se pedir várias. Para quantidade fixa, envie requisições separadas.
Leia e salve a imagem
As imagens estão emcandidates[].content.parts[].inlineData. A estrutura abaixo usa o marcador BASE64_IMAGE_DATA. Percorra todas as partes finais e ignore thought: true.
mimeType; a imagem pode ser JPEG, não sempre .png.
Exemplo completo com Python SDK
Use Python 3.10 ou mais recente egoogle-genai==2.30.1. Instale no ambiente virtual do projeto; versões antigas podem omitir image_size.
/v1 ou /v1beta. timeout usa milissegundos e attempts=1 desativa tentativas automáticas. save_images salva todas as imagens finais.
Envie uma referência
Execute depois do exemplo Python para enviar uma nova edição. Troquereference.jpg pelo arquivo local. Para PNG use mime_type="image/png". Adicione outras referências em parts da mesma mensagem.
inlineData: {"mimeType": "image/jpeg", "data": "BASE64_IMAGE_DATA"}. Codifique os bytes originais sem o prefixo data:image/...;base64,. Não use multipart, Files ou fileData.
Continue editando
Execute após uma geração ou edição bem-sucedida. Preserve todo ocontent da resposta, a ordem das partes e thoughtSignature. Não recrie o histórico apenas pela imagem nem invente ou altere assinaturas.
history, acrescente a instrução e depois o content recebido. Não use previous_interaction_id de Interactions aqui.
Suporte da API
- Use
generateContentsem streaming. Esta integração não aceita Files /fileData, Batch, Interactions nem streaming. responseMimeType,responseSchemae formatos de compressão personalizados não são aceitos. EmimageConfig, use apenas os dois campos listados acima.- Omita
cachedContent, chamadas de funções, execução de código, busca de arquivos, Maps, URL context e configurações de entrada ou geração de áudio.
Se já usa um cliente OpenAI Chat
Você pode chamarPOST /v1/chat/completions com Base URL https://bettertoken.ai/v1. Para novas integrações, referências e edição em várias etapas, use a API nativa Gemini acima. Em Chat, omita n ou use o inteiro 1.
Em HTTP, google.image_config fica na raiz JSON. No Python OpenAI SDK, use extra_body, que é mesclado na raiz. Não use generationConfig aqui.
openai==1.66.2 no mesmo ambiente virtual:
choices[0].message.content, não o data[] de Images API. Não reconstrua assinaturas desse texto; use a edição nativa.
Erros comuns
As imagens chegam na resposta atual. Não há recuperação em segundo plano ou consulta de tarefa neste fluxo. Salve os resultados, reserve tempo no SDK e proxy e desative tentativas automáticas.

