PopNowAPI-Doku
Integrationen
Hauptinhalt

n8n-Workflow für KI-Bilder und Video

Erzeuge KI-Bilder, Video und Audio in n8n mit dem integrierten HTTP-Request-Node und der PopNow-API. Importierbares Workflow-JSON, Einrichtung der Zugangsdaten, Abfrageschleife, Webhooks und Lösungen für häufige Fehler.

Für PopNow braucht n8n kein Community-Node: Zwei integrierte HTTP Request-Nodes, ein Wait und ein If reichen, um einen Task anzulegen, auf ihn zu warten und die Datei an den Rest deines Workflows weiterzugeben. Dasselbe Muster funktioniert für jedes Bild-, Video- und Audiomodell. So kannst du etwa eine Tabelle mit Prompts an ein Text-zu-Bild-Modell übergeben, neue Produktfotos in kurze Videos verwandeln oder ein Skript zeilenweise vertonen.

Diese Seite entspricht der n8n-Seite auf popnow.ai, die für jedes gewählte Modell denselben Workflow erzeugt. In selbst gehostetem n8n kannst du zusätzlich das PopNow-Community-Node installieren: Öffne Settings > Community Nodes > Install und gib n8n-nodes-popnow ein (npm, GitHub).

Ein kleiner roter Fuchs, zusammengerollt in einer Teetasse, erzeugt mit Z-Image Turbo
Der folgende Workflow wie beschrieben: Z-Image Turbo, ein quadratisches Bild, $0.01 USD.

Was du brauchst

  • n8n 1.x (Cloud oder selbst gehostet). Der HTTP-Request-Node muss in Version 4 oder neuer vorliegen.
  • Einen PopNow-API-Schlüssel aus der API-Konsole. Gib n8n einen eigenen Schlüssel mit einem Tageslimit, damit eine außer Kontrolle geratene Schleife dein Guthaben nicht leert.
  • API-Guthaben in deinem separaten USD-Guthaben. Es beginnt bei $0; lade unter API-Abrechnung auf. Testläufe mit dem Modell unten kosten je $0.01; Website-Credits bezahlen sie nicht.

1. Zugangsdaten anlegen

Öffne in n8n Credentials → Add credential → Header Auth und fülle aus:

FeldWert
NamePopNow
Header-NameAuthorization
Header-WertBearer sk-popnow-… (dein Schlüssel, mit dem Wort Bearer und einem Leerzeichen davor)

Um den Schlüssel zu prüfen, bevor du etwas baust, führe dies in einem Terminal aus; es liest dein Guthaben und kostet nichts:

curl "https://api.popnow.ai/api/v1/chat/credit" \
  -H "Authorization: Bearer $POPNOW_API_KEY"

Lies availableUsd, heldUsd und totalUsd als USD-Dezimalstrings des API-Guthabens.

2. Workflow importieren

Kopiere das JSON, klicke auf eine freie Stelle der n8n-Arbeitsfläche und füge es ein. Öffne dann Create task und Check task und wähle in beiden das Zugangsdaten-Objekt PopNow.

Der Workflow läuft so: Start → Create task → Wait 5 s → Check task → Finished? Ist der Task noch in Arbeit, springt er zurück zum Warten; ist er fertig, gibt File URL state, fileUrl und error aus.

Was die einzelnen Nodes tun:

NodeEinstellungWarum
Create taskPOST /api/v1/jobs/createTask, JSON-Body { "model", "input" }model ist eine beliebige Modell-ID aus Modelle; input muss zum Schema dieses Modells passen
Create taskHeader Idempotency-Key: {{ $execution.id }}Wiederholt n8n den Node, bekommst du denselben Task zurück statt doppelt zu bezahlen. Siehe Idempotenz
Wait 5 s5 SekundenBilder sind meist nach einer oder zwei Schleifen fertig; Videos brauchen ein bis drei Minuten
Check taskGET /api/v1/jobs/recordInfo?taskId=…Liest den state und den output des Tasks
Finished?state ist endgültig und es wird keine Datei mehr kopiertsucceeded, failed und expired sind endgültig; siehe Tasks
File URLdata.output.assets[0].urlEin signierter Link, der etwa 20 Minuten gilt. Lade die Datei im nächsten Node herunter, wenn du sie behalten willst

Modell oder Eingabe ändern

Bearbeite den JSON-Body von Create task. Die Seite jedes Modells listet seine ID, seine Felder und seinen Preis. Einige häufige Tausche:

Zielmodelinput
Bessere Schrift in Bilderngoogle/nano-banana-2.1/text-to-imageprompt, aspect_ratio, resolution ($0.048 bei 1K)
Ein Foto bearbeitengoogle/nano-banana-2.1/editprompt, image_urls
Foto zu Videominimax/h3/image-to-videoprompt, image_url, duration_seconds ($0.185 für 5 s bei 768p)
Voiceovergoogle/gemini-3.8-flash-tts/text-to-speechtext, voice_id

Um Daten aus einem früheren Node zu verwenden, stelle den Body auf einen Ausdruck um, zum Beispiel:

n8n expression for the JSON body
{{ JSON.stringify({ model: 'alibaba/z-image-turbo/text-to-image', input: { prompt: $json.prompt, aspect_ratio: '16:9' } }) }}

Dateien aus früheren Nodes brauchen eine öffentliche https-URL oder vorher einen Upload; Medien zeigt die drei Upload-Aufrufe, die sich auf drei HTTP-Request-Nodes abbilden lassen.

Webhook statt Abfrage

Lass bei langen Videoaufträgen PopNow n8n anrufen, statt in einer Schleife zu warten. Füge in einem zweiten Workflow einen Webhook-Trigger-Node (POST) hinzu, kopiere seine Produktions-URL und übergib sie im Body von Create task als callBackUrl:

{
  "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"
}

Die Webhook-URL muss öffentlich per HTTPS erreichbar sein, daher braucht ein lokales n8n einen Tunnel. Jede Zustellung ist signiert; Webhooks zeigt, wie du die Signatur in einem Code-Node prüfst, und warum du request_id speichern solltest, um wiederholte Zustellungen zu ignorieren.

Derselbe Aufruf außerhalb von n8n

Nützlich, um einen Body zu testen, bevor du ihn in den Node einfügst.

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"}}'
Python
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"))
JavaScript
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);

Preise

Der Workflow verbraucht API-USD nur in Create task; Tasks abzufragen ist kostenlos. Ein Task, der fehlschlägt oder abläuft, kostet nichts, und ein wiederholter Node mit demselben Idempotency-Key wird nicht doppelt berechnet. Prüfe den Preis jedes Modells mit jobs/quote, bevor du es in großem Maßstab laufen lässt, und die Regeln stehen unter API-Guthaben und Erstattungen.

Häufige Fehler

n8n zeigtWarumLösung
401 bei Create taskDie Zugangsdaten fehlen, oder der Wert enthält kein Bearer Der Header-Wert muss Bearer sk-popnow-… lauten
code: 400 mit einem Feldnamen in msgEin Feld ist im Schema des Modells nicht enthalten, oder ein Wert liegt außerhalb des BereichsDie Seite des Modells prüfen; unbekannte Felder werden abgelehnt
code: 40201Nicht genug API-USD für die Reservierung dieses TasksUnter API-Abrechnung aufladen oder ein günstigeres Modell oder eine günstigere Einstellung wählen
code: 40202Das Ausgabelimit des Schlüssels würde überschrittenDas Limit für diesen Schlüssel in der API-Konsole anheben
code: 429Zu viele AnfragenDie Wartezeit verlängern oder weniger Einträge parallel laufen lassen; siehe Limits
Die Schleife endet nieDer Task läuft noch, oder Finished? liest das falsche FeldVideos können Minuten dauern; prüfe, dass Check task die taskId aus Create task liest
fileUrl funktioniert, später kommt 403Signierte Links gelten etwa 20 MinutenLade die Datei im selben Lauf herunter oder lies den Task erneut für einen frischen Link
state: failedDas Modell konnte nicht fertig werden oder hat den Inhalt abgelehntNichts wurde berechnet; lies errorCode und siehe Fehler

Gibt es ein offizielles PopNow-Community-Node für n8n?

Ja: n8n-nodes-popnow ist auf npm und auf GitHub als Open Source verfügbar. In selbst gehostetem n8n öffnest du Settings > Community Nodes > Install, gibst n8n-nodes-popnow ein und bestätigst; aus einer Shell führst du npm install n8n-nodes-popnow in ~/.n8n/nodes aus und startest n8n neu. Es ist noch kein verifiziertes Node, deshalb kann n8n Cloud es nicht installieren. Du brauchst es auch nicht: Der integrierte HTTP-Request-Node deckt alles ab, was die API kann, funktioniert in n8n Cloud, und der Workflow auf dieser Seite lässt sich mit einem Einfügen importieren.

Kann n8n mehrere Generierungen gleichzeitig ausführen?

Ja. Jedes Element, das Create task erreicht, wird zu einem eigenen Task, und sie werden parallel gerendert. Behalte die Rate-Limits im Blick und setze ein Ausgabelimit auf dem Schlüssel.

Wie speichere ich die erzeugte Datei in Google Drive oder S3?

Füge nach File URL einen HTTP-Request-Node hinzu, der fileUrl als Datei herunterlädt (Antwortformat File), und übergib sie dann an den Node für Google Drive, S3 oder einen anderen Speicher.

Auf dieser Seite