Fluxo de geração de imagens no n8n: templates de Nano Banana e Gemini
Um fluxo de geração de imagens no n8n que funcione precisa de mais do que um único nó. Este artigo percorre os templates de Nano Banana e Gemini, a configuração do HTTP Request, as variáveis de prompt, o envio em lotes, as novas tentativas e o salvamento das imagens prontas em armazenamento, com um caminho no PicassoIA para testar os prompts antes.
A maioria das automações de imagem no n8n quebra do mesmo jeito. Alguém conecta um campo de prompt a um nó, obtém uma imagem linda na primeira execução e, então, um lote de quarenta linhas bate em um limite de taxa, em um bloqueio de segurança ou em uma string base64 que nunca vira um arquivo de verdade. Este artigo monta um fluxo de geração de imagens no n8n que sobrevive à segunda execução, usando a família Nano Banana do Google e o endpoint de imagem do Gemini por trás dela.
Você vai ver a ordem dos nós, o corpo exato da requisição, três templates reutilizáveis, as configurações de nova tentativa, uma estimativa de custo e um jeito de testar prompts no PicassoIA antes de gastar uma única chamada de API. Nano Banana é o apelido do Gemini 2.5 Flash Image, então tudo aqui vale qualquer que seja o nome que você usar.
Por que os fluxos de imagem quebram no n8n
Fluxos de texto perdoam um design descuidado. Se um nó de LLM devolve uma frase um pouco estranha, o próximo nó ainda recebe uma string. Com imagens é diferente: a saída são dados binários embrulhados em JSON, a chamada leva de dez a trinta segundos, e uma única recusa pode devolver um HTTP 200 perfeitamente válido sem imagem nenhuma dentro. Essa diferença explica por que tantos templates copiados parecem ótimos em uma captura de tela e caem na terceira linha.
Cinco falhas que vale prever
Quase todo fluxo de imagem quebrado falha em um destes cinco pontos:
A base64 nunca vira arquivo. A API devolve os bytes da imagem como uma string de texto longa. Sem uma etapa de conversão, você envia uma string para o armazenamento e fica se perguntando por que a prévia aparece em branco.
Respostas vazias que parecem saudáveis. Um prompt bloqueado pode devolver status 200 sem nenhuma parte de imagem. O próximo nó roda sobre o nada.
Tráfego em rajada. Quarenta itens enviados de uma vez ultrapassam o limite por minuto, e metade deles falha com um 429.
Entrada de prompt bagunçada. Células de planilha com aspas, quebras de linha ou espaços no fim quebram corpos JSON montados à mão.
Nenhuma etapa de armazenamento. O n8n apaga dados antigos de execução por padrão, então uma imagem que existe só dentro de uma execução acaba desaparecendo com o tempo.
O que uma configuração confiável precisa
A solução é entediante, e esse é o ponto. Um fluxo confiável tem uma etapa de validação depois da chamada à API, uma etapa de conversão que produz um arquivo de verdade, uma etapa de armazenamento que devolve uma URL permanente e um ritmo entre as chamadas. Tudo o mais neste artigo é uma variação dessas quatro peças.
💡 Comece com um item só. Rode a cadeia inteira em uma única linha com o Manual Trigger. Adicione o loop e o agendamento só depois que uma imagem chegar ao armazenamento com o nome de arquivo certo.
Escolhendo um modelo de imagem do Google
Nomes sem confusão
A nomenclatura do Google muda rápido. Nano Banana começou como apelido do Gemini 2.5 Flash Image, e depois vieram as versões Pro, 2 e Lite. Na API, cada apelido corresponde a um ID de modelo, e esses IDs mudam com mais frequência do que os apelidos. Guarde o ID em um único campo do seu primeiro nó Edit Fields e referencie-o em todos os lugares. Quando um modelo melhor for lançado, você altera um valor em vez de editar cinco nós.
Uma regra prática: faça o rascunho com a faixa mais barata e gere de novo só os vencedores aprovados com a faixa Pro. Um segundo ramo no mesmo fluxo pode cuidar dessa atualização automaticamente assim que uma linha for marcada como aprovada.
O fluxo principal, nó por nó
O fluxo base tem sete nós. Monte-os nesta ordem e teste depois de cada um:
Manual Trigger enquanto você monta, depois substituído por um gatilho Schedule ou Webhook
Edit Fields, renomeado para Prompt Fields
HTTP Request, renomeado para Gemini Image
Code, renomeado para Extract Image
Convert to File
Upload compatível com S3 (Cloudflare R2, AWS S3 ou qualquer bucket semelhante)
Edit Fields ou Google Sheets para registrar a URL final
Gatilho e campos de prompt
Comece com o Manual Trigger e um nó Edit Fields que cria quatro campos: prompt, aspect_ratio, slug e model. Use 16:9 para cabeçalhos de blog e 1:1 para fotos de produto. Mantenha o slug em minúsculas com hífens, porque ele vira o nome do arquivo.
Limpe o prompt nesta etapa com uma expressão como {{ $json.prompt.trim() }}. Espaços no fim e quebras de linha soltas vindas de uma planilha são um motivo surpreendentemente comum para resultados estranhos.
A chamada HTTP Request ao Gemini
Adicione um nó HTTP Request, defina o método como POST e use esta URL, com o ID do modelo lido do seu campo model:
Para autenticação, escolha a credencial Google Gemini(PaLM) Api se a sua versão do n8n a listar para o nó HTTP Request. Se não listar, use Header Auth com o nome do cabeçalho indicado na documentação da API do Google. Depois ative Send Body, escolha JSON e monte o corpo como uma expressão, para que aspas dentro de um prompt nunca quebrem a requisição:
Em Options, aumente o timeout para 120000 ms. Chamadas de imagem são mais lentas que as de texto, e o padrão corta uma requisição saudável.
💡 O n8n também traz um nó nativo do Google Gemini, e suas operações de imagem vêm mudando entre versões. Confira a lista de operações na sua instalação. A abordagem com HTTP Request mostrada aqui funciona em todas as versões e expõe a resposta completa, o que torna possível a etapa de validação.
Transformando base64 em arquivo
A resposta aninha a imagem dentro de candidates[0].content.parts, ao lado de qualquer texto que o modelo tenha decidido acrescentar. A parte da imagem traz um objeto inlineData com um mimeType e uma string data em base64. Não presuma que a imagem é a primeira parte. Procure por ela.
Adicione um nó Code no modo Run Once for Each Item:
Lançar um erro quando a imagem está ausente é intencional. Isso transforma uma falha silenciosa em uma falha visível e permite que as configurações de nova tentativa e de saída de erro da próxima seção façam o trabalho delas.
Depois vem o Convert to File com a operação Move Base64 String to File. Defina o campo de entrada base64 como image_b64 e nomeie o arquivo como {{ $json.slug }}.png. A saída de imagem do Gemini normalmente chega como PNG, e você pode ler mimeType se quiser ser rigoroso com a extensão. Por fim, envie o arquivo para o seu bucket com o nó S3 e grave a URL pública de volta onde o seu conteúdo vive.
Três templates que valem a pena copiar
A biblioteca de templates do n8n tem muitos fluxos da comunidade construídos em torno de imagens do Nano Banana e do Gemini, e navegar por alguns é um jeito rápido de ver layouts diferentes. A qualidade varia, então confira cada um contra as cinco falhas acima. Os três esqueletos abaixo são os que mais aparecem.
Template um: lote de imagens de cabeçalho
Use isto quando uma equipe de conteúdo precisa de uma imagem de cabeçalho para cada post de uma planilha.
Fluxo: Schedule Trigger → Google Sheets (linhas em que status está vazio) → Loop Over Items (tamanho do lote 2) → Prompt Fields → Gemini Image → Extract Image → Convert to File → upload para S3 → Google Sheets (gravar image_url e status = done) → Wait (6 segundos) → de volta ao loop.
Monte o prompt a partir do título do post mais um sufixo fixo de estilo, para que todos os cabeçalhos tenham a mesma aparência: {{ $json.title }}, wide editorial photograph, natural window light, 35mm lens, shallow depth of field, no text. Mantenha o sufixo em um único lugar e quarenta imagens vão parecer pertencer ao mesmo site.
A coluna de status importa mais do que parece. Linhas marcadas como done são puladas na próxima execução, então uma execução interrompida retoma de onde parou, em vez de pagar de novo pelas mesmas imagens.
Template dois: variações de foto de produto
Este edita uma foto existente e muda o cenário ao redor dela. A requisição é a mesma de antes, com uma parte extra: a foto de origem em base64. Baixe a foto com um nó HTTP Request, passe-a pelo Extract From File usando Move File to Base64 String e adicione-a ao lado da parte de texto:
Depois, faça um loop de quatro prompts para cada produto: um balcão de mármore com luz da manhã, uma mesa clara de carvalho, linho dobrado e uma saliência de pedra ao ar livre. Inclua sempre a frase Keep the product exactly unchanged and change only the surroundings. Sem ela, os modelos de imagem adoram redesenhar o rótulo.
Template três: webhook para post em redes sociais
Um gatilho Webhook recebe um tema e uma plataforma. Um Basic LLM Chain com um modelo de chat do Google Gemini escreve um prompt fotográfico, a chamada de imagem vem em seguida, e a URL final volta para quem pediu.
Chamadas de imagem podem levar de dez a trinta segundos. Se um proxy na frente do n8n corta requisições aos 30 ou 60 segundos, responda ao webhook na hora com um ID de tarefa e publique a URL final depois em um endereço de callback. Caso contrário, quem chamou vê um timeout enquanto o n8n termina a tarefa sem problemas e cobra você por ela.
Novas tentativas, limites de taxa e custos
Configurações de nova tentativa e ritmo
Novas tentativas e ritmo decidem se uma execução de 200 linhas termina durante a noite ou trava na linha 12. Defina estas opções nos próprios nós:
Configuração
Valor
Motivo
Retry On Fail (Gemini Image)
Ativado, Max Tries 3
Erros 429 e 5xx temporários costumam se resolver sozinhos
Wait Between Tries
5000 ms ou mais
Dá tempo para o limite por minuto ser reiniciado
Timeout (opção do HTTP Request)
120000 ms
Chamadas de imagem são mais lentas que as de texto
On Error
Continue (using error output)
Linhas com falha vão para um ramo separado em vez de parar a execução
Tamanho do lote do Loop Over Items
2 a 5
Mantém as rajadas abaixo do limite
Nó Wait entre lotes
5 a 10 segundos
Distribui as chamadas ao longo do minuto
Direcione a saída de erro para uma atualização no Sheets que grave failed mais a mensagem de erro. Tentar de novo as linhas com falha depois vira um filtro de um clique, e padrões aparecem rápido, como uma frase de prompt que aciona o filtro de segurança toda vez.
Estimando a conta
O Google informou que o Gemini 2.5 Flash Image custava cerca de US$ 0,039 por imagem no lançamento. Confira a página de preços atual antes de orçar, mas a conta é simples: 500 imagens de cabeçalho a essa taxa dão cerca de US$ 19,50, e cada nova tentativa que gera uma imagem conta de novo. Faixas superiores custam mais por imagem. Três hábitos mantêm o gasto baixo:
Teste os prompts no PicassoIA primeiro. O Nano Banana 2 está listado lá com gerações ilimitadas, então reescrever um prompt doze vezes não custa nada.
Tente de novo apenas as falhas, nunca lotes inteiros.
Rascunhe barato, finalize caro. Use a faixa mais leve para os rascunhos e gere de novo apenas as linhas aprovadas na faixa Pro.
Padrões de prompt que se sustentam
Deixe um LLM escrever os prompts
Uma linha de planilha que diz Remote work setup não é um prompt. Adicione um Basic LLM Chain antes da chamada de imagem, conecte um modelo de chat do Google Gemini e dê a ele uma instrução fixa: transforme o tema em um único prompt fotográfico de 50 a 70 palavras, com detalhes de sujeito, cenário, direção da luz, lente e textura, e devolva apenas o prompt. O Gemini 3.5 Flash e o Gemini 3 Flash servem para essa tarefa, porque ela é curta e a velocidade importa mais que a profundidade.
💡 Registre o prompt gerado ao lado da URL da imagem na sua planilha. Quando uma imagem decepcionar, você vai ver exatamente o que foi pedido ao modelo.
Termos de fotografia que o modelo respeita
Modelos de imagem tendem a responder bem ao vocabulário de um fotógrafo. Use esta ordem: sujeito e ação, cenário, direção da luz, câmera e lente, textura da superfície, clima.
Elemento
Redação fraca
Redação mais forte
Luz
clara
luz suave de janela vindo da esquerda, fim da manhã
Lente
câmera bonita
85mm em f/1.8, profundidade de campo rasa
Ângulo
bom ângulo
ângulo baixo, olhando levemente para cima
Textura
detalhada
veio de madeira visível, trama de tecido, fibras de papel
Texto
escreva um título
sem texto no quadro
Peça sem texto por padrão. Letras geradas são o motivo mais comum para uma imagem de cabeçalho de outra forma boa ser rejeitada, e é muito mais fácil adicionar um título real na sua ferramenta de design depois.
Prompts são mais baratos de corrigir antes de viverem dentro de um fluxo. O Nano Banana no PicassoIA pertence à mesma família que o seu nó HTTP chama, então um prompt que funciona ali é um forte candidato à automação.
Cole o prompt exatamente como o seu nó Edit Fields o produziria, com o sufixo de estilo incluído.
Adicione fotos de referência no campo Image Input se o seu fluxo edita imagens existentes. O modelo aceita várias de uma vez.
Escolha JPG ou PNG como formato de saída.
Gere três versões, mudando uma frase de cada vez: a luz, a lente ou o cenário.
Copie a redação vencedora de volta para o n8n.
Passe para o Nano Banana 2 quando precisar de mais controle. Ele acrescenta 15 opções de proporção, incluindo 16:9, 9:16 e 4:5, resoluções 1K, 2K e 4K, até 14 imagens de referência e ancoragem opcional na Pesquisa Google. A configuração de proporção corresponde diretamente ao campo aspectRatio no corpo da sua requisição. Para lotes em que a velocidade vem primeiro, há o Nano Banana 2 Lite, e o Nano Banana Pro faz as renderizações finais em 4K.
Refine os resultados antes de publicar
Mesmo saídas fortes se beneficiam de uma passada de acabamento. O Real-ESRGAN e o Crystal Upscaler ampliam imagens para destaques principais, e o Bria Remove Background recorta fotos de produto para páginas de catálogo. Se um estilo não combina com os modelos do Google, compare o Seedream 4.5, o Flux 2 Pro e o Imagen 4 com o mesmo prompt antes de mudar seu fluxo. Uma comparação de dez minutos vale mais que uma semana de ajustes no prompt.
Rode seu primeiro lote no Picasso IA
Agora você tem a cadeia inteira: uma requisição validada, arquivos reais, armazenamento, ritmo, novas tentativas e prompts que valem a automação. Monte com uma linha, depois com dez, depois com a planilha inteira.
Antes disso, passe quinze minutos no Picasso IA com seus cinco prompts mais importantes. Teste-os no Nano Banana 2, compare os resultados com o Nano Banana Pro e guarde a redação que vencer. Depois cole esses prompts no seu nó Edit Fields e deixe o n8n cuidar do volume. Veja todos os modelos em picassoia.com/en/all-models e comece com uma imagem de cabeçalho para o seu próximo post.