Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
Background-Removal-API: Kosten pro verwertbarem Bild
2026/09/03

Background-Removal-API: Kosten pro verwertbarem Bild

Background Removal API Preise ab Live-Kalkulation, dann abgelehnte Ausgaben, Wiederholungen, Speicher und Review addieren für echte Bildkosten.

Die aktuelle Background Removal API Preisgestaltung für mj-v7-remove-bg beträgt 88 Credits, oder $0.088 pro abgeschlossener Anfrage, beim Check am 3. September 2026. Das ist die richtige Ausgangszahl für ein Request-Budget. Es ist nicht automatisch die Kosten eines verwertbaren Zuschnitts.

Ein fertig gestelltes Bild kann einen Halo haben, eine Griff-Öffnung verlieren, einen Schatten abflachen oder in einem Format ankommen, das der nächste Service nicht verarbeiten kann. Diese Anleitung zeigt, wie die Route aufgerufen wird, sicher abgefragt wird, die endgültige Gebühr überprüft wird, und die Kosten pro Bild berechnet werden, das tatsächlich die Überprüfung besteht.

TL;DR

  • Der Live-Estimator gab 88 Credits ($0.088) pro abgeschlossener mj-v7-remove-bg Anfrage am 3. September 2026 zurück. Ein Credit kostet $0.001.[1]
  • Die Anfrage nimmt genau eine öffentliche HTTP(S)-URL. Sie nimmt keinen Prompt, keine Auflösung, kein Speed-Flag und keine übergeordnete Task-ID.[2]
  • Der Betrieb ist asynchron: einmal absenden, die zurückgegebene Task-ID speichern und die Task-Route abfragen. Abfragen verbrauchen keine Credits.[3]
  • Budget mit Gesamtgebühr / akzeptierte Ausgaben, nicht die Anzahl der eingereichten Dateien. Bei 80% Akzeptanzrate werden $0.088 pro Anfrage zu $0.11 pro verwertbarem Bild.
  • Eine fehlgeschlagene Task mit usage.credits: 0 wurde erstattet. Ein fertig gestelltes Ergebnis, das ein Team wegen schlechter Kanten ablehnt, war trotzdem fertig gestellte Arbeit, also addieren es in die Berechnung verwertbarer Bilder.[3]
  • Führe einen kleinen Testsatz aus deinem eigenen Katalog durch, bevor du Volumen übernimmst. Ein sauberes Produktfoto sagt wenig über Haare, Glas, niedriges Kontrast oder Objekte mit Löchern aus.

Warum der angegebene Preis selten die entscheidende Zahl ist

Wenn deine App bei Tausenden hochgeladenen Bildern den Hintergrund entfernt, wie vergleichst du Dienste, wenn Preis, Kantenqualität, Antwortzeit, Auflösung und Dateiübergabe gemeinsam das Ergebnis bestimmen? Der Listenpreis allein beantwortet diese Frage nicht. Die nützliche Rechnung ist enger gefasst:

Kosten pro verwertbarem Bild = Gesamtgebühr der API / Bilder, die die Überprüfung bestehen

Dieser Nenner ändert die Entscheidung. Ein billiger Endpunkt, der feine Kanten beschädigt, kann am Ende mehr kosten als ein höher bewerteter, wenn Wiederholungen und manuelle Bereinigung addiert werden.

Was der aktuelle Hintergrund-Entfernungs-API-Preis kauft

Die Live-Midjourney V7 Modellseite listet Remove BG als leichte Bearbeitung. Die aktuelle Anfragekalkulation erfolgt in ganzen Credits, und die Live-Kalkulation für die erforderliche Nutzlast beträgt 88 Credits.[1] Da ein Credit gleich $0.001 ist, verwende $0.088 in einem Budget.

AnfragenAPI-Gesamtbetrag bei 88 CreditsWas die Zahl annimmt
1$0.088Eine abgeschlossene Entfernungsanfrage
10$0.88Zehn abgeschlossene Anfragen, vor Akzeptanz-Überprüfung
100$8.80Keine fertig gestellte Ausgabe abgelehnt
1.000$88.00Keine Speicher-, Überprüfungs- oder Transformationskosten
10.000$880.00Gleiche Rate und 100% akzeptierte Ausgaberate

Du siehst die Operation möglicherweise als $0.0873 in einem detaillierten Preisetikett angezeigt. Verwende diese Bruchzahl nicht zur Abstimmung eines Credit-Saldos. Die öffentliche Preistabelle und der Estimator zeigen die zahlbare Einheit als 88 ganze Credits oder $0.088. Prüfe die Live-Modellseite erneut vor einem großen Durchlauf, da sich die Preise ändern können.

Die API-Gesamtsumme schließt die Arbeit rund um den Anruf aus:

  • die Quelle an einer URL hosten, die der Service abrufen kann;
  • das Ergebnis herunterladen und speichern;
  • Transparenz, Abmessungen und Dateikompatibilität überprüfen;
  • menschliche Überprüfung oder automatisierte Qualitätsprüfungen;
  • fertig gestellte Ausgaben, die deine Akzeptanzregeln nicht bestehen;
  • Größenänderung, Farbkorrektur, Schattenneuaufbau oder spätere Zusammensetzung.

Für einen Prototyp können diese Kosten zu vernachlässigen sein. Bei Katalog-Umfang gehören sie in die gleiche Kalkulationstabelle wie das API-Leitenelement.

Eine Quell-URL, kein Prompt und keine übergeordnete Task

mj-v7-remove-bg ist einfacher als die anderen Midjourney V7 Bearbeitungsvorgänge. Es verkettet nicht aus einer früheren Generierung. Sende das Bild, das du bereits hast, in image_urls.[2]

FeldErforderlichAkzeptierter Wert
modeljamj-v7-remove-bg
image_urlsjaEin Array, das genau eine öffentliche HTTP(S)-Bild-URL enthält
promptnicht akzeptiertSende es nicht
model_paramsnicht akzeptiertKeine Speed-, Task-ID- oder Bearbeitungsoptionen
size / resolutionnicht akzeptiertDie Route bietet keine Ausgabegrößen-Kontrolle

Das Schema ist streng. Das Hinzufügen von Feldern, die von einem anderen Image-Modell kopiert werden, ist kein harmloser No-Op; es macht die Anfrage ungültig. Base64-Zeichenketten, data:-URLs, lokale Pfade und authentifizierte browsergesteuerte Links sind auch die falsche Eingabe. Lade die Quelle in Speicher, den du kontrollierst, hoch und bestätige, dass sie ohne Cookie oder Login geladen wird.

Hier ist die komplette cURL Anfrage:

curl https://reapi.ai/api/v1/images/generations \
  -H "Authorization: Bearer $REAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mj-v7-remove-bg",
    "image_urls": [
      "https://your-cdn.example/catalog/source-product.png"
    ]
  }'

Eine gültige Übermittlung gibt einen Task-Datensatz im processing Zustand zurück. Speichere seine id. Das endgültige Bild kommt nicht in der POST-Antwort an.

Einmal einreichen, dann mit Frist abfragen

Die sicherste Anfänger-Implementierung hat zwei separate Aktionen: eine POST, die den Job erstellt, gefolgt von begrenzten GET-Anfragen, die seinen Status lesen. Platziere die POST nicht in der Polling-Schleife.

Dieses Node.js-Beispiel fragt alle 2,5 Sekunden ab und verwendet einen 15-Minuten-lokalen Termin. Die Task-Referenz empfiehlt ein Zwei-bis-Drei-Sekunden-Tempo und erklärt, dass In-Flight-Task-Lesevorgänge zwischengespeichert sind, sodass schnelleres Polling Request-Druck hinzufügt, ohne dass das Bild schneller fertig wird.[3]

const API_BASE = 'https://reapi.ai/api/v1';
const API_KEY = process.env.REAPI_API_KEY;
const sourceUrl = process.argv[2];

if (!API_KEY) throw new Error('Set REAPI_API_KEY');
if (!sourceUrl) throw new Error('Pass one public source image URL');

const headers = {
  Authorization: `Bearer ${API_KEY}`,
  'Content-Type': 'application/json',
};

async function readJson(response) {
  const body = await response.json();
  if (!response.ok) {
    const code = body.error?.code ?? response.status;
    const message = body.error?.message ?? 'Request failed';
    throw new Error(`${code}: ${message}`);
  }
  return body;
}

const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

async function getTask(taskId) {
  for (let attempt = 0; attempt < 4; attempt += 1) {
    let response;
    try {
      response = await fetch(`${API_BASE}/tasks/${taskId}`, {
        headers: { Authorization: `Bearer ${API_KEY}` },
        signal: AbortSignal.timeout(15_000),
      });
    } catch (error) {
      if (attempt === 3) throw error;
      await sleep(1000 * 2 ** attempt);
      continue;
    }

    if (response.status === 429) {
      const seconds = Number(response.headers.get('retry-after'));
      await response.body?.cancel();
      await sleep(Number.isFinite(seconds) ? seconds * 1000 : 5000);
      continue;
    }

    if ([502, 503, 504].includes(response.status)) {
      await response.body?.cancel();
      await sleep(1000 * 2 ** attempt);
      continue;
    }

    return readJson(response);
  }

  throw new Error(`Task ${taskId} could not be read after transient errors`);
}

async function removeBackground(imageUrl) {
  const submitted = await readJson(
    await fetch(`${API_BASE}/images/generations`, {
      method: 'POST',
      headers,
      body: JSON.stringify({
        model: 'mj-v7-remove-bg',
        image_urls: [imageUrl],
      }),
      signal: AbortSignal.timeout(30_000),
    })
  );

  const deadline = Date.now() + 15 * 60 * 1000;

  while (Date.now() < deadline) {
    await sleep(2500);
    const task = await getTask(submitted.id);

    if (task.status === 'completed') {
      const urls = task.output?.image_urls ?? [];
      if (urls.length === 0) {
        throw new Error('Task completed without an image URL');
      }
      return {
        taskId: task.id,
        imageUrls: urls,
        credits: task.usage?.credits,
      };
    }

    if (task.status === 'failed') {
      const code = task.error?.code ?? 'UNKNOWN_TASK_ERROR';
      const message = task.error?.message ?? 'Background removal failed';
      const credits = task.usage?.credits ?? 'unknown';
      throw new Error(
        `${code}: ${message}; task=${task.id}; settled_credits=${credits}`
      );
    }
  }

  throw new Error(`Polling deadline reached for task ${submitted.id}`);
}

removeBackground(sourceUrl)
  .then(console.log)
  .catch((error) => {
    console.error(error.message);
    process.exitCode = 1;
  });

Führe es mit aus:

REAPI_API_KEY=rk_live_xxx node remove-background.mjs \
  https://your-cdn.example/catalog/source-product.png

In der Produktion schreibe die Task-ID in deine Datenbank, bevor du vom Submit-Handler zurückkehrst. Ein Worker kann dann nach einem Prozess-Neustart das Polling fortsetzen. Behalte den API-Schlüssel auf dem Server; platziere ihn niemals in Browser-JavaScript oder einem Mobile-App-Bundle.

Was eine ausfallende Live-Anfrage tatsächlich kostete

Wir reichten eine mj-v7-remove-bg Anfrage ein, während wir diesen Leitfaden am 3. September 2026 prüften, mit einem eigenen Mug-Foto. Die API akzeptierte die strikte Nutzlast als Task task_01a065b32dbe771eb5babd28de9b38d9, aber sie endete später in failed Status mit Fehlercode 80003 und der Nachricht Service authentication failed. Sie gab keine Ausgabe zurück und usage.credits: 0, daher betrugen die endgültigen Kosten $0, nicht $0.088.

Wir reichten die unveränderte Anfrage nicht erneut ein, nur um ein erfolgreiches Beispiel herzustellen. Dieser einzelne Durchlauf bestätigt den Task- und Rückerstattungspfad; er sagt nichts über Zuschnittqualität, Dateityp, Abmessungen, Alpha-Unterstützung oder normale Fertigstellungszeit aus. Die 88-Credit-Ziffer oben bleibt die Live-Kalkulation für eine Anfrage, die fertig wird. Lies immer den terminalen Task statt die Einreichungsanzahl mit dem beworbenen Rate zu multiplizieren.[3]

Anfrage-Preis in Kosten pro verwertbarem Bild umwandeln

Beginne mit einer Akzeptanzregel, nicht einer Prozentrate, die du erreichst. Dann miss die Prozentrate auf einer Stichprobe aus der Arbeitslast, die du versenden möchtest.

Hintergrund-Entfernungs-API-Kostenrichter von eingereichten Anfragen über Zuschnitt-Überprüfung zu akzeptierten Bildern

Wenn jede fertig gestellte Anfrage einen Kandidaten erzeugt, ist die Planungsgleichung:

verwertbare Bildkosten = $0.088 / Akzeptanzrate

Die Tabelle unten enthält Szenarien, keine gemessene Modellqualität:

Angenommene AkzeptanzrateAnfragen für 1.000 akzeptierte BilderAPI-GesamtsummeKosten pro verwertbarem Bild
100%1.000$88.000$0.0880
95%1.053$92.664$0.0927
90%1.112$97.856$0.0979
80%1.250$110.000$0.1100
50%2.000$176.000$0.1760

Verwende für den Zähler endgültige Task-Daten. Die Task-Antwort gibt usage.credits in jedem Status an. processing plus null bedeutet, dass die Abrechnung nicht abgesetzt hat. completed zeigt die berechneten Credits. failed plus null bedeutet, dass die Reservierung erstattet wurde; ein positiver Wert bedeutet, dass eine dokumentierte Gebühr beibehalten wurde.[3]

Diese Unterscheidung verhindert zwei Buchhaltungsfehler. Zähle keine erstattete Provider-Fehler als bezahlte Ausgabe, und lösche keinen fertig gestellten, aber hässlichen Zuschnitt aus den Ausgaben. Es verbrauchte trotzdem eine bezahlte Anfrage.

Entscheide, was "verwertbar" bedeutet, bevor der Test

Eine visuelle Prüfung ist zu vage für einen wiederholbaren Benchmark. Schreibe eine kurze Rubrik vor dem Einreichen der Stichprobe, dann wende die gleichen Prüfungen auf jedes Ergebnis an.

Transparenz und Kantenintegrität

Öffne die heruntergeladene Datei in einem Tool, das ein Alpha-Schachbrett zeigt. Ein weißer Hintergrund ist nicht Transparenz. Überprüfe die volle Silhouette bei 100% und 400% Zoom auf weiße oder dunkle Halos, fehlende Pixel und Chunks des alten Hintergrunds.

Löcher, feine Details und schwierige Materialien

Füge Beispiele mit Griff-Öffnungen, Riemen, Speichen, lose Haare, Fell und Laub hinzu. Addiere Glas, durchscheinende Verpackung, glänzendes Metall und niedriges Kontrast Objekt-Kanten, wenn diese in deinem echten Katalog erscheinen. Ein Modell, das einen dunklen Becher auf Weiß besteht, kann trotzdem eine klare Flasche oder ein blass Objekt auf Beige nicht bestehen.

Produktdetails und Schatten

Bestätige, dass Etiketten, gedruckter Text, dünne Anbauten und der Produkt-Umriss sich nicht änderten. Entscheide, ob ein Kontaktschatten behalten, aufgeweicht oder entfernt werden soll. Verschiedene Ziele brauchen verschiedene Antworten, sodass "Schatten entfernt" nicht automatisch ein Bestehen ist.

Datei-Vertrag

Erfasse MIME-Typ, Erweiterung, Breite, Höhe, Byte-Größe, Alpha-Präsenz und die Anzahl der zurückgegebenen URLs. Der öffentliche Vertrag gibt output.image_urls zurück, aber er verspricht keine spezifische Erweiterung oder Pixelgröße für diesen Vorgang. Teste die echte Datei gegen die nächste API, das Designtool oder den Marktplatz-Importer in deiner Pipeline.

Ein nützlicher Pilot ist groß genug, um die Schwierigkeitsfälle zu vertreten, nicht nur die leichten. Zehn bis dreißig eigene Bilder können offensichtliche Inkompatibilitäten aufdecken. Ein endgültiger Beschaffungs-Benchmark sollte die Verteilung deines echten Katalogs folgen.

Fehler ohne eine Kosten-Schleife wiederholen

Wiederholungsregeln sollten den Fehler nutzen, nicht Frustration. Die öffentliche Fehler-Referenz trennt ungültige Eingabe, Authentifizierung, unzureichendes Saldo, Rate-Limits, Kapazitätsfehler und terminale Workflow-Fehler.[4]

ErgebnisWas zu tun ist
HTTP 400, 401, 402 oder 404Behebe die Anfrage, Anmeldedaten, Saldo oder Task-ID. Wiederhole nicht unverändert.
HTTP 429Warte auf Retry-After, dann wiederhole den gleichen Lesvorgang oder sichere Operation.
HTTP 502, 503 oder 504Sichern Sie exponentiell ab und begrenzen Sie Versuche.
Task failedLese error.code und usage.credits, bevor du entscheidest, ob du erneut einreichst.
Task completed, QA fehlgeschlagenÄndere die Quelle oder leite das Bild zur manuellen Bereinigung; Deckelzahlzahl-Wiederholungen.

Behalte die Submit-Aktion außerhalb automatischer Polling-Wiederholungen. Sobald eine POST eine Task-ID zurückgibt, sollte jede später Prüfung ein GET für diese Task sein. Für ein fertig gestelltes Bild das deine Rubrik nicht besteht, könnte eine zweite identische Anfrage das gleiche Kantenproblem reproduzieren. Die Eingabe-Zuschnitt, Kontrast oder Vorverarbeitung zu ändern ist nützlicher als eine unbegrenzte Wiederholung.

Lade akzeptierte Dateien zu deinem eigenen Speicher herunter, sobald die Task fertig wird. Die Task-Dokumentation sagt, dass Ausgabe-URLs auf das CDN erneut gehostet werden, aber verspricht nicht lange Aufbewahrung.[3]

Gehostete Route versus eine offizielle Midjourney-API

mj-v7-remove-bg ist eine gehostete Route, die über reAPI ausgesetzt ist. Sie sollte nicht als Midjourney's offizielle öffentliche API beschrieben werden. Midjourney's aktuelle Community Richtlinien sagen, dass sie im Allgemeinen keine API bereitstellt und keine nicht autorisierten Automatisierung verbietet, außer in seltenen, ausdrücklich genehmigten Fällen.[5]

Diese Unterscheidung ist während der Beschaffung wichtig. Überprüfe den gehosteten Service's eigenen Vertrag und akzeptable Nutzungsbedingungen, anstatt anzunehmen, dass ein Modell-Label ein offizielles Vendor-Verhältnis schafft. Der separate Leitfaden Hat Midjourney eine API? behandelt diese Frage im Detail; dieser Artikel konzentriert sich auf die aufgerufene Route und ihre Kosten.

FAQ

Braucht mj-v7-remove-bg eine vorherige Midjourney-Task?

Nein. Es ist eine direkte Bild-Bearbeitung. Gebe eine öffentliche Bild-URL in image_urls weiter; sende nicht task_id oder model_params.[2]

Kann ich ein Base64-Bild senden?

Nein. Das Request-Schema akzeptiert eine öffentliche HTTP(S)-URL. Lade die Datei zuerst hoch, dann sende eine URL, die der Service abrufen kann, ohne deine Browser-Sitzung.

Ist der aktuelle Preis $0.0873 oder $0.088?

Verwende $0.088 für Abrechnungs-Schätzungen. Der Vorgang könnte als $0.0873 in einer detaillierten Anzeige erscheinen, aber der Live-Estimator gibt 88 ganze Credits zurück und ein Credit gleicht $0.001.[1]

Gibt eine Anfrage vier hintergrund-entfernte Bilder zurück?

Budget nicht auf dieser Annahme. Vier Bilder pro Anfrage beschreiben die Basis Midjourney V7 Generierung. Der direkte Remove BG Vertrag nimmt ein Quellbild und gibt ein Bild-URL-Array zurück, aber es verspricht nicht vier Zuschnitts. Überprüfe die terminale Task's Array-Länge in deinem Pilot.[2]

Gibt die API immer ein transparentes PNG zurück?

Der aktuelle öffentliche Vertrag verspricht Bild-URLs, nicht eine spezifische Erweiterung, MIME-Typ oder Alpha-Kanal-Garantie. Lade ein echtes Ergebnis herunter und überprüfe Alpha vor dem Aufbau eines PNG-nur-Downstream-Workflows.

Kostet Polling Credits?

Nein. Eine Task zu pollern, verbraucht keine Credits. Frage alle zwei bis drei Sekunden ab und stoppe bei einem Termin, der zu deiner Anwendung passt.[3]

Werden ausfallende Hintergrund-Entfernungs-Tasks berechnet?

Lies usage.credits auf der terminalen Task. Eine ausfallende Task mit null Credits wurde vollständig erstattet. Der allgemeine Task-Vertrag erlaubt eine positiv beibehalten Gebühr in einigen modellspezifischen Post-Generierung-Sicherheitsfällen, also leite die Rechnung nicht nur aus Status ab.[3]

Was kosten 1.000 verwertbare Bilder?

Bei 100% Akzeptanzrate kosten 1.000 Anfragen $88 bei der aktuellen Rate. Bei 80% Akzeptanz braucht es 1.250 Anfragen, um 1.000 verwertbare Dateien zu erreichen, und kostet $110, vor Speicher und Überprüfung. Ersetze die angenommene Rate mit deiner gemessenen Pilot.

Wähle nach Kosten pro akzeptiertem Bild, nicht nach Listenpreis

Die aktuelle Preisstruktur der Background-Removal-API ist auf Anfrageebene einfach: 88 Credits beziehungsweise $0.088. Die eigentliche Produktionsentscheidung beginnt danach. Teste die Kanten und den Dateivertrag, die deine Anwendung tatsächlich braucht, lies die abgerechnete Nutzung jeder Aufgabe aus und teile die Gesamtausgaben durch die Zahl der Ergebnisse, die ein festes Prüfschema bestehen.

Beginne mit der Midjourney-V7-API-Referenz, führe einen kleinen Test mit eigenen Bildern durch und halte die Referenz zum Task-Polling bei der Implementierung griffbereit. So erhältst du belastbare Kosten pro nutzbarem Bild statt eines ungeprüften Schlagzeilenpreises.

Referenzen

  1. reAPI. Midjourney V7 model page and live pricing. Retrieved September 3, 2026 from reapi.ai/models/midjourney-v7
  2. reAPI. Midjourney V7 API reference. Retrieved September 3, 2026 from reapi.ai/docs/midjourney-v7
  3. reAPI. Tasks: polling, usage, output, and refund semantics. Retrieved September 3, 2026 from reapi.ai/docs/api/tasks
  4. reAPI. API error codes and retry guidance. Retrieved September 3, 2026 from reapi.ai/docs/api/errors
  5. Midjourney. Community Guidelines: unauthorized automation and third-party apps. Retrieved September 3, 2026 from docs.midjourney.com/hc/en-us/articles/32013696484109-Community-Guidelines