HiAPI
Blog

Tutorial

Wie verwendet man die FLUX.1 Fill Pro API? In 5 Minuten zur ersten Masken-Inpainting-Ausführung

Vier harte Anforderungen an die Maske, 4 Schritte zum Online-Test, 4 Schritte zur API-Anbindung, inklusive direkt ausführbarem curl und Python.

Oct 28, 2026
Wie verwendet man die FLUX.1 Fill Pro API? In 5 Minuten zur ersten Masken-Inpainting-Ausführung

TL;DR

  • Was es ist: Ein Masken-Inpainting-Modell von Black Forest Labs. Originalbild, gleich große Schwarz-Weiß-Maske und Prompt hochladen, nur die weißen Bereiche werden neu gezeichnet, die schwarzen Bereiche bleiben unverändert. Bereits auf HiAPI verfügbar, Modellseite öffnen und ausprobieren, neue Nutzer erhalten bei Registrierung 200 Credits gratis.
  • Was es kostet: $0,0715 pro Bild (143 Credits), Abrechnung nur bei erfolgreich erzeugtem Bild, steps, guidance, seed und Ausgabeformat kosten keinen Aufpreis, bei Fehlschlag wird die Vorabbuchung erstattet. $10 entsprechen ca. 139 Bildern.
  • Schnellster Aufruf: POST https://api.hiapi.ai/v1/tasks, model auf flux-1-fill-pro setzen, in input die drei Felder image, mask und prompt ablegen, nach Erhalt der taskId pollen oder auf Callback warten und data.output[0].url herunterladen.

Die größte Stolperfalle beim Masken-Inpainting sind nicht die Parameter, sondern die Materialien: Die Maske muss dieselbe Größe wie das Originalbild haben, und Weiß darf nur die zu ändernden Stellen abdecken. Im Folgenden werden zuerst diese beiden Punkte geklärt, dann folgt die erste Ausführung.

Was ist FLUX.1 Fill Pro?

Es ist ein Bearbeitungsmodell, das „nur den von dir markierten Bereich ändert“. Der Änderungsbereich wird durch die Maske bestimmt, nicht durch den Text, daher bleiben umliegende Möbel, Schatten und Horizont unverändert.

Die Maske deckt nur den kleinen Wandbereich hinter der Wanduhr ab, die Ausgabe ist 1440 × 810. Wandteppich links, Flechteller, Bison-Schädel, Pflanzen, Sofa und Licht wurden nicht neu gezeichnet.

  • Drei Eingaben. Originalbild (JPEG / PNG / GIF / WebP), gleich große Schwarz-Weiß-Maske, Prompt (maximal 4.000 Zeichen).
  • Kontrollierbare Grenzen. Weiß wird neu gezeichnet, Schwarz bleibt erhalten, die Änderung endet an der Maskenkante, ideal für Produktretusche, Hintergrundaustausch, Farbwechsel von Kleidung und ähnliche Aufgaben, bei denen „nur eine Stelle“ geändert werden soll.
  • Ausgabe folgt dem Originalbild. Kein Seitenverhältnis-Parameter, das Verhältnis wird vom Originalbild übernommen; ein Originalbild mit 1600 × 900 ergibt 1440 × 810, angepasst auf ein Vielfaches von 32.
  • Parameter ausreichend, nicht kompliziert. steps 15–50, Standard 50, guidance 1,5–100, Standard 60, optional seed und Ausgabe als jpg / png.
A large framed abstract painting in warm terracotta, sand and cream tones, hanging on the wall, with a thin dark wood frame; keep the room, sofa, furniture and lighting unchanged.

Mit diesem Prompt generieren → Der Link füllt nur den Prompt vor: Das Originalbild-Feld ist leer, im Masken-Feld liegt standardmäßig eine Beispielmaske. Ersetze sie durch dein eigenes Originalbild und eine gleich große Maske und klicke dann auf Ausführen.

Wie bereitet man die Maske vor?

Vier Punkte, in dieser Reihenfolge:

  1. Nur zwei Werte, Schwarz und Weiß. Weiß ist der neu zu zeichnende Bereich, Schwarz der zu erhaltende Bereich. Graue Kanten lassen die Grenzen verschwimmen, strebe möglichst harte Kanten an.
  2. Größe exakt wie das Originalbild. Ein Originalbild mit 1600 × 900 braucht eine Maske mit 1600 × 900. Nicht per Screenshot skalieren, sondern die Maske direkt aus derselben Datei exportieren; passen Breite und Höhe nicht, schlägt die Aufgabe fehl.
  3. Weißer Bereich eng am Ziel. Sobald das zu ändernde Objekt abgedeckt ist, aufhören; keine umliegenden Möbel, Arbeitsflächen oder Schatten mit einbeziehen.
  4. PNG in der Auflösung des Originalbilds exportieren. PNG hat keine Komprimierungsartefakte, die Kanten sind am saubersten; Maske und Originalbild an öffentlich erreichbaren Adressen ablegen, die Schnittstelle nimmt URLs entgegen, keinen Datei-Upload.

Schwarz bleibt erhalten, Weiß wird neu gezeichnet. Diese Maske mit 1600 × 900 hat nur an der Position der Wanduhr ein weißes Rechteck, daher wird nur dieser Wandbereich neu gezeichnet.

Online testen: In 4 Schritten zum ersten Bild

Auf der Modellseite lässt sich keine Maske zeichnen; die Maske muss in deinem eigenen Tool erstellt und dann hochgeladen werden.

  1. Öffne die FLUX.1 Fill Pro-Modellseite, registriere dich oder melde dich an, neue Konten erhalten 200 Credits.
  2. Lade das Originalbild hoch, dann die gleich große Schwarz-Weiß-Maske.
  3. Füge den Prompt ein, beschreibe nur, was im weißen Bereich erscheinen soll, und lege klar fest, was erhalten bleiben muss.
  4. Klicke auf Ausführen. Standard sind steps 50, guidance 60 und jpg-Ausgabe; erst zum Laufen bringen, dann Parameter anpassen.

Beim Klick auf „Mit diesem Prompt generieren“ wird der Prompt automatisch eingefüllt. Das Originalbild-Feld ist leer, im Masken-Feld liegt standardmäßig eine Beispielmaske; ersetze sie durch deine eigene Maske und führe dann aus.

API-Anbindung: 4 Schritte

  1. Erstelle in der Konsole einen API Key (sk-...).
  2. POST /v1/tasks erstellt die Aufgabe, in input image, mask und prompt mitgeben.
  3. Mit GET /v1/tasks/{taskId} abfragen oder in der Anfrage callback.url hinzufügen und auf die Benachrichtigung warten.
  4. Sobald data.status zu success wird, das Bild von data.output[0].url herunterladen und sofort im eigenen Speicher ablegen.

Die vollständige Feldtabelle, Fehlercodes und Parameterbeschreibungen findest du in der chinesischen Dokumentation.

Erstes Masken-Inpainting: curl-Version

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-1-fill-pro",
    "input": {
      "image": "https://static.hiapi.ai/model-onboarding/flux-1-fill-pro/prod-migrate/2026/10/21/1792572565867-4e5072a121d7018f-1792418738578-4e5072a121d7018f-source.jpg",
      "mask": "https://static.hiapi.ai/model-onboarding/flux-1-fill-pro/prod-migrate/2026/10/21/1792572569695-82bb18075f29c864-1792418739459-82bb18075f29c864-mask.png",
      "prompt": "A large framed abstract painting in warm terracotta, sand and cream tones, hanging on the wall, with a thin dark wood frame; keep the room, sofa, furniture and lighting unchanged.",
      "steps": 50,
      "guidance": 60,
      "output_format": "png"
    }
  }'

Die zurückgegebene Aufgaben-ID steht in data.taskId:

{"code":200,"data":{"taskId":"tk-hiapi-..."},"message":"success"}

Ergebnis abfragen:

curl -s https://api.hiapi.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer sk-YOUR_KEY"

Die beiden obigen Bilder sind die 1:1-Vergleichsmaterialien: ein Originalbild mit 1600 × 900 und eine gleich große Maske; direkt ausführen und man erhält das Wandbild-Ergebnis aus dem ersten Bild dieses Artikels.

Erstes Masken-Inpainting: Python-Version

Erstellen, Pollen und Herunterladen in einem Durchgang, eigenen Key einsetzen und loslegen:

import requests, time

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": "Bearer sk-YOUR_KEY"}

payload = {
    "model": "flux-1-fill-pro",
    "input": {
        "image": "https://static.hiapi.ai/model-onboarding/flux-1-fill-pro/prod-migrate/2026/10/21/1792572565867-4e5072a121d7018f-1792418738578-4e5072a121d7018f-source.jpg",
        "mask": "https://static.hiapi.ai/model-onboarding/flux-1-fill-pro/prod-migrate/2026/10/21/1792572569695-82bb18075f29c864-1792418739459-82bb18075f29c864-mask.png",
        "prompt": "A large framed abstract painting in warm terracotta, sand and cream tones, hanging on the wall, with a thin dark wood frame; keep the room, sofa, furniture and lighting unchanged.",
        "steps": 50,
        "guidance": 60,
        "output_format": "png",
    },
}

resp = requests.post(API, headers=HEADERS, json=payload, timeout=30)
task_id = resp.json()["data"]["taskId"]

while True:
    status = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
    if status["status"] in ("success", "fail"):
        break
    time.sleep(3)

if status["status"] == "success":
    image_url = status["output"][0]["url"]
    with open("fill-pro-edit.png", "wb") as f:
        f.write(requests.get(image_url, timeout=60).content)
else:
    print(status.get("error"))

Wie stellt man die Parameter ein?

Pro Durchlauf nur eine Sache ändern, damit man bei Unterschieden erkennt, welcher Parameter gewirkt hat.

  • steps (15–50, Standard 50): Je höher der Wert, desto feiner die Details; der Standardwert eignet sich bereits für die Ausgabe, nur bei Zeitdruck nach unten anpassen.
  • guidance (1,5–100, Standard 60): Je höher der Wert, desto näher am Prompt. Bei abweichendem Stil zuerst erhöhen, bei steifem Bild wieder zurücknehmen.
  • seed: Nach der Finalisierung einen Wert fixieren, damit gleiches Bild, gleiche Maske und gleicher Prompt zu ähnlichen Ergebnissen führen, praktisch für Rückschritte und einheitliche Chargen.
  • output_format: Standard jpg; wenn maximale Details erhalten bleiben sollen oder später weiterverarbeitet wird, png angeben.
  • prompt_upsampling: Standard false. Bei Aktivierung wird der Prompt automatisch umgeschrieben; wer die Formulierung vollständig kontrollieren will, lässt es aus.

Vor dem Go-live auf diese 4 Punkte achten

  1. Auf der Seite lässt sich keine Maske zeichnen. Modellseite und API nehmen nur fertige Maskenbilder entgegen, und die Größe muss mit dem Originalbild übereinstimmen. Die Maske in Photoshop, Figma oder einem Segmentierungstool erstellen und dann hochladen; auf der Seite lässt sich nur hochladen, nicht malen.
  2. Serverseitig Callback verwenden. Im Request-Body "callback": {"url": "https://yourapp.com/webhook", "when": "final"} hinzufügen, die Benachrichtigung erfolgt automatisch am Ende der Aufgabe und ist bequemer als Polling; Polling als Fallback beibehalten.
  3. Bei Timeout kein wiederholtes POST. Jedes POST /v1/tasks erstellt eine neue Aufgabe und wird separat abgerechnet. Zuerst taskId speichern, bei einem Retry dieselbe Aufgabe zur Abfrage wiederverwenden.
  4. Ausgabe-URLs laufen ab. Nach Erhalt des Ergebnisses sofort herunterladen und als Datei speichern, die URL nicht als dauerhafte Adresse behandeln; außerdem folgt das Ausgabeverhältnis dem Originalbild, es gibt keinen Seitenverhältnis-Parameter, für feste Platzierungen selbst entsprechend zuschneiden.

Häufige Fragen

Geht es ohne Maske? Nein. image, mask und prompt sind alle Pflichtfelder, die Maske muss ein Schwarz-Weiß-Bild in derselben Größe wie das Originalbild sein.

Wie lang sollte der Prompt sein? Maximal 4.000 Zeichen, aber so kurz wie nötig: ein Satz dazu, was im weißen Bereich erscheinen soll, ein Satz dazu, was erhalten bleiben muss. Je konkreter die Detailbeschreibung, desto stabiler das Ergebnis.

Ist die Ausgabegröße identisch mit dem Originalbild? Das Verhältnis ist gleich, die Pixel werden auf ein Vielfaches von 32 angepasst. Ein Originalbild mit 1600 × 900 ergibt 1440 × 810; zum Zurücklegen auf das Originalbild zuerst die Größen vereinheitlichen.

Kostet eine fehlgeschlagene Generierung Geld? Nein. Der vorab gebuchte Betrag fehlgeschlagener Aufgaben wird automatisch vollständig erstattet.

Jetzt das erste Bild erzeugen

Die beiden Vergleichsmaterialien oben (Originalbild + Maske) eignen sich direkt zum Üben: den Request-Body aus dem curl kopieren, eigenen API Key einsetzen und einmal ausführen, oder Modellseite öffnen, diese beiden Bilder hochladen, der Prompt ist bereits eingefüllt, und nach dem Klick auf Ausführen erhält man dasselbe Ergebnis. Dieses Bild kostet $0,0715, die 200 Credits aus der Registrierung reichen für ein Bild.

Artikel aus der FLUX.1 Fill Pro-Reihe

Ähnliche Artikel

Alle Artikel ansehen →

Starte mit persistenten KI-Artefakten

Hol dir deinen API-Key und rufe Bild-, Video- und Audiomodelle über eine einzige task-basierte API auf.

API-Dokumentation lesen