Workflow n8n pour images et vidéo IA
Générez des images, vidéos et audios IA dans n8n avec le nœud HTTP Request intégré et l’API PopNow. JSON de workflow à importer, configuration de l’identifiant, boucle d’interrogation, webhooks et solutions aux erreurs courantes.
n8n n’a besoin d’aucun nœud communautaire pour utiliser PopNow : deux nœuds HTTP Request intégrés, un Wait et un If suffisent pour créer une tâche, l’attendre et transmettre le fichier au reste de votre workflow. Le même schéma fonctionne pour tous les modèles d’image, de vidéo et d’audio : vous pouvez donc envoyer un tableur de prompts vers un modèle texte-vers-image, transformer de nouvelles photos produit en courtes vidéos, ou sonoriser un script réplique par réplique.
Cette page correspond à la page n8n de popnow.ai, qui construit le même workflow pour le modèle de votre choix. Sur un n8n auto-hébergé, vous pouvez aussi installer le nœud communautaire PopNow : ouvrez Settings > Community Nodes > Install et saisissez n8n-nodes-popnow (npm, GitHub).

Ce qu’il vous faut
- n8n 1.x (cloud ou auto-hébergé). Le nœud HTTP Request doit être en version 4 ou plus récente.
- Une clé API PopNow depuis la console API. Donnez à n8n sa propre clé, avec un plafond de dépense quotidien, pour qu’une boucle qui s’emballe ne vide pas votre solde.
- Des fonds API dans votre solde séparé en USD. Il commence à $0 ; approvisionnez-le dans Facturation API. Les tests avec le modèle ci-dessous coûtent $0.01 chacun ; les crédits du site ne les paient pas.
1. Créer l’identifiant
Dans n8n, ouvrez Credentials → Add credential → Header Auth et renseignez :
| Champ | Valeur |
|---|---|
| Nom | PopNow |
| Nom de l’en-tête | Authorization |
| Valeur de l’en-tête | Bearer sk-popnow-… (votre clé, précédée du mot Bearer suivi d’un espace) |
Pour vérifier la clé avant de construire quoi que ce soit, lancez ceci dans un terminal ; il lit votre solde et ne coûte rien :
curl "https://api.popnow.ai/api/v1/chat/credit" \
-H "Authorization: Bearer $POPNOW_API_KEY"Lisez availableUsd, heldUsd et totalUsd comme des chaînes décimales USD pour le solde API.
2. Importer le workflow
Copiez le JSON, cliquez sur un espace vide du canevas n8n et collez-le. Ouvrez ensuite Create task et Check task, et sélectionnez l’identifiant PopNow dans les deux.
Le workflow s’exécute ainsi : Start → Create task → Wait 5 s → Check task → Finished? Si la tâche tourne encore, il revient à l’attente ; une fois terminée, File URL renvoie state, fileUrl et error.
Rôle de chaque nœud :
| Nœud | Réglage | Pourquoi |
|---|---|---|
| Create task | POST /api/v1/jobs/createTask, corps JSON { "model", "input" } | model est n’importe quel identifiant de modèle de Modèles ; input doit respecter le schéma de ce modèle |
| Create task | En-tête Idempotency-Key: {{ $execution.id }} | Si n8n relance le nœud, vous récupérez la même tâche au lieu de payer deux fois. Voir Idempotence |
| Wait 5 s | 5 secondes | Les images se terminent en général en une ou deux boucles ; une vidéo prend de une à trois minutes |
| Check task | GET /api/v1/jobs/recordInfo?taskId=… | Lit le state et l’output de la tâche |
| Finished? | state est final et aucun fichier n’est encore en cours de copie | succeeded, failed et expired sont finals ; voir Tâches |
| File URL | data.output.assets[0].url | Un lien signé valable une vingtaine de minutes. Téléchargez-le dans le nœud suivant si vous voulez garder le fichier |
Changer de modèle ou d’entrée
Modifiez le corps JSON de Create task. La page de chaque modèle indique son identifiant, ses champs et son prix. Quelques échanges courants :
| Objectif | model | input |
|---|---|---|
| Un meilleur texte dans les images | google/nano-banana-2.1/text-to-image | prompt, aspect_ratio, resolution ($0.048 en 1K) |
| Retoucher une photo | google/nano-banana-2.1/edit | prompt, image_urls |
| Photo vers vidéo | minimax/h3/image-to-video | prompt, image_url, duration_seconds ($0.185 pour 5 s en 768p) |
| Voix off | google/gemini-3.8-flash-tts/text-to-speech | text, voice_id |
Pour utiliser les données d’un nœud précédent, passez le corps en expression, par exemple :
{{ JSON.stringify({ model: 'alibaba/z-image-turbo/text-to-image', input: { prompt: $json.prompt, aspect_ratio: '16:9' } }) }}Les fichiers issus de nœuds précédents ont besoin d’une URL https publique ou d’un envoi préalable. Médias présente les trois appels d’envoi, qui correspondent à trois nœuds HTTP Request.
Utiliser un webhook plutôt que l’interrogation
Pour les longues tâches vidéo, laissez PopNow appeler n8n au lieu de boucler. Ajoutez un nœud déclencheur Webhook (POST) dans un second workflow, copiez son URL de production et passez-la comme callBackUrl dans le corps de 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"
}L’URL du webhook doit être en HTTPS public : un n8n local a donc besoin d’un tunnel. Chaque envoi est signé ; Webhooks montre comment vérifier la signature dans un nœud Code, et pourquoi vous devez stocker request_id pour ignorer les envois répétés.
Le même appel hors de n8n
Utile pour tester un corps avant de le coller dans le nœud.
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);Tarifs
Le workflow ne dépense des USD API que dans Create task ; lire les tâches est gratuit. Une tâche qui échoue ou expire ne coûte rien, et un nœud relancé avec le même Idempotency-Key n’est pas débité deux fois. Calculez le prix de chaque modèle avec jobs/quote avant de le lancer à grande échelle, et consultez Solde API et remboursements pour les règles.
Erreurs courantes
| n8n affiche | Cause | Solution |
|---|---|---|
401 depuis Create task | L’identifiant manque, ou la valeur n’est pas précédée de Bearer | La valeur de l’en-tête doit être Bearer sk-popnow-… |
code: 400 avec un nom de champ dans msg | Un champ ne figure pas dans le schéma du modèle, ou une valeur est hors plage | Consultez la page du modèle ; les champs inconnus sont refusés |
code: 40201 | Pas assez d’USD API pour la réservation de cette tâche | Approvisionnez Facturation API, ou choisissez un modèle ou réglage moins cher |
code: 40202 | Le plafond de dépense de la clé serait dépassé | Augmentez le plafond de cette clé dans la console API |
code: 429 | Trop de requêtes | Allongez l’attente, ou traitez moins d’éléments en parallèle ; voir Limites de débit |
| La boucle ne s’arrête jamais | La tâche tourne encore, ou Finished? lit le mauvais champ | Une vidéo peut prendre plusieurs minutes ; vérifiez que Check task lit le taskId de Create task |
fileUrl fonctionne, puis renvoie 403 plus tard | Les liens signés durent une vingtaine de minutes | Téléchargez le fichier dans le même passage, ou relisez la tâche pour obtenir un lien neuf |
state: failed | Le modèle n’a pas pu aller au bout, ou a refusé le contenu | Rien n’a été débité ; lisez errorCode et consultez Erreurs |
Existe-t-il un nœud communautaire PopNow officiel pour n8n ?
Oui : n8n-nodes-popnow est publié sur npm et en open source sur GitHub. Sur un n8n auto-hébergé, ouvrez Settings > Community Nodes > Install, saisissez n8n-nodes-popnow et confirmez ; depuis un shell, lancez npm install n8n-nodes-popnow dans ~/.n8n/nodes, puis redémarrez n8n. Ce n’est pas encore un nœud vérifié, donc n8n Cloud ne peut pas l’installer. Vous n’en avez pas besoin : le nœud HTTP Request intégré couvre tout ce que fait l’API, fonctionne sur n8n Cloud, et le workflow de cette page s’importe en un seul collage.
n8n peut-il lancer plusieurs générations à la fois ?
Oui. Chaque élément qui atteint Create task devient sa propre tâche, et elles sont rendues en parallèle. Surveillez les limites de débit et utilisez un plafond de dépense sur la clé.
Comment enregistrer le fichier généré dans Google Drive ou S3 ?
Ajoutez un nœud HTTP Request après File URL qui télécharge fileUrl comme fichier (format de réponse File), puis transmettez-le au nœud Google Drive, S3 ou à tout autre nœud de stockage.
Voir aussi
Recettes
Images en lot depuis un CSV, photo vers vidéo, voix off et notifications en Python et Node.
Webhooks
Rappels signés, nouvelles tentatives et gestion des doublons.
ComfyUI
Un nœud personnalisé qui exécute les modèles PopNow dans votre graphe.
Construire le workflow pour n’importe quel modèle
La page n8n de popnow.ai génère ce JSON pour le modèle que vous choisissez.
Recettes et compétences
Exécutez vos recettes et workflows enregistrés via l’API ou MCP. Demandez un devis, approuvez un budget en USD, suivez chaque étape et reprenez les exécutions en pause avec la clé API d’origine.
ComfyUI
Exécutez dans ComfyUI les modèles IA cloud d’image, de vidéo et d’audio avec le pack officiel de nœuds PopNow depuis ComfyUI Manager, ou un seul fichier de nœud. Ni GPU ni téléchargement de modèles ; étapes d’installation, entrées, tarifs et solutions aux erreurs.

