Fluxo do n8n para imagens e vídeo com IA
Gere imagens, vídeo e áudio com IA no n8n usando o nó HTTP Request nativo e a API do PopNow. JSON do fluxo para importar, configuração da credencial, loop de polling, webhooks e correção dos erros mais comuns.
O n8n não precisa de nó da comunidade para usar o PopNow: dois nós nativos HTTP Request, um Wait e um If bastam para criar uma tarefa, esperar por ela e entregar o arquivo ao resto do seu fluxo. O mesmo padrão funciona para todos os modelos de imagem, vídeo e áudio, então você pode mandar uma planilha de prompts para um modelo de texto para imagem, transformar fotos de produto novas em vídeos curtos ou gravar a narração de um roteiro linha por linha.
Esta página acompanha a página do n8n no popnow.ai, que monta o mesmo fluxo para o modelo que você escolher. No n8n self-hosted, você também pode instalar o nó da comunidade do PopNow: abra Settings > Community Nodes > Install e digite n8n-nodes-popnow (npm, GitHub).

O que você precisa
- n8n 1.x (na nuvem ou self-hosted). O nó HTTP Request precisa ser da versão 4 ou mais nova.
- Uma chave de API do PopNow, do console da API. Dê ao n8n uma chave própria com limite de gasto diário, para que um loop descontrolado não esvazie o seu saldo.
- Fundos no seu saldo separado da API em USD. Ele começa em $0; adicione fundos em API billing. Os testes com o modelo abaixo custam $0.01 cada; créditos do site não pagam esses testes.
1. Crie a credencial
No n8n, abra Credentials → Add credential → Header Auth e preencha:
| Campo | Valor |
|---|---|
| Name | PopNow |
| Header name | Authorization |
| Header value | Bearer sk-popnow-… (sua chave, com a palavra Bearer e um espaço antes) |
Para testar a chave antes de montar qualquer coisa, rode isto num terminal; ele lê o seu saldo e não custa nada:
curl "https://api.popnow.ai/api/v1/chat/credit" \
-H "Authorization: Bearer $POPNOW_API_KEY"Leia availableUsd, heldUsd e totalUsd como strings decimais em USD para o saldo da API.
2. Importe o fluxo
Copie o JSON, clique num espaço vazio da tela do n8n e cole. Depois abra Create task e Check task e selecione a credencial PopNow nos dois.
O fluxo roda assim: Start → Create task → Wait 5 s → Check task → Finished? Se a tarefa ainda estiver rodando, ele volta para a espera; quando ela termina, o nó File URL entrega state, fileUrl e error.
O que cada nó faz:
| Nó | Configuração | Por quê |
|---|---|---|
| Create task | POST /api/v1/jobs/createTask, corpo JSON { "model", "input" } | model é qualquer ID de modelo de Modelos; input precisa seguir o schema desse modelo |
| Create task | Cabeçalho Idempotency-Key: {{ $execution.id }} | Se o n8n repetir o nó, você recebe a mesma tarefa de volta em vez de pagar duas vezes. Veja Idempotência |
| Wait 5 s | 5 segundos | Imagens costumam terminar em uma ou duas voltas; vídeo leva de um a três minutos |
| Check task | GET /api/v1/jobs/recordInfo?taskId=… | Lê o state e o output da tarefa |
| Finished? | state é final e nenhum arquivo ainda está sendo copiado | succeeded, failed e expired são finais; veja Tarefas |
| File URL | data.output.assets[0].url | Um link assinado que funciona por uns 20 minutos. Baixe o arquivo no próximo nó se precisar guardá-lo |
Troque o modelo ou a entrada
Edite o corpo JSON do Create task. A página de cada modelo lista o ID, os campos e o preço; algumas trocas comuns:
| Objetivo | model | input |
|---|---|---|
| Texto melhor nas imagens | google/nano-banana-2.1/text-to-image | prompt, aspect_ratio, resolution ($0.048 em 1K) |
| Editar uma foto | google/nano-banana-2.1/edit | prompt, image_urls |
| Foto para vídeo | minimax/h3/image-to-video | prompt, image_url, duration_seconds ($0.185 por 5 s em 768p) |
| Narração | google/gemini-3.8-flash-tts/text-to-speech | text, voice_id |
Para usar dados de um nó anterior, troque o corpo por uma expressão, por exemplo:
{{ JSON.stringify({ model: 'alibaba/z-image-turbo/text-to-image', input: { prompt: $json.prompt, aspect_ratio: '16:9' } }) }}Arquivos de nós anteriores precisam de uma URL https pública ou de um upload antes; Mídia mostra as três chamadas de upload, que correspondem a três nós HTTP Request.
Use um webhook em vez de polling
Para tarefas longas de vídeo, deixe o PopNow chamar o n8n em vez de ficar em loop. Adicione um gatilho Webhook (POST) em um segundo fluxo, copie a URL de produção e passe-a como callBackUrl no corpo do Create task:
{
"model": "minimax/h3/image-to-video",
"input": { "image_url": "https://media.popnow.ai/movie/lighthouse.webp", "prompt": "The waves roll in slowly" },
"callBackUrl": "https://your-n8n.example.com/webhook/popnow"
}A URL do webhook precisa ser HTTPS pública, então um n8n local precisa de um túnel. Cada entrega é assinada; Webhooks mostra como verificar a assinatura num nó Code, e por que você deve guardar o request_id para ignorar entregas repetidas.
A mesma chamada fora do n8n
Útil para testar um corpo antes de colá-lo no nó.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask?wait=60" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"model": "alibaba/z-image-turbo/text-to-image", "input": {"prompt": "A small red fox curled up in a teacup, soft morning light, studio photo", "aspect_ratio": "1:1"}}'import os, uuid, requests
res = requests.post(
"https://api.popnow.ai/api/v1/jobs/createTask",
params={"wait": 60},
headers={"Authorization": f"Bearer {os.environ['POPNOW_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
json={"model": "alibaba/z-image-turbo/text-to-image", "input": {"prompt": "A small red fox curled up in a teacup, soft morning light, studio photo", "aspect_ratio": "1:1"}},
timeout=90,
).json()
print(res["data"]["state"], res["data"].get("output", {}).get("assets", [{}])[0].get("url"))const res = await fetch('https://api.popnow.ai/api/v1/jobs/createTask?wait=60', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.POPNOW_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
model: 'alibaba/z-image-turbo/text-to-image',
input: { prompt: 'A small red fox curled up in a teacup, soft morning light, studio photo', aspect_ratio: '1:1' },
}),
});
const { data } = await res.json();
console.log(data.state, data.output?.assets?.[0]?.url);Preços
O fluxo gasta USD da API só no Create task; ler tarefas é de graça. Uma tarefa que falha ou expira não custa nada, e um nó repetido com o mesmo Idempotency-Key não é cobrado duas vezes. Calcule o preço de cada modelo com jobs/quote antes de rodar em grande escala, e veja Saldo da API e reembolsos para as regras.
Erros comuns
| O n8n mostra | Por quê | Correção |
|---|---|---|
401 no Create task | A credencial está faltando, ou o valor não tem Bearer | O valor do cabeçalho precisa ser Bearer sk-popnow-… |
code: 400 com um nome de campo em msg | Um campo não está no schema do modelo, ou um valor está fora do intervalo | Confira a página do modelo; campos desconhecidos são recusados |
code: 40201 | USD insuficientes na API para a reserva desta tarefa | Adicione fundos em API billing, ou escolha um modelo ou uma opção mais barata |
code: 40202 | O limite de gasto da chave seria ultrapassado | Aumente o limite desta chave no console da API |
code: 429 | Requisições demais | Aumente a espera, ou rode menos itens em paralelo; veja Limites de taxa |
| O loop nunca termina | A tarefa ainda está rodando, ou o Finished? lê o campo errado | Vídeo pode levar minutos; confirme que o Check task lê o taskId do Create task |
fileUrl funciona e depois retorna 403 | Links assinados duram uns 20 minutos | Baixe o arquivo na mesma execução, ou leia a tarefa de novo para obter um link novo |
state: failed | O modelo não conseguiu terminar, ou recusou o conteúdo | Nada foi cobrado; leia o errorCode e veja Erros |
Existe um nó da comunidade oficial do PopNow para o n8n?
Existe: o n8n-nodes-popnow está no npm e é código aberto no GitHub. No n8n self-hosted, abra Settings > Community Nodes > Install, digite n8n-nodes-popnow e confirme; pelo terminal, rode npm install n8n-nodes-popnow dentro de ~/.n8n/nodes e reinicie o n8n. Ele ainda não é um nó verificado, por isso o n8n Cloud não consegue instalá-lo. Você não precisa dele: o nó HTTP Request nativo cobre tudo o que a API faz, funciona no n8n Cloud, e o fluxo desta página entra com uma única colagem.
Dá para o n8n rodar várias gerações ao mesmo tempo?
Dá. Cada item que chega ao Create task vira uma tarefa própria, e elas são geradas em paralelo. Fique de olho nos limites de taxa e use um limite de gasto na chave.
Como salvo o arquivo gerado no Google Drive ou no S3?
Adicione um nó HTTP Request depois do File URL que baixe o fileUrl como arquivo (formato de resposta File), e depois passe-o para o nó do Google Drive, S3 ou qualquer outro armazenamento.
Relacionados
Receitas
Imagens em lote a partir de um CSV, foto para vídeo, narrações e notificações em Python e Node.
Webhooks
Callbacks assinados, novas tentativas e tratamento de entregas duplicadas.
ComfyUI
Um nó personalizado que roda os modelos do PopNow no seu grafo.
Monte o fluxo para qualquer modelo
A página do n8n no popnow.ai gera este JSON para o modelo que você escolher.
Receitas e skills salvas
Execute receitas e fluxos salvos pela API ou pelo MCP. Cote e aprove um orçamento em USD, acompanhe cada etapa e retome execuções pausadas com a chave de API original.
ComfyUI
Rode modelos de IA de imagem, vídeo e áudio na nuvem dentro do ComfyUI com o pacote oficial de nós do PopNow, pelo ComfyUI Manager, ou com um único arquivo de nó. Sem GPU nem download de modelos; passos de instalação, entradas, preços e correção dos erros.

