Zum Hauptinhalt springen

Objektentfernung per API: Maske erstellen und bearbeitetes Bild laden

Objekte mit einer weiß-auf-schwarzen Maske für 0,03 $ pro Bild entfernen: Playground-Schritte, Maske, Python-Beispiel und Lösungen für typische Fehler.

Autor
Lydia
Erschienen
Lesedauer
8 Min. Lesezeit
Aktualisiert
Redaktionelle Illustration einer lockigen Bildbearbeiterin mit Brille, die auf einer transparenten Folie über einem Caféporträt eine Lampe markiert; kein Ergebnis der Object-Eraser-API.

Verwenden Sie spicyapi/object-eraser-v1/edit mit image_url und entweder einem kurzen prompt, einer mask_url oder beidem. Bei einer Maske gilt: Weiß bedeutet entfernen, Schwarz bedeutet behalten, und die Pixelmaße müssen mit dem Original übereinstimmen. Der Preis beträgt 0,03 $ pro ausgegebenem Bild, unabhängig davon, wie viele Objekte die Anfrage entfernt. Das Ergebnis behält die Originalgröße der Leinwand, und der ausgewählte Bereich wird mit Inhalten aus der umgebenden Szene gefüllt.

Prompt oder Maske wählen

Bei einem markanten Objekt mit Abstand zur Umgebung genügt als Start eine kurze Beschreibung:

der weiße Pappbecher auf dem Boden neben dem vorderen rechten Stuhlbein

Nennen Sie ein Substantiv, eine sichtbare Farbe oder ein Material und eine Position. „Mach die Szene sauber und hochwertig" benennt nicht, was verschwinden soll. Der Prompt darf 1 bis 1000 Zeichen lang sein, doch eine längere Beschreibung wählt nicht präziser aus.

SituationPassende Eingabe
Ein eindeutiger Becher auf freiem Bodenprompt, der diesen Becher benennt
Zwei ähnliche Becher, nur einer unerwünschtmask_url über dem gemeinten Becher
Dünnes Kabel oder Objekt am Bildrandmask_url; Beschreibungen verfehlen das oft
Eine Beschreibung könnte das falsche Objekt treffenBeides senden: dasselbe Ziel beschreiben und markieren
Freigestellter Stuhl mit transparentem HintergrundHintergrundentfernung
Mehr Platz um das FotoOutpainting nach der Bereinigung

Passt eine Beschreibung auf nichts, kommt das Bild unverändert zurück, und die Aufgabe gilt trotzdem als erfolgreich. Vergleichen Sie das Ergebnis daher mit dem Original, bevor Sie es als Entfernung werten.

Ein erwachsener Fotograf fotografiert einen blauen Sessel; redaktionelle Kreise markieren eine Tasse, ein Kabel und eine Kartonplatte.

Illustration möglicher Auswahlen. Alle markierten Objekte sind noch vorhanden; dies ist keine API-Ausgabe.

Zuerst im Playground ausprobieren

  1. Öffnen Sie die Object-Eraser-Seite, bleiben Sie auf dem Tab Playground in der Ansicht Form und melden Sie sich mit einem aufgeladenen Konto an, um zu starten.
  2. Fügen Sie das Foto unter Input image hinzu (JPG, PNG oder WebP, bis 10 MB). Ziehen Sie eine Datei hinein, fügen Sie über Asset URL und Add URL einen Link ein oder wählen Sie sie über das Dateifenster.
  3. Beschreiben Sie das Ziel entweder unter Prompt, oder laden Sie Ihr Schwarzweißbild unter Mask hoch, oder füllen Sie beides aus. Das Formular verlangt mindestens eines von beiden.
  4. Lassen Sie Output format auf PNG (JPEG und WebP erzeugen kleinere Dateien) und starten Sie. Der Preis beträgt 0,03 $ pro Bild.
  5. Öffnen Sie das Ergebnis neben dem Original und der Maske und nutzen Sie bei übrig gebliebenen Resten die Fehlertabelle weiter unten.

Das Feld Request body zeigt dasselbe JSON, das die API erwartet. Ein Prompt oder eine Maske, die hier funktioniert, lässt sich also direkt in Code übernehmen. Scheitert es hier, korrigieren Sie Prompt oder Maske, bevor Sie eine Zeile Code schreiben.

Die Maske für genau das Bild erstellen, das Sie senden

Kennen Sie die Region bereits (eine Detektor-Box oder eine Auswahl in der Oberfläche), erzeugen Sie die Maske im Code. Ihre Größe stammt vom Original und passt damit immer:

python
from PIL import Image, ImageDraw

src = Image.open("source.jpg")          # apply EXIF rotation and crop first
mask = Image.new("L", src.size, 0)      # black = keep
bbox = (src.width // 4, src.height // 3, src.width // 2, src.height // 2)
# Example coordinates only: adjust this box to the unwanted object in your photo.
ImageDraw.Draw(mask).rectangle(bbox, fill=255)  # white = remove
mask.save("mask.png")

Für unregelmäßige Formen bereiten Sie bei einem Original mit 2400×1600 Pixeln in einem Bildeditor eine Maske mit 2400×1600 Pixeln vor:

  1. Schließen Sie zuerst Drehung und Zuschnitt des Originals ab und speichern Sie dieses Arbeitsbild.
  2. Fügen Sie eine schwarze Ebene in voller Leinwandgröße hinzu und senken Sie beim Zeichnen ihre Deckkraft, damit das Ziel sichtbar bleibt.
  3. Malen Sie den Becher weiß, einschließlich seines unerwünschten Rands und seines Kontaktschattens, mit einem kleinen Spielraum, wo Platz ist. Das Stuhlbein bleibt schwarz.
  4. Stellen Sie die Ebene wieder auf volle Deckkraft und exportieren Sie sie allein als deckendes Schwarzweiß-PNG, nicht als abgedunkeltes Foto und nicht mit farbigen Anmerkungen.
  5. Legen Sie die exportierte Maske über das Arbeitsbild und prüfen Sie den weißen Bereich.

Gleiche Seitenverhältnisse genügen nicht: Beide Dateien brauchen dieselbe Breite, Höhe, denselben Zuschnitt und dieselbe Ausrichtung. Eine etwas großzügige Form funktioniert, wo nichts anderes in der Nähe liegt. Die Beispielmaske der Modellseite für ein Regal am Bildrand ist eine schwarze Fläche in Fotogröße mit einem einzigen schlichten weißen Rechteck über dem Regal.

Schatten und Spiegelungen können außerhalb der Silhouette des Objekts liegen. Malen Sie eine unerwünschte Spiegelung als eigenen weißen Bereich. Überlappt der Schatten des Bechers den Standschatten des Stuhls, malen Sie nicht die ganze dunkle Fläche weiß, sonst kann der Stuhl zu schweben scheinen. Die Maske markiert, was entfernt wird; sie liefert weder den verdeckten Boden noch die Geometrie des Produkts.

Führen Sie große oder überlappende Entfernungen als getrennte Durchgänge aus und bauen Sie jede Maske auf dem akzeptierten vorherigen Ergebnis auf. Zwei kleine Objekte in einer Anfrage kosten 0,03 $; zwei getrennte Anfragen kosten 0,06 $. Halten Sie Masken- und Bilddateinamen als Paar zusammen, damit eine ältere Auswahl nicht unbemerkt ein neueres Foto bearbeitet.

Danach per Code ausführen

Installieren Sie das Python-SDK (pip install spicyapi), setzen Sie SPICY_API_KEY in Ihrer Serverumgebung und führen Sie die folgende Anfrage aus. Sie nutzt das Beispielfoto der Modellseite und läuft daher unverändert. Dateien von Ihrem Rechner gehen über client.upload_file und kommen als spicy://-Adresse zurück. Für eine Maske fügen Sie "mask_url" mit Ihrer eigenen Datei hinzu, die dieselbe Pixelgröße wie das Foto hat.

python
import uuid
from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

task = client.create_task(
    model="spicyapi/object-eraser-v1/edit",
    input_data={
        "image_url": "https://cdn.spicyapi.ai/models/examples/inputs/fbc8d531c80e6d0d.jpeg",
        "prompt": "the wooden ladle lying across the sauna stones at the left",
        "output_format": "png",
    },
    idempotency_key=str(uuid.uuid4()),
)

final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
    raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
print(output_assets(final)[0]["url"])  # copy the image to your own storage now

Uploads, Erstellen, Warten, Herunterladen, Wiederholungen und Fehlercodes behandeln der Tasks-Leitfaden und die Python-SDK-Referenz. Erzeugte Dateien werden höchstens 14 Tage aufbewahrt, kopieren Sie das Ergebnis also in Ihren eigenen Speicher.

Oder einen Agenten ausführen lassen

Soll ein Assistent die Bearbeitung übernehmen, zeigen alle drei offiziellen Werkzeuge den Preis an und fragen vor einem kostenpflichtigen Aufruf nach.

  • CLI. Laden Sie Foto und Maske hoch und erstellen Sie dann die Aufgabe:

``bash spicyapi files upload photo.jpg spicyapi tasks create --model spicyapi/object-eraser-v1/edit --input-file input.json --wait ``

Tragen Sie die zurückgegebenen spicy://-Adressen in input.json als image_url und mask_url ein. Siehe die CLI-Dokumentation; npx @spicyapi/cli funktioniert ohne Installation.

  • MCP-Server. Fügen Sie den MCP-Server Ihrem Assistenten hinzu und fragen Sie: „Entferne den weißen Pappbecher aus diesem Foto mit Object Eraser; die Datei liegt unter /path/to/photo.jpg." Er lädt die Datei mit spicyapi_upload_file hoch und ruft spicyapi_task_create auf, das zur Preisbestätigung anhält, danach spicyapi_task_wait.
  • Skill. npx skills add spicyapi-ai/spicy-skill installiert den Agent Skill, mit dem ein Coding-Assistent das aktuelle Modellschema liest, statt Felder zu raten.

Den konkreten Fehler beheben

Öffnen Sie erased.png neben dem Original und der Maske. Prüfen Sie zuerst, wo die Auswahl auf erhaltene Inhalte trifft, dann die Mitte der Füllung.

ErgebnisWas zu ändern ist
Der Becher ist nach einer reinen Prompt-Anfrage noch daWechseln Sie zu einer Maske über diesem Becher.
Das Kabel bleibt am RandMalen Sie seine gesamte sichtbare Länge auf einer Maske in voller Auflösung weiß.
Ein schwacher Umriss bleibt sichtbarErweitern Sie die Auswahl etwas über den Objektrand hinaus, ohne benachbarte Produktkanten abzudecken.
Der Becher ist weg, aber ein dunkles Oval bleibtNehmen Sie den Kontaktschatten des Bechers getrennt vom Schatten des Stuhls in die Maske auf.
Ein Teil des Stuhlbeins wird falsch rekonstruiertVerkleinern Sie die Maske dort, wo sie das Bein bedeckt. Verdeckt der Becher das Bein selbst, nehmen Sie ein anderes Ausgangsfoto.
Ein Differenzvergleich zeigt scheinbar das ganze Bild verändertGleichen Sie zuerst Drehung und Größe an; Kompressionsrauschen allein ist keine Bearbeitung. Prüfen Sie feste Orientierungspunkte.
Die Anfrage liefert 400Prüfen Sie, ob Prompt und Maske fehlen oder ob Felder gesendet wurden, die das Modell nicht hat, etwa strength, mask_blur oder transparent_background. Für eine abgelehnte Anfrage wird nichts berechnet.
Ein erwachsener Bildbearbeiter prüft ein gedrucktes Innenraumfoto mit transparenten Kreisen um den Becherbereich und einer dunklen Linie am Glastisch.

Illustration der Prüfung von Schatten und Spiegelungen. Sie zeigt keine abgeschlossene Entfernung.

Das Modell rekonstruiert den verdeckten Hintergrund; was wirklich hinter dem Objekt war, kann es nicht aufdecken. Akzeptieren Sie bei einem Produktfoto kein erfundenes Stuhlgelenk und keine veränderte Polsternaht, nur weil der Boden sauberer aussieht. Fotografieren Sie neu, wenn das entfernte Objekt ein Detail verdeckt, das die Produktseite korrekt zeigen muss.

SpicyAPI setzt für dieses Modell keine Sicherheitsprüfung ein; das Modell selbst entscheidet, was zurückkommt.

Bewahren Sie Original und Maske zusammen mit dem akzeptierten Ergebnis auf und fügen Sie nur für ein bestimmtes verbliebenes Objekt einen weiteren Durchgang hinzu. Auf dem Tab Examples der Modellseite sehen Sie echte Vorher-nachher-Ergebnisse.

Auch in English · 日本語 · 한국어 · Français · Español · Português (Brasil) · Русский · Italiano · Polski

Selbst ausprobieren

Sie zahlen nur für das, was Sie ausführen – ohne Tarif, ohne Abo.

Erstellt mit MiniMax H3 · ByteDance Seedance 2.0 Fast