HiAPI
Blog

Tutoriel

Comment utiliser l'API FLUX.1 Fill Pro ? Réalisez votre premier inpainting par masque en 5 minutes

Les quatre exigences strictes du masque, 4 étapes d'essai en ligne, 4 étapes d'intégration API, avec curl et Python prêts à exécuter.

Oct 28, 2026
Comment utiliser l'API FLUX.1 Fill Pro ? Réalisez votre premier inpainting par masque en 5 minutes

TL;DR

  • C'est quoi : le modèle d'inpainting local par masque de Black Forest Labs. Téléchargez l'image originale, un masque noir et blanc de même taille et un prompt, seule la zone blanche est repeinte, la zone noire est conservée telle quelle. Déjà disponible sur HiAPI, ouvrez la page du modèle pour l'essayer, 200 crédits offerts à l'inscription.
  • Combien ça coûte : 0,0715 $ par image (143 crédits), facturé par génération réussie, steps, guidance, seed et format de sortie sans surcoût, remboursement en cas d'échec. Environ 139 images pour 10 $.
  • Appel le plus rapide : POST https://api.hiapi.ai/v1/tasks, model = flux-1-fill-pro, dans input placez les champs image, mask, prompt, récupérez taskId puis interrogez ou attendez le callback, téléchargez data.output[0].url.

Le piège le plus fréquent avec l'inpainting par masque n'est pas les paramètres, mais les assets : le masque doit être de même taille que l'image originale, et le blanc ne doit couvrir que la zone à modifier. Voici d'abord ces deux points, puis passons à la première exécution.

Qu'est-ce que FLUX.1 Fill Pro ?

C'est un modèle d'édition qui « ne modifie que la zone que vous délimitez ». L'étendue des modifications est déterminée par le masque, pas par le texte, donc les meubles, ombres et lignes d'horizon adjacents ne changent pas.

Le masque ne couvre qu'un petit morceau de mur autour de l'horloge, sortie 1440 × 810. La tapisserie de gauche, les disques tissés, le crâne de bison, les plantes vertes, le canapé et la lumière n'ont pas été repeints.

  • Trois entrées. Image originale (JPEG / PNG / GIF / WebP), masque noir et blanc de même taille, prompt (4 000 caractères max).
  • Frontières contrôlables. Blanc = repeint, noir = conservé, les modifications s'arrêtent au bord du masque, idéal pour la retouche produit, le remplacement d'arrière-plan, le changement de couleur de vêtement — des tâches « qui ne touchent qu'un endroit ».
  • Sortie alignée sur l'original. Pas de paramètre de format, le ratio suit l'image originale ; une image 1600 × 900 renvoie 1440 × 810, ajusté sur un multiple de 32.
  • Paramètres simples et suffisants. steps 15–50, défaut 50, guidance 1,5–100, défaut 60, seed optionnel et sortie 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.

Générer avec ce prompt → le lien ne préremplit que le prompt : l'emplacement de l'image originale est vide, l'emplacement du masque contient le masque d'exemple par défaut. Remplacez par votre propre image originale et un masque de même taille, puis cliquez sur Exécuter.

Comment préparer le masque ?

Quatre points essentiels, dans cet ordre :

  1. Uniquement deux valeurs, noir et blanc. Le blanc est la zone à repeindre, le noir la zone à conserver. Les bords gris rendent la frontière floue, essayez d'obtenir des bords nets.
  2. Taille strictement identique à l'original. Une image 1600 × 900 avec un masque 1600 × 900. Ne faites pas de capture d'écran puis de redimensionnement, exportez le masque directement depuis le même fichier, une différence de dimensions fera échouer la tâche.
  3. La zone blanche colle à la cible. Arrêtez-vous une fois l'objet à modifier couvert, n'incluez pas les meubles, plans de travail ou ombres adjacents.
  4. Exportez en PNG à la résolution de l'original. Le PNG n'a pas de bruit de compression, les bords sont les plus propres ; placez le masque et l'image originale à une adresse accessible publiquement, l'API reçoit des URL, pas des uploads de fichiers.

Noir = conservé, blanc = repeint. Ce masque 1600 × 900 ne laisse qu'un rectangle blanc à l'emplacement de l'horloge, donc seul ce pan de mur sera repeint.

Essai en ligne : 4 étapes pour la première image

La page du modèle ne permet pas de dessiner un masque, préparez-le dans votre propre outil puis téléchargez-le.

  1. Ouvrez la page du modèle FLUX.1 Fill Pro, inscrivez-vous ou connectez-vous, les nouveaux comptes reçoivent 200 crédits.
  2. Téléchargez l'image originale, puis un masque noir et blanc de même taille.
  3. Collez le prompt, décrivez uniquement ce qui doit apparaître dans la zone blanche, et précisez ce qui doit être conservé.
  4. Cliquez sur Exécuter. Par défaut steps 50, guidance 60, sortie jpg, faites d'abord fonctionner puis ajustez les paramètres.

En cliquant sur « Générer avec ce prompt », le prompt est prérempli automatiquement. L'emplacement de l'image originale est vide, celui du masque contient le masque d'exemple par défaut, remplacez-le par le vôtre avant d'exécuter.

Intégration API : 4 étapes

  1. Créez une clé API dans la console (sk-...).
  2. POST /v1/tasks pour créer une tâche, avec image, mask, prompt dans input.
  3. Interrogez avec GET /v1/tasks/{taskId}, ou ajoutez callback.url dans la requête pour attendre la notification.
  4. Une fois data.status passé à success, téléchargez l'image depuis data.output[0].url et stockez-la immédiatement dans votre propre stockage.

Le tableau complet des champs, les codes d'erreur et la description des paramètres sont dans la documentation en chinois.

Premier inpainting par masque : version curl

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"
    }
  }'

L'ID de tâche retourné se trouve dans data.taskId :

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

Interroger le résultat :

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

Les deux images ci-dessus sont les assets de référence au format 1:1 : image originale 1600 × 900 et masque de même taille, exécutez-les directement pour obtenir l'effet de tableau suspendu de la première image de cet article.

Premier inpainting par masque : version Python

Création, interrogation, téléchargement en une seule fois, remplacez par votre propre clé et exécutez :

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"))

Comment ajuster les paramètres ?

Ne modifiez qu'un paramètre à la fois, pour identifier lequel a fait la différence.

  • steps (15–50, défaut 50) : plus la valeur est élevée, plus les détails sont fins, la valeur par défaut convient déjà à la production, ne baissez que pour gagner en vitesse.
  • guidance (1,5–100, défaut 60) : plus la valeur est élevée, plus le résultat colle au prompt. Si le style dérive, augmentez ; si l'image devient rigide, diminuez.
  • seed : fixez une valeur après validation, même image, même masque, même prompt permettent de retrouver un résultat proche, pratique pour les retours en arrière et l'uniformisation par lot.
  • output_format : jpg par défaut ; pour conserver un maximum de détails ou retraiter ensuite, utilisez png.
  • prompt_upsampling : false par défaut. Activé, il réécrit automatiquement votre prompt ; pour contrôler totalement la formulation, laissez-le désactivé.

4 points à surveiller avant la mise en production

  1. Impossible de dessiner le masque sur la page. La page du modèle et l'API n'acceptent que des masques déjà prêts, et la taille doit correspondre à l'original. Préparez le masque dans Photoshop, Figma ou un outil de segmentation ; sur la page, on ne peut que télécharger, pas dessiner.
  2. Utilisez un callback côté serveur. Ajoutez "callback": {"url": "https://yourapp.com/webhook", "when": "final"} dans le corps de la requête, la notification est automatique à la fin de la tâche, plus simple que l'interrogation ; gardez l'interrogation en secours.
  3. En cas de timeout, ne répétez pas le POST. Chaque POST /v1/tasks crée une nouvelle tâche et facture séparément. Conservez d'abord le taskId, réutilisez la même tâche pour vérifier lors d'une nouvelle tentative.
  4. L'URL de sortie expire. Téléchargez et stockez immédiatement le résultat, ne traitez pas l'URL comme une adresse permanente ; de plus, le ratio de sortie suit l'image originale et il n'y a pas de paramètre de format, pour un format fixe, recadrez vous-même selon le ratio.

Questions fréquentes

Peut-on l'utiliser sans masque ? Non. image, mask et prompt sont tous obligatoires, le masque doit être une image noir et blanc de même taille que l'original.

Quelle longueur pour le prompt ? 4 000 caractères max, mais restez concis : une phrase pour ce qui doit apparaître dans la zone blanche, une phrase pour ce qui doit être conservé. Plus la description des détails est précise, plus le résultat est stable.

La taille de sortie est-elle identique à l'original ? Le ratio est identique, les pixels sont ajustés sur un multiple de 32. Une image 1600 × 900 renvoie 1440 × 810, pour la superposer à l'original, uniformisez d'abord les dimensions.

Une génération échouée est-elle facturée ? Non. Le montant prélevé pour une tâche échouée est automatiquement remboursé intégralement.

Générez votre première image maintenant

Les deux assets de référence ci-dessus (image originale + masque) peuvent servir directement d'exercice : copiez le corps de la requête curl, remplacez par votre clé API et exécutez, ou ouvrez la page du modèle, téléchargez ces deux images, le prompt est déjà rempli, cliquez sur Exécuter pour obtenir le même résultat. Cette image coûte 0,0715 $, les 200 crédits offerts à l'inscription suffisent pour une image.

Série d'articles FLUX.1 Fill Pro

Articles similaires

Voir tous les articles →

Commencez avec des artefacts IA persistants

Obtenez votre clé API et appelez des modèles d'image, de vidéo et d'audio via une API unique basée sur les tasks.

Lire la documentation de l'API