APIMart
APIMart

Qwen Image 3.0 API: Preise und Integration

Preise, Authentifizierung, Bildgenerierung und -bearbeitung, asynchrones Polling, Wiederholungen und produktionsreife Integration der Qwen Image 3.0 API.

Tutorial

Qwen Image 3.0 vereint Text-zu-Bild-Generierung und die Bearbeitung von Referenzbildern in einer asynchronen API. Über APIMart senden Sie einen Auftrag, fragen dessen Status ab und rufen nach Abschluss ein oder mehrere generierte Bilder ab.

Dieser Leitfaden behandelt die wichtigsten Punkte vor der Integration: aktuelle Preise für Standard und Pro, Authentifizierung, Anfrageparameter, Auswertung der Antwort, Polling, Wiederholungen und Speicherung der Ergebnisse. Einen Überblick über Fähigkeiten und Benchmarks finden Sie im Qwen Image 3.0 Release-Leitfaden.

Preise und Zugang zu Qwen Image 3.0

APIMart bietet zwei Modell-IDs an:

  • qwen-image-3.0 für Standard
  • qwen-image-3.0-pro für Pro

Abgerechnet wird pro generiertem Bild und nicht pro Eingabe-Token. Die folgende Tabelle entspricht der APIMart-Preisseite vom 27. August 2026. Preise können sich ändern.

Standard und Pro im Preisvergleich

ModellAuflösungUngefährer Preis pro BildUngefährer Preis für 1.000 Bilder
Qwen Image 3.0 Standard1K$0.0205712$20.57
Qwen Image 3.0 Standard2K$0.0205712$20.57
Qwen Image 3.0 Pro1K$0.0285712$28.57
Qwen Image 3.0 Pro2K$0.0571432$57.14

Bei Standard sind 1K und 2K derzeit gleich teuer. Pro in 2K kostet doppelt so viel wie Pro in 1K. Laut Dokumentation zur Qwen Image 3.0 API werden fehlgeschlagene Generierungen erstattet; für Referenzbilder fällt keine zusätzliche Generierungsgebühr an.

Kosten einer realen Auslastung schätzen

Die Grundformel lautet:

Monatliche Kosten = Anzahl fertiger Bilder × Preis pro Bild

Da n die Anzahl der Ausgaben bestimmt, kann eine Anfrage mit n: 4 vier Bilder berechnen. Planen Sie auch Prompt-Tests, Varianten und erneut generierte Bilder ein.

Standard eignet sich für die meisten Entwürfe und gewöhnlichen Assets. Pro lohnt sich, wenn bessere Textdarstellung, Komposition oder Details den Aufpreis rechtfertigen. Bei Pro können Sie in 1K iterieren und 2K für freigegebene hochauflösende Ergebnisse reservieren.

Zugang und Authentifizierung

Erstellen Sie ein APIMart-Konto, laden Sie ausreichendes Guthaben auf und erzeugen Sie im Dashboard einen API-Schlüssel. Speichern Sie ihn ausschließlich in einem serverseitigen Secret oder einer Umgebungsvariablen. Er darf weder in Browsercode noch in einer NEXT_PUBLIC_*-Variablen erscheinen.

Base URL und Bearer Token

Alle Beispiele verwenden diese Base URL:

https://api.apimart.ai/v1

Senden Sie den Schlüssel als Bearer Token:

Authorization: Bearer <your_api_key>
Content-Type: application/json

Ein fehlender oder ungültiger Schlüssel führt normalerweise zu 401, unzureichendes Guthaben kann 402 und ein Rate Limit 429 auslösen. Protokollieren Sie Antwort und Anfragekontext auf dem Server, entfernen Sie aber vor dem Speichern den API-Schlüssel.

Generierung, Bearbeitung und asynchroner Ablauf

Sowohl Generierung als auch Bearbeitung verwenden POST /v1/images/generations. Die API wartet nicht auf das fertige Bild, sondern gibt zunächst eine Task-ID zurück.

Zentrale Anfrageparameter

FeldErforderlichBeschreibung
modelJaqwen-image-3.0 oder qwen-image-3.0-pro
promptJaAnweisung für Generierung oder Bearbeitung, bis etwa 4.500 Token
image_urlsNur bei BearbeitungEin bis drei HTTPS-URLs oder unterstützte Base64 Data URLs
resolutionNein1K oder 2K
sizeNeinUnterstütztes Seitenverhältnis oder eigene Abmessungen
nNeinAnzahl der Ausgaben, 1 bis 6
prompt_extendNeinOb APIMart den Prompt erweitern soll

Bei eigenen Abmessungen muss jede Kante zwischen 512 und 2.048 Pixeln und das Seitenverhältnis zwischen 1:8 und 8:1 liegen. Referenzbilder dürfen JPEG, PNG, BMP, TIFF, WebP oder GIF sein und laut Dokumentation höchstens 10 MB groß sein. Prüfen Sie vor dem Release die aktuelle Referenz zur Generierung, da sich Grenzen ändern können.

Die offizielle Ankündigung von Qwen Image 3.0 nennt native Textdarstellung in zwölf Sprachen. Setzen Sie exakt darzustellenden Text in Anführungszeichen und testen Sie Schreibweise, Schriftstil und Layout in der Zielauflösung.

Beispiel für Text-zu-Bild

{
  "model": "qwen-image-3.0",
  "prompt": "Ein klares Produktbanner mit dem exakten Text \"Sommerschlussverkauf\", fette geometrische Schrift, warmer orangefarbener Hintergrund",
  "resolution": "1K",
  "size": "16:9",
  "n": 1,
  "prompt_extend": true
}

Beispiel für die Bearbeitung eines Referenzbildes

Fügen Sie image_urls hinzu, wenn ein vorhandenes Bild verändert werden soll:

{
  "model": "qwen-image-3.0-pro",
  "prompt": "Die Produktform unverändert lassen und den Hintergrund durch ein weich beleuchtetes Studio ersetzen",
  "image_urls": [
    "https://example.com/reference-product.png"
  ],
  "resolution": "2K",
  "n": 1
}

Die Referenz-URL muss für die API erreichbar sein. Verwenden Sie für private Dateien eine signierte URL, die lange genug für Übermittlung und Verarbeitung gültig ist, oder gegebenenfalls eine unterstützte Data URL.

Asynchroner Task-Ablauf

Der Ablauf umfasst drei Schritte:

  1. Task über POST /v1/images/generations senden.
  2. data[0].task_id aus der Antwort lesen.
  3. GET /v1/tasks/{task_id} bis zum Abschluss oder Fehlschlag abfragen.

Antwort beim Senden

Eine erfolgreiche Antwort hat diese Form:

{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_example"
    }
  ]
}

Lesen Sie task_id nicht aus dem obersten Objekt. Der Wert befindet sich im ersten Eintrag von data.

Polling und fertige Ergebnisse

Fragen Sie alle drei bis fünf Sekunden ab, statt ununterbrochen Statusanfragen zu senden. Fertige Dateien stehen unter data.result.images:

{
  "code": 200,
  "data": {
    "status": "completed",
    "result": {
      "images": [
        {
          "url": [
            "https://example-cdn.com/generated-image.png"
          ]
        }
      ]
    }
  }
}

Die aktuelle APIMart-Dokumentation besagt, dass fertige Bilder auf das Plattform-CDN gespiegelt und langfristig bereitgestellt werden. Kopieren Sie freigegebene Assets trotzdem in einen eigenen Speicher, wenn Sie Aufbewahrung, Löschung, Zugriffsregeln oder Auslieferungsleistung kontrollieren müssen.

Integrationsbeispiele

Integration mit Python

Dieses serverseitige Beispiel sendet einen Task, fragt alle drei Sekunden ab und beendet die Wartezeit nach drei Minuten:

import os
import time
import requests

API_KEY = os.environ["QWEN_API_KEY"]
BASE_URL = "https://api.apimart.ai/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

def generate_image(prompt: str) -> str:
    response = requests.post(
        f"{BASE_URL}/images/generations",
        headers=HEADERS,
        json={"model": "qwen-image-3.0", "prompt": prompt, "resolution": "1K", "n": 1, "prompt_extend": True},
        timeout=30,
    )
    response.raise_for_status()
    task_id = response.json()["data"][0]["task_id"]
    deadline = time.monotonic() + 180

    while time.monotonic() < deadline:
        poll = requests.get(f"{BASE_URL}/tasks/{task_id}", headers=HEADERS, timeout=30)
        poll.raise_for_status()
        task = poll.json()["data"]
        if task["status"] == "completed":
            return task["result"]["images"][0]["url"][0]
        if task["status"] == "failed":
            raise RuntimeError(task.get("fail_reason", "Generation failed"))
        time.sleep(3)

    raise TimeoutError(f"Task {task_id} did not finish within 180 seconds")

Speichern Sie die Task-ID in einer echten Anwendung vor dem Polling dauerhaft. Nach einem Neustart kann ein anderer Worker den gespeicherten Task fortsetzen, statt eine kostenpflichtige Duplikatgenerierung zu senden.

Integration mit JavaScript

Führen Sie diesen Code nur in einer vertrauenswürdigen Serverumgebung aus:

const apiKey = process.env.QWEN_API_KEY;
const baseUrl = "https://api.apimart.ai/v1";
const headers = { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" };

async function requestJson(url, options = {}) {
  const response = await fetch(url, { ...options, headers });
  const payload = await response.json();
  if (!response.ok) throw new Error(`APIMart ${response.status}: ${JSON.stringify(payload)}`);
  return payload;
}

async function generateImage(prompt) {
  const submission = await requestJson(`${baseUrl}/images/generations`, {
    method: "POST",
    body: JSON.stringify({
      model: "qwen-image-3.0", prompt, resolution: "1K", n: 1, prompt_extend: true,
    }),
  });
  const taskId = submission.data[0].task_id;
  const deadline = Date.now() + 180_000;

  while (Date.now() < deadline) {
    await new Promise((resolve) => setTimeout(resolve, 3000));
    const { data: task } = await requestJson(`${baseUrl}/tasks/${taskId}`);
    if (task.status === "completed") return task.result.images[0].url[0];
    if (task.status === "failed") throw new Error(task.fail_reason ?? "Generation failed");
  }
  throw new Error(`Task ${taskId} did not finish within 180 seconds`);
}

Für einen manuellen Test funktioniert derselbe Ablauf mit cURL:

curl -X POST https://api.apimart.ai/v1/images/generations \
  -H "Authorization: Bearer <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen-image-3.0","prompt":"Ein minimalistisches Produktfoto","resolution":"1K","n":1}'

curl https://api.apimart.ai/v1/tasks/<task_id> \
  -H "Authorization: Bearer <your_api_key>"

Checkliste für den Produktivbetrieb

Ein einmaliger erfolgreicher API-Aufruf ist nur der Anfang. Eine zuverlässige Bildpipeline benötigt begrenzte Wiederholungen, dauerhaften Task-Status, Beobachtbarkeit und kontrollierten Speicher.

Fehler und Wiederholungsstrategie

AntwortBedeutungEmpfohlene Maßnahme
400Ungültige ParameterAnfrage korrigieren; unverändert nicht erneut senden
401API-Schlüssel fehlt oder ist ungültigServerseitige Zugangsdaten korrigieren
402Guthaben reicht nichtGuthaben aufladen und dann wiederholen
429Rate Limit erreichtMit exponentiellem Backoff und Jitter wiederholen
5xxVorübergehender DienstfehlerBegrenzt und mit Backoff wiederholen

Senden Sie eine Generierung nach einem mehrdeutigen Netzwerk-Timeout nicht blind erneut. Wurde die erste Anfrage angenommen, erzeugt die zweite einen doppelten Task und zusätzliche Kosten. Speichern Sie jede zurückgegebene Task-ID und trennen Sie Wiederholungen der Übermittlung von Wiederholungen des Pollings.

Prüfung vor dem Release

  • API-Schlüssel nur in einem serverseitigen Secret speichern.
  • prompt, resolution, size, n und Referenzbilder vor dem Senden validieren.
  • Task-ID und aktuellen Status dauerhaft speichern.
  • Alle drei bis fünf Sekunden pollen und ein Anwendungs-Timeout setzen.
  • Für 429 und wiederholbare 5xx exponentiellen Backoff mit Jitter einsetzen.
  • Parallelität anhand gemessener Limits und Latenzen begrenzen.
  • Fertige, fehlgeschlagene, abgelaufene und doppelte Tasks getrennt erfassen.
  • Freigegebene Ergebnisse in eigenen Speicher kopieren, wenn die Aufbewahrung kontrolliert werden muss.
  • Vor dem Produktiv-Release Qwen Image 3.0 Modellseite, Preise und API-Dokumentation erneut prüfen.

Bilder mit Qwen Image 3.0 generieren

Testen Sie Standard und Pro über die einheitliche APIMart API, vergleichen Sie 1K und 2K und bringen Sie Ihren Bild-Workflow sicher in den Produktivbetrieb.

Qwen Image 3.0 entdecken

Häufig gestellte Fragen

Wie lange sollte das Polling laufen?

APIMart empfiehlt ein Intervall von drei bis fünf Sekunden und ungefähr drei Minuten Client-Timeout. Verwenden Sie das als Ausgangspunkt, messen Sie die reale Latenz und passen Sie den Wert an. Mit einer gespeicherten Task-ID können abgelaufene Tasks später abgeglichen werden.

Verfallen Ergebnis-URLs nach 24 Stunden?

Die aktuelle APIMart-Dokumentation erklärt, dass Ausgaben auf das Plattform-CDN gespiegelt und langfristig bereitgestellt werden. Die frühere Aussage über 24 Stunden gilt daher für diese Integration nicht. Geschäftskritische Assets sollten dennoch in einem kontrollierten Speicher liegen, statt allein von einer externen Aufbewahrung ohne verbindliche Dauer abhängig zu sein.

Kann ich ein Base64-Referenzbild senden?

Ja. Laut aktueller Dokumentation akzeptiert image_urls ein bis drei öffentliche HTTP-/HTTPS-URLs oder unterstützte Base64 Data URLs. Jedes Bild muss die Formatvorgaben und das Limit von 10 MB einhalten.

Wann sollte ich 1K oder 2K verwenden?

1K eignet sich für schnelle Iterationen und Assets ohne höchste Detailanforderung. Verwenden Sie 2K für finale Bilder mit viel Text, feinen Kanten oder großformatiger Darstellung. Standard kostet derzeit in beiden Auflösungen gleich viel, während Pro 2K teurer als Pro 1K ist. Bewerten Sie daher Latenz, Qualität und Kosten gemeinsam.

Bereit zum Ausprobieren?

Wählen Sie Ihr gewünschtes Modell im Marktplatz

Testen Sie Chat-, Bild- und Videomodelle im APIMart-Marktplatz und erleben Sie Modellfunktionen schnell über eine einheitliche API.

Chat-ModelleBildmodelleVideomodelle
Modellmarktplatz öffnen