DeepSeek Vision and Grok Imagine models are now live on CometAPI →
guide/CometAPI Research

So verbinden Sie mehrere KI-Modelle mit n8n mit nur einem CometAPI-Schlüssel

Erstelle einen Low-Code n8n-Workflow, der Spreadsheet-Jobs über einen einzigen CometAPI-Schlüssel an mehrere KI-Anbieter weiterleitet, Videoaufgaben pollt und jedes Ergebnis speichert.

CometAPI
AnnaForschungsteam für KI-Modelle und API
Aktualisiert Aug 26, 2026 12 Min. Lesezeit
So verbinden Sie mehrere KI-Modelle mit n8n mit nur einem CometAPI-Schlüssel
Dieses Muster verwenden

Den ersten API-Aufruf ausführen.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_COMETAPI_KEY",
    base_url="https://api.cometapi.com/v1",
)

response = client.chat.completions.create(
    model="gpt-5-mini",
    messages=[{"role": "user", "content": "Build this workflow."}],
)

print(response.choices[0].message.content)

Wie können Sie mehrere KI-Modelle mit nur einer API an n8n anbinden?

Das Einbinden von KI-Modellen, jeweils ein Anbieter nach dem anderen, kann für einen Prototyp funktionieren, wird jedoch mit wachsender Nutzung fragil. Jeder Anbieter bringt separate Zugangsdaten, Endpunkte, Anforderungsformate, Ratenbegrenzungen, Abrechnung und Antwortstrukturen mit. In n8n führt das oft zu duplizierten HTTP-Knoten und anbieter­spezifischen Verzweigungen, sodass das Hinzufügen eines Modells oder das Ändern eines Fallback-Pfads bedeutet, mehrere Teile des Workflows zu bearbeiten.

n8n und CometAPI lösen unterschiedliche Ebenen dieses Problems. n8n steuert, wann ein Job ausgeführt wird, validiert Eingaben, routet synchrone und asynchrone Aufgaben, wiederholt fehlgeschlagene Versuche und speichert Ergebnisse. CometAPI zentralisiert den Modellzugriff hinter einem einzigen API-Schlüssel und einer einzigen Basis-URL. Gemeinsam halten sie Anbieterwechsel aus der Orchestrierungsschicht heraus: Sie können eine Modell-ID wechseln, während dieselbe Warteschlange, dasselbe Polling, dieselbe Speicherung und dieselbe Monitoring-Logik erhalten bleiben.

Diese Kombination ist besonders nützlich für gemischte Bild- und Videojobs, die aus Tabellen oder internen Tools stammen. Der Workflow bleibt in n8n visuell und prüfbar, während Zugangsdaten, Modellverfügbarkeit und Nutzungskosten über eine API-Ebene leichter verwaltbar bleiben.

Der einfachste Weg, mehrere KI-Anbieter in einer App zu integrieren, besteht darin, Orchestrierung und Modellzugriff zu trennen. Lassen Sie n8n Trigger, Verzweigungen, Wiederholungen und Speicherung übernehmen, während CometAPI jeder Verzweigung einen API-Schlüssel und eine Basis-URL gibt. Die Modell-ID wird zu einem Feld in jedem Job, statt zu einem separaten Anbieter­konto, SDK und Abrechnungssetup.

In dieser Anleitung bauen Sie eine funktionierende Low-Code-Pipeline, die Bild- und Videojobs aus Google Sheets liest, sie über CometAPI an OpenAI- und ByteDance-Modelle sendet, asynchrone Video-Task-IDs speichert, auf den Abschluss pollt und das Endergebnis in eine n8n Data Table upsertet.

Was Sie bauen werden

Der fertige Workflow folgt diesem Pfad:

Google Sheets Trigger → Job normalisieren → Nach Medientyp verzweigen → CometAPI Bild- oder Videoanfrage → Warten und Videotasks pollen → Output hochladen oder referenzieren → Data Table Upsert.

Verwenden Sie diese Spalten im Quell-Sheet:

job_id | media_type | model | prompt | size | seconds | status

Eine typische Bildzeile verwendet image, gpt-image-2 und 1024x1024. Eine Videozeile verwendet video, seedance-2-5, 1280x720 und eine Dauer von 4 bis 30 Sekunden.

Bevor Sie starten

Sie benötigen eine n8n-Instanz, ein Google Sheet, einen CometAPI-API-Schlüssel und eine n8n Data Table namens ai_jobs. Erstellen Sie diese Spalten in der Data Table: job_id, media_type, model, status, task_id, result_url, error und updated_at.

Für selbstgehostetes n8n fügen Sie die folgenden Werte der Umgebung hinzu, in der Ihr n8n-Prozess läuft:

COMETAPI_BASE_URL=https://api.cometapi.com/v1COMETAPI_KEY=your_cometapi_key

Starten Sie n8n nach Änderung der Umgebung neu. In n8n Cloud, oder wann immer Sie Umgebungsvariablen nicht in Knotenausdrücken preisgeben möchten, erstellen Sie eine HTTP Header Auth Credential namens CometAPI Bearer. Setzen Sie den Header-Namen auf Authorization und den Wert auf Bearer your_cometapi_key. Die folgenden Beispiele verwenden diese Zugangsdaten und die feste, OpenAI-kompatible Basis-URL https://api.cometapi.com/v1.

Aktuelle Modell-IDs verwenden

AufgabeAnbieter und ModellAnfrageErgebnis
BildOpenAI · gpt-image-2POST /v1/images/generationsSynchrone Base64-Bilddaten
VideoByteDance · seedance-2-5POST /v1/videosAsynchroner Task, dann Polling

Sowohl IDs als auch Fähigkeiten waren am 11. August 2026 in der Live-CometAPI-Modellverzeichnis-API verfügbar. Das Bildmodell unterstützt Text-zu-Bild-Generierung. Seedance 2.5 unterstützt Text-zu-Video- und Bild-zu-Video-Generierung, 4–30-sekündige Clips sowie die dokumentierten Größen 480p und 720p.

Preise zum 11. August 2026: Die GPT Image 2 Modellseite listet 4 USD pro einer Million Eingangstoken und 24 USD pro einer Million Ausgangstoken. Die Seedance 2.5 Modellseite listet 0,103 USD pro Sekunde bei 480p und 0,231 USD pro Sekunde bei 720p. Preise können sich ändern, daher sollten Sie das Live-Modellverzeichnis oder die Modellseite als Laufzeit-Quelle der Wahrheit verwenden.

Der wichtige architektonische Unterschied ist, dass Bildgenerierung als Request-Response-Operation behandelt werden kann, während Videogenerierung als zustandsbehafteter Job behandelt werden sollte. Das Persistieren der Video-Task-ID vor dem Polling verhindert, dass ein Neustart einer n8n-Ausführung den Job verliert.

Workflow in n8n erstellen

1. Neue Jobs aus Google Sheets triggern

Fügen Sie einen Google Sheets Trigger-Knoten hinzu und wählen Sie Row added or updated. Verweisen Sie auf das Arbeitsblatt, das Ihre Jobwarteschlange enthält. Fügen Sie direkt nach dem Trigger einen IF-Knoten hinzu und fahren Sie nur fort, wenn status leer ist oder queued entspricht. So verhindern Sie, dass abgeschlossene Zeilen erneut eingereicht werden, wenn sich das Sheet ändert.

2. Jede Zeile normalisieren und validieren

Fügen Sie einen Code-Knoten namens Normalize Job hinzu. Dieser Knoten wendet sichere Defaults an, beschränkt den Workflow auf genehmigte Modell-IDs und liefert dieselben Felder für beide Verzweigungen.

const row = $json;​const allowedModels = {  image: new Set(['gpt-image-2']),  video: new Set(['seedance-2-5']),};​const mediaType = String(row.media_type || '').trim().toLowerCase();if (!allowedModels[mediaType]) {  throw new Error(`media_type must be image or video; received: ${row.media_type}`);}​const defaultModel = mediaType === 'image' ? 'gpt-image-2' : 'seedance-2-5';const model = String(row.model || defaultModel).trim();if (!allowedModels[mediaType].has(model)) {  throw new Error(`Model ${model} is not allowed for ${mediaType} jobs`);}​const prompt = String(row.prompt || '').trim();if (!prompt) throw new Error('prompt is required');​const seconds = mediaType === 'video' ? Number(row.seconds || 4) : null;if (mediaType === 'video' && (!Number.isInteger(seconds) || seconds < 4 || seconds > 30)) {  throw new Error('Seedance 2.5 seconds must be an integer from 4 to 30');}​return [{  json: {    job_id: String(row.job_id || $execution.id),    media_type: mediaType,    model,    prompt,    size: String(row.size || (mediaType === 'image' ? '1024x1024' : '1280x720')),    seconds,    status: 'processing',    updated_at: new Date().toISOString(),  },}];

Fügen Sie nach Normalize Job einen Switch-Knoten hinzu. Routen Sie image in die Bild-Verzweigung und video in die Video-Verzweigung.

3. Bilder über einen Endpunkt generieren

Fügen Sie einen HTTP Request-Knoten namens Create Image mit diesen Einstellungen hinzu:

  • Method: POST
  • URL: https://api.cometapi.com/v1/images/generations
  • Authentication: die CometAPI Bearer Header Auth Credential
  • Body Content Type: JSON
{  "model": "={{ $('Normalize Job').item.json.model }}",  "prompt": "={{ $('Normalize Job').item.json.prompt }}",  "size": "={{ $('Normalize Job').item.json.size }}"}

GPT Image 2 liefert Base64-Bilddaten. Fügen Sie einen Code-Knoten namens Prepare Image File hinzu, um diese Daten in ein n8n-Binary-Item umzuwandeln:

const job = $('Normalize Job').item.json;const b64 = $json.data?.[0]?.b64_json;if (!b64) throw new Error('CometAPI returned no image data');​return [{  json: {    ...job,    status: 'completed',    task_id: '',    result_url: '',    error: '',    updated_at: new Date().toISOString(),  },  binary: {    media: {      data: b64,      mimeType: 'image/png',      fileName: `${job.job_id}.png`,    },  },}];

Verbinden Sie diesen Knoten mit Ihrem bevorzugten Object-Storage-Knoten, z. B. S3 oder Google Drive. Speichern Sie die zurückgegebene Datei-URL in result_url und upserten Sie anschließend die Zeile in ai_jobs. Halten Sie große Base64-Payloads aus der Data Table heraus.

4. Einen asynchronen Video-Task erstellen

Fügen Sie einen HTTP Request-Knoten namens Create Video hinzu:

  • Method: POST
  • URL: https://api.cometapi.com/v1/videos
  • Authentication: CometAPI Bearer
  • Body Content Type: Form-Data

Fügen Sie vier Formularfelder hinzu: model, prompt, seconds und size. Mappen Sie deren Werte aus Normalize Job.

Fügen Sie als Nächstes einen Code-Knoten namens Save Video Task hinzu:

const job = $('Normalize Job').item.json;const taskId = $json.id || $json.task_id;if (!taskId) throw new Error('Video task ID missing from create response');​return [{  json: {    ...job,    task_id: taskId,    status: $json.status || 'queued',    result_url: '',    error: '',    updated_at: new Date().toISOString(),  },}];

Upserten Sie dieses Item vor dem Polling in ai_jobs. Das sofortige Speichern der Task-ID bedeutet, dass ein Neustart oder Timeout den Job nicht verliert.

5. Warten, pollen und die Video-URL speichern

Fügen Sie einen Wait-Knoten mit 15 Sekunden hinzu. Fügen Sie dann einen HTTP Request-Knoten namens Get Video hinzu:

  • Method: GET
  • URL: =https://api.cometapi.com/v1/videos/{{ $json.task_id }}
  • Authentication: CometAPI Bearer

Verwenden Sie nach der Anfrage einen Switch-Knoten auf status:

  • queued oder in_progress: zurück zum Wait-Knoten.
  • completed: weiter zu Finalize Video.
  • failed oder error: den Fehler in ai_jobs schreiben und stoppen.

Fügen Sie diesen Code-Knoten für die abgeschlossene Verzweigung hinzu:

const prior = $('Save Video Task').item.json;const resultUrl = $json.video_url || $json.url || $json.data?.video_url;if (!resultUrl) throw new Error('Completed video response has no video URL');​return [{  json: {    ...prior,    status: 'completed',    result_url: resultUrl,    error: '',    updated_at: new Date().toISOString(),  },}];

Upserten Sie das finale Item anhand von job_id in ai_jobs. CometAPI-Video-URLs können signiert und temporär sein, daher sollten Produktions-Workflows die Datei herunterladen und erneut hosten, bevor die permanente URL gespeichert wird. Wenn Ihre App eingehende Anfragen empfangen kann, ersetzen Sie Polling durch einen Webhook, wo das ausgewählte Modell Callbacks unterstützt.

Vollständige Knotenübersicht

Der vollständige Workflow kann mit den folgenden Knoten zusammengestellt werden:

  1. Google Sheets Trigger — Row added or updated
  2. IF — Nur neue oder „queued“-Zeilen verarbeiten
  3. Code — Normalize Job
  4. Switch — Image oder Video
  5. Bild-Verzweigung: HTTP Request → Prepare Image File → Object Storage → Data Table Upsert
  6. Video-Verzweigung: HTTP Request → Save Video Task → Data Table Upsert → Wait → HTTP Request → Status Switch
  7. Abgeschlossenes Video: Finalize Video → Object Storage oder permanente URL → Data Table Upsert
  8. Fehlgeschlagenes Video: Set Error → Data Table Upsert

Für eine Fehlerverzweigung verwenden Sie diesen Ausdruck in einem Edit Fields-Knoten:

{  "job_id": "={{ $('Save Video Task').item.json.job_id }}",  "status": "failed",  "task_id": "={{ $('Save Video Task').item.json.task_id }}",  "result_url": "",  "error": "={{ $json.error?.message || $json.message || 'Video generation failed' }}",  "updated_at": "={{ $now.toISO() }}"}

Workflow testen

Fügen Sie diese zwei Zeilen in das Quell-Sheet ein:

img-001 | image | gpt-image-2 | A cinematic product photo of a glass robot on a dark desk | 1024x1024 | | queuedvid-001 | video | seedance-2-5 | A paper airplane flies through a sunlit studio, smooth tracking shot | 1280x720 | 4 | queued

Die Bildanfrage sollte eine Struktur ähnlich der folgenden zurückgeben:

{  "created": 1786400000,  "data": [    { "b64_json": "iVBORw0KGgoAAA..." }  ]}

Die Video-Create-Anfrage sollte eine Task-Struktur ähnlich der folgenden zurückgeben:

{  "id": "video_task_abc123",  "object": "video",  "status": "queued",  "progress": 0}

Nach dem Polling sollte eine abgeschlossene Antwort dieselbe Task-ID, status: completed und eine video_url enthalten. Optionale Felder können je nach Modell variieren, weshalb der Normalisierungscode den stabilen Taskstatus und die Ergebnis-URL liest, statt die gesamte Anbieterantwort in Ihre Datenbank zu kopieren.

Häufige Fehler und Abhilfen

FehlerAbhilfe
401 UnauthorizedPrüfen Sie, ob der Header-Auth-Wert mit Bearer beginnt und der Schlüssel aktiv ist.
404 model or task not foundPrüfen Sie das Live-Modellverzeichnis und bestätigen Sie, dass die gespeicherte Task-ID in GET /v1/videos/{id} verwendet wird.
400 invalid size or secondsVerwenden Sie eine unterstützte Größe und halten Sie bei Seedance 2.5 die Dauer zwischen 4 und 30 Sekunden.
429 rate limitedReduzieren Sie die n8n-Konkurrenz und versuchen Sie es mit exponentiellem Backoff und Jitter erneut.
Polling never endsPersistieren Sie die Anzahl der Versuche und brechen Sie nach einem definierten Timeout ab; behandeln Sie failed und error als terminal.
Image payload is too largeKonvertieren Sie Base64 in Binärdaten, laden Sie diese hoch und speichern Sie nur die permanente URL.

Checkliste für den produktiven Einsatz

  • Zugangsdaten schützen. Halten Sie den API-Schlüssel in n8n-Credentials oder serverseitigen Umgebungsvariablen. Platzieren Sie ihn nie im Spreadsheet und geben Sie ihn nicht an einen Browser zurück.
  • Jeden Job idempotent machen. Verwenden Sie job_id als Upsert-Key der Data Table. Bevor Sie einen neuen Task erstellen, überspringen Sie Zeilen, die bereits als processing oder completed markiert sind.
  • Polling und Konkurrenz steuern. Pollen Sie Videojobs alle 10–20 Sekunden, begrenzen Sie die Anzahl der Versuche und limitieren Sie gleichzeitige Ausführungen. Backoff bei 429-, 500- und 503-Antworten statt Duplikate zu erzeugen.
  • Modellrichtlinie vor jeder Anfrage validieren. Halten Sie eine Allowlist nach Medientyp. Aktualisieren Sie Modellverfügbarkeit und Preise geplant aus dem Live-Verzeichnis, aber deployen Sie Modelländerungen über Reviews, statt Spreadsheet-Nutzern beliebige IDs zu erlauben.
  • Kosten pro Job nachverfolgen. Speichern Sie Modell, Auflösung, Dauer und Nutzungsfelder mit jedem Ergebnis. Ein viersekündiger 720p-Seedance-2.5-Job kostet etwa 0,924 USD zum gelisteten Satz vom 11. August 2026; dieselben vier Sekunden bei 480p etwa 0,412 USD. Erzwingen Sie maximale Dauer und Auflösung vor dem Absenden der Anfrage.
  • Generierte Medien neu hosten. Behandeln Sie signierte Anbieter-URLs als Lieferlinks, nicht als permanente Speicherung. Laden Sie abgeschlossene Medien herunter, laden Sie sie in Ihren kontrollierten Bucket hoch und speichern Sie die dauerhafte URL plus Prüfsumme.
  • Audit-Trail führen. Speichern Sie das Anfragemodell, sanitisierte Parameter, Task-ID, Statusübergänge, Anzahl der Wiederholungen, Antwortzeit und den finalen Asset-Ort. Protokollieren Sie keine API-Schlüssel oder vollständige private Prompts.

Warum dieses Muster skaliert

Der Workflow bleibt einfach, weil jeder neue Anbieter oder jedes neue Modell eine Routing-Entscheidung ist, keine neue Konto­integration. Das Spreadsheet bleibt die Jobwarteschlange, n8n bleibt die Orchestrierungsschicht und CometAPI bleibt die zentrale Zugriffsschicht. Fügen Sie ein Modell hinzu, indem Sie die Allowlist und die Verzweigungskonfiguration erweitern; Trigger, Taskpersistenz, Polling, Speicherung und Monitoring-Logik bleiben unverändert.

Das ist die praktische Antwort auf Multi-Anbieter-KI-Integration: ein kontrollierter Endpunkt und Schlüssel, explizites Modellrouting, getrennte synchrone und asynchrone Pfade und ein dauerhafter Datensatz für jeden Job.

FAQs

Kann n8n mehrere KI-Anbieter über eine einzige API aufrufen?

Ja. Mit einer vereinheitlichten API-Schicht wie CometAPI kann n8n Anfragen an verschiedene unterstützte Modelle senden, während die Anbieterzugangsdaten und die HTTP-Integration zentralisiert bleiben.

Kann ich CometAPI mit dem HTTP Request-Knoten von n8n verwenden?

Ja. Der HTTP Request-Knoten kann Anfragen an den API-Endpunkt von CometAPI mit der erforderlichen Authentifizierung und modell­spezifischen Parametern senden.

Kann n8n automatisch KI-Modelle wechseln, wenn eines fehlschlägt?

Ja. Verwenden Sie eine IF/Switch-Verzweigung nach der API-Anfrage und leiten Sie wiederholbare oder modell­spezifische Fehler an ein Fallback-Modell weiter. Das Fallback sollte dieselbe Modalität und die erforderlichen Fähigkeiten unterstützen.

Weiterlernen

Diesen Artikel mit der nächsten Entscheidung verknüpfen.

Alle Themen anzeigen
Veröffentlicht am Aug 25, 2026
Zuletzt aktualisiert Aug 26, 2026
0 Aufrufe
Auf Klarheit, Quellenangabe und aktuelle API-Terminologie geprüft.

Bereit, die KI-Entwicklungskosten um 20 % zu senken?

In wenigen Minuten kostenlos starten. Inklusive kostenlosem Testguthaben. Keine Kreditkarte erforderlich.

Mehr lesen