Nota do autor: Explicação detalhada das causas fundamentais do erro "not supported model for image generation" na API de geração de imagens do Nano Banana 2, e como mudar do formato OpenAI para o formato nativo generateContent do Google para fazer a chamada corretamente.
Encontrando o erro not supported model for image generation ao usar o Nano Banana 2 para gerar imagens? Este é um dos problemas mais comuns que os desenvolvedores enfrentam ao chamar a API de imagens do Gemini. Este artigo explicará a causa raiz do erro e a forma correta de fazer a chamada, ajudando você a corrigir rapidamente o erro da API de imagens do Nano Banana 2.
Valor principal: Após ler este artigo, você entenderá as diferenças na chamada de API entre os modelos de imagem Gemini e Imagen, dominará o uso correto do endpoint generateContent e resolverá o problema de erro em 3 etapas.

Causa principal do erro na API de imagens do Nano Banana 2
| Ponto | Explicação | Solução |
|---|---|---|
| Mensagem de erro | not supported model for image generation, only imagen models are supported | Mude para o endpoint generateContent |
| Causa raiz | O endpoint no formato OpenAI só suporta modelos Imagen, não suporta modelos de imagem Gemini | Use o formato nativo da API do Google |
| Endpoint correto | /v1beta/models/{MODEL}:generateContent |
Substitua /v1/images/generations |
| Parâmetro obrigatório | responseModalities: ["TEXT", "IMAGE"] |
Defina em generationConfig |
Explicação detalhada do erro na API de imagens do Nano Banana 2
Quando você usa o endpoint /v1/images/generations no formato compatível com OpenAI para chamar o Nano Banana 2 (gemini-3.1-flash-image-preview) ou o Nano Banana Pro (gemini-3-pro-image-preview), o sistema retorna o seguinte erro:
not supported model for image generation, only imagen models are supported
(request id: 20260315043447253411115cvUiXJMF)
new_api_error convert_request_failed, 500
A causa central deste erro é: Os modelos de imagem Gemini e os modelos Imagen são arquiteturas completamente diferentes.
- Modelos Imagen (como
imagen-3.0-generate-001) são modelos especializados em geração de imagens, usando os endpoints/v1/images/generationsou:predict - Modelos de imagem Gemini (série Nano Banana) são Modelos de Linguagem Grande multimodais, capazes de gerar texto e imagem simultaneamente, e devem usar o endpoint
:generateContent
Simplificando, você está usando um "canal dedicado para texto-para-imagem" para chamar um "modelo de conversação multimodal", o formato não corresponde, por isso ocorre o erro.

Formato Correto para Chamar a API de Imagens do Nano Banana 2
Comparação: Chamada Errada vs. Correta
| Item de Comparação | ❌ Forma Errada (Formato OpenAI) | ✅ Forma Correta (Formato generateContent) |
|---|---|---|
| Endpoint da API | /v1/images/generations |
/v1beta/models/{MODEL}:generateContent |
| Estrutura da Requisição | Parâmetros prompt + size + n |
Estrutura contents + generationConfig |
| Formato da Resposta | URL da imagem | Dados de imagem Base64 inline |
| Modelos Suportados | Série DALL-E, Imagen | Modelos de imagem Gemini (série Nano Banana) |
| Conteúdo de Saída | Apenas imagem | Texto + Imagem (saída multimodal) |
Exemplo de Requisição Errada para a API de Imagens do Nano Banana 2
Veja abaixo uma chamada incorreta que resultará em erro:
# ❌ Errado: Usando o formato OpenAI para chamar o Nano Banana 2
curl -X POST https://api.apiyi.com/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-preview",
"prompt": "Um gato laranja fofo tirando uma soneca ao sol",
"size": "1024x1024",
"n": 1
}'
# Retorno: not supported model for image generation
Exemplo de Requisição Correta para a API de Imagens do Nano Banana 2
Veja abaixo a forma correta de chamada usando o formato generateContent:
# ✅ Correto: Usando o formato nativo do Google generateContent
curl -X POST https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [
{"text": "Um gato laranja fofo tirando uma soneca ao sol"}
]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"]
}
}'
🎯 Dica Técnica: Ao chamar o Nano Banana 2 pela plataforma APIYI apiyi.com, você não precisa configurar uma conta do Google Cloud separadamente. Use uma única chave API para acessar diretamente o endpoint generateContent.
Guia Rápido para a API de Imagens do Nano Banana 2
3 Passos para Corrigir Erros na API de Imagens do Nano Banana 2
Passo 1: Alterar o Endpoint da API
Mude o endereço da requisição do formato OpenAI para o formato generateContent:
# Endpoint errado
https://api.apiyi.com/v1/images/generations
# Endpoint correto (Nano Banana 2)
https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent
# Endpoint correto (Nano Banana Pro)
https://api.apiyi.com/v1beta/models/gemini-3-pro-image-preview:generateContent
Passo 2: Modificar a Estrutura do Corpo da Requisição
Mude dos parâmetros prompt + size do OpenAI para a estrutura nativa do Google contents + generationConfig. Parâmetros-chave:
contents.parts.text: Texto descritivo da imagemgenerationConfig.responseModalities: Deve ser configurado como["TEXT", "IMAGE"]
Passo 3: Processar os Dados da Resposta
A imagem retornada pelo generateContent vem codificada em Base64 inline, não como uma URL. Você precisa extrair e decodificar a imagem da resposta.
Exemplo Mínimo em Python
import requests
import base64
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.apiyi.com" # Interface unificada da APIYI
response = requests.post(
f"{BASE_URL}/v1beta/models/gemini-3.1-flash-image-preview:generateContent",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"contents": [{"parts": [{"text": "Um gato laranja fofo tirando uma soneca ao sol"}]}],
"generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}
}
)
result = response.json()
for part in result["candidates"][0]["content"]["parts"]:
if "inlineData" in part:
img_data = base64.b64decode(part["inlineData"]["data"])
with open("output.png", "wb") as f:
f.write(img_data)
print("Imagem salva como output.png")
elif "text" in part:
print("Descrição do modelo:", part["text"])
Ver código de implementação completo (com tratamento de erros e configuração de proporção)
import requests
import base64
import os
from typing import Optional
def generate_image(
prompt: str,
model: str = "gemini-3.1-flash-image-preview",
aspect_ratio: str = "1:1",
output_path: str = "output.png",
api_key: Optional[str] = None
) -> dict:
"""
Gera uma imagem usando o endpoint generateContent do Nano Banana 2
Args:
prompt: Descrição da imagem
model: Nome do modelo
aspect_ratio: Proporção (1:1, 16:9, 9:16, 4:3, 3:4)
output_path: Caminho do arquivo de saída
api_key: Chave API
Returns:
Dicionário contendo o caminho do arquivo e a descrição do modelo
"""
api_key = api_key or os.getenv("APIYI_API_KEY")
base_url = "https://api.apiyi.com" # Interface unificada da APIYI
response = requests.post(
f"{base_url}/v1beta/models/{model}:generateContent",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
},
json={
"contents": [{"parts": [{"text": prompt}]}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": aspect_ratio}
}
},
timeout=60
)
if response.status_code != 200:
raise Exception(f"Falha na requisição da API: {response.status_code} - {response.text}")
result = response.json()
candidates = result.get("candidates", [])
if not candidates:
raise Exception("Nenhum resultado válido retornado")
output = {"text": "", "image_path": ""}
for part in candidates[0]["content"]["parts"]:
if "inlineData" in part:
img_data = base64.b64decode(part["inlineData"]["data"])
with open(output_path, "wb") as f:
f.write(img_data)
output["image_path"] = output_path
elif "text" in part:
output["text"] = part["text"]
return output
# Exemplo de uso
result = generate_image(
prompt="Uma pintura de paisagem em estilo tinta-da-china, com montanhas distantes envoltas em névoa",
model="gemini-3.1-flash-image-preview",
aspect_ratio="16:9",
output_path="landscape.png"
)
print(f"Imagem salva: {result['image_path']}")
print(f"Descrição do modelo: {result['text']}")
Recomendação: Obtenha sua chave API na plataforma APIYI apiyi.com. A plataforma oferece créditos de teste gratuitos e suporta chamadas generateContent para os dois modelos de imagem Gemini: Nano Banana 2 e Nano Banana Pro.
Comparação de Modelos de API de Imagens Nano Banana 2
Entender as diferenças nos métodos de invocação da API entre os modelos de geração de imagens pode ajudá-lo a evitar erros de formato semelhantes:
| Modelo | Código | Endpoint da API | Formato de Invocação | Plataformas Disponíveis |
|---|---|---|---|---|
| Nano Banana 2 | gemini-3.1-flash-image-preview | :generateContent |
Formato nativo do Google | APIYI e outras plataformas |
| Nano Banana Pro | gemini-3-pro-image-preview | :generateContent |
Formato nativo do Google | APIYI e outras plataformas |
| Imagen 3 | imagen-3.0-generate-001 | /v1/images/generations ou :predict |
Formato compatível com OpenAI | APIYI e outras plataformas |
| DALL-E 3 | dall-e-3 | /v1/images/generations |
Formato OpenAI | APIYI e outras plataformas |
Explicação dos Parâmetros-Chave da API de Imagens Nano Banana 2

O endpoint generateContent suporta parâmetros ricos para geração de imagens:
| Parâmetro | Descrição | Obrigatório? | Valor de Exemplo |
|---|---|---|---|
contents.parts.text |
Comando de descrição da imagem | ✅ Obrigatório | "um gato laranja ao sol" |
responseModalities |
Configuração dos modos de resposta | ✅ Obrigatório | ["TEXT", "IMAGE"] |
imageConfig.aspectRatio |
Proporção da imagem | Opcional | "1:1", "16:9", "9:16" |
contents.parts.inlineData |
Imagem de referência (imagem para imagem) | Opcional | Dados de imagem Base64 |
💡 Nota importante:
responseModalitiesdeve conter tanto"TEXT"quanto"IMAGE". Definir apenas["IMAGE"]causará falha na requisição. Isso ocorre porque os modelos de imagem Gemini são modelos multimodais que sempre geram tanto uma descrição textual quanto a imagem.
Perguntas Frequentes
Q1: Por que o Nano Banana 2 não pode ser chamado usando o formato OpenAI?
O Nano Banana 2 (gemini-3.1-flash-image-preview) é um Modelo de Linguagem Grande multimodal baseado no Gemini. Sua capacidade de geração de imagens é realizada através de "geração por conversa", e não por uma "interface dedicada de texto para imagem". O endpoint /v1/images/generations do formato OpenAI é projetado especificamente para modelos de geração de imagens dedicados como DALL-E e Imagen, e não consegue processar a estrutura de solicitação multimodal do modelo Gemini. Ao chamar através da plataforma APIYI apiyi.com, é necessário escolher o formato de endpoint correspondente com base no tipo de modelo.
Q2: Qual é a diferença entre a API de imagens do Nano Banana 2 e do Nano Banana Pro?
Ambos usam o endpoint generateContent, e o formato de chamada é exatamente o mesmo. As principais diferenças são:
- Nano Banana 2 (versão Flash): Geração mais rápida, cerca de 3-5 segundos, ideal para geração em lote e prototipagem rápida.
- Nano Banana Pro: Qualidade de imagem superior, taxa de precisão de renderização de texto de 94%, ideal para design refinado e uso comercial.
Ambos os modelos estão disponíveis na plataforma APIYI apiyi.com. Basta alternar o nome do modelo na URL do endpoint.
Q3: Como processar os dados de imagem retornados pelo generateContent?
Diferente do formato OpenAI que retorna uma URL de imagem, o generateContent retorna dados de imagem inline codificados em Base64. Etapas de processamento:
- No JSON de resposta, em
candidates[0].content.parts, encontre a parte que contéminlineData. - Obtenha a string Base64 do campo
inlineData.data. - Decodifique usando
base64.b64decode()e salve como um arquivo de imagem. - O campo
inlineData.mimeTypeinformará o formato da imagem (geralmenteimage/png).
Resumo
Os pontos principais sobre erros na API de imagens do Nano Banana 2:
- Causa do erro clara: Usar
/v1/images/generations(formato OpenAI) para chamar o modelo de imagem Gemini aciona o erro "not supported model". - Mudar para generateContent: O endpoint correto é
/v1beta/models/gemini-3.1-flash-image-preview:generateContent. - Configurar responseModalities: É obrigatório incluir
["TEXT", "IMAGE"]nogenerationConfig, caso contrário, a imagem não será gerada.
Ao encontrar um erro na API do Nano Banana 2, a solução central é simples: substitua o endpoint de geração de imagens do OpenAI pelo endpoint nativo do Google, generateContent.
Recomendamos testar rapidamente o Nano Banana 2 e o Nano Banana Pro através da APIYI apiyi.com. A plataforma oferece créditos gratuitos, suporta chamadas diretas no formato generateContent e não requer configuração de conta no Google Cloud.
📚 Referências
-
Documentação de Geração de Imagens do Google Gemini: Guia oficial da API Gemini para geração de imagens
- Link:
ai.google.dev/gemini-api/docs/image-generation - Descrição: Contém especificações completas de parâmetros e exemplos para o endpoint
generateContent
- Link:
-
Referência da API generateContent do Google: Documentação da interface de geração de conteúdo da API Gemini
- Link:
ai.google.dev/api/generate-content - Descrição: Explicação detalhada da estrutura de requisição e resposta do endpoint
generateContent
- Link:
-
Documentação de Compatibilidade Google Gemini com OpenAI: Explicação sobre a compatibilidade de formatos entre Gemini e OpenAI
- Link:
ai.google.dev/gemini-api/docs/openai - Descrição: Entenda quais recursos suportam o formato compatível com OpenAI e quais exigem o formato nativo
- Link:
Autor: Equipe Técnica da APIYI
Discussões Técnicas: Sinta-se à vontade para discutir problemas de invocação da API de imagens do Nano Banana 2 nos comentários. Mais materiais estão disponíveis no centro de documentação da APIYI em docs.apiyi.com
