|

Resolvendo erro de imagem API do Nano Banana 2: 3 passos para mudar para o formato correto de invocação generateContent

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.

nano-banana-2-api-error-fix-generatecontent-guide-pt-pt 图示


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/generations ou :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.

nano-banana-2-api-error-fix-generatecontent-guide-pt-pt 图示


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 imagem
  • generationConfig.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

nano-banana-2-api-error-fix-generatecontent-guide-pt-pt 图示

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: responseModalities deve 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:

  1. No JSON de resposta, em candidates[0].content.parts, encontre a parte que contém inlineData.
  2. Obtenha a string Base64 do campo inlineData.data.
  3. Decodifique usando base64.b64decode() e salve como um arquivo de imagem.
  4. O campo inlineData.mimeType informará o formato da imagem (geralmente image/png).

Resumo

Os pontos principais sobre erros na API de imagens do Nano Banana 2:

  1. Causa do erro clara: Usar /v1/images/generations (formato OpenAI) para chamar o modelo de imagem Gemini aciona o erro "not supported model".
  2. Mudar para generateContent: O endpoint correto é /v1beta/models/gemini-3.1-flash-image-preview:generateContent.
  3. Configurar responseModalities: É obrigatório incluir ["TEXT", "IMAGE"] no generationConfig, 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

  1. 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
  2. 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
  3. 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

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

Similar Posts