Passer au contenu principal
Cet article présente une documentation sur l’intégration de l’API de génération d’images Flux, qui permet de générer des images officielles de Flux en entrant des paramètres personnalisés.

Processus de demande

Pour utiliser l’API, vous devez d’abord vous rendre sur la page correspondante de l’API de génération d’images Flux pour demander le service correspondant. Une fois sur la page, cliquez sur le bouton « Acquire », comme indiqué dans l’image ci-dessous : Si vous n’êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion pour vous inviter à vous inscrire et à vous connecter. Après vous être connecté ou inscrit, vous serez automatiquement renvoyé à la page actuelle. Lors de la première demande, un quota gratuit sera offert, vous permettant d’utiliser cette API gratuitement.

Utilisation de base

Tout d’abord, comprenons la méthode d’utilisation de base, qui consiste à entrer un mot-clé prompt, une action action, et une taille d’image size, pour obtenir le résultat traité. Vous devez d’abord transmettre un champ action, dont la valeur est generate, puis nous devons également entrer le mot-clé, dont le contenu est le suivant :

Nous pouvons voir ici que nous avons défini les en-têtes de la requête, y compris :
  • accept : le format de réponse souhaité, ici rempli avec application/json, c’est-à-dire au format JSON.
  • authorization : la clé d’API pour appeler l’API, que vous pouvez sélectionner directement après la demande.
De plus, nous avons défini le corps de la requête, y compris :
  • action : l’action de la tâche de génération d’images.
  • size : la taille du résultat de la génération d’images.
  • count : le nombre d’images à générer, la valeur par défaut est 1, ce paramètre n’est valide que pour les tâches de génération d’images, il est invalide pour les tâches d’édition.
  • prompt : le mot-clé.
  • model : le modèle de génération, par défaut flux-dev.
  • callback_url : l’URL pour laquelle les résultats doivent être rappelés.
Le paramètre size a certaines restrictions spéciales, principalement divisées en deux types : le rapport largeur x hauteur width x height et le rapport d’image x:y, comme suit :
ModèlePlage
flux-2-flexSupporte le rapport largeur x >= 64 doit être un multiple de 32
flux-2-proSupporte le rapport largeur x >= 64 doit être un multiple de 32
flux-2-maxSupporte le rapport largeur x >= 64 doit être un multiple de 32
flux-pro-1.1Supporte le rapport largeur 256 <= x <= 1440 doit être un multiple de 32
flux-devSupporte le rapport largeur 256 <= x <= 1440 doit être un multiple de 32
flux-pro-1.1-ultraNe supporte pas le rapport largeur supporte le rapport d’image
flux-kontext-proNe supporte pas le rapport largeur supporte le rapport d’image
flux-kontext-maxNe supporte pas le rapport largeur supporte le rapport d’image
Rapports d’image de référence : “1:1”, “16:9”, “21:9”, “3:2”, “2:3”, “4:5”, “5:4”, “3:4”, “4:3”, “9:16”, “9:21”, Après avoir fait votre choix, vous pouvez voir que le code correspondant a également été généré à droite, comme indiqué dans l’image ci-dessous :

Cliquez sur le bouton « Try » pour effectuer un test, comme indiqué ci-dessus, et nous avons obtenu le résultat suivant :
{
  "success": true,
  "task_id": "226eb763-9eab-4d06-ad57-d59753a03307",
  "trace_id": "089f8b46-0167-4f25-88ee-3c3f88d80e84",
  "data": [
    {
      "prompt": "un chat siamois blanc",
      "image_url": "https://fal.media/files/lion/NVhtlwwGYQD6HrGaEfrzu_341484fad6d84b21b73f4f8824a3f98a.png",
      "timings": 1752743801
    },
    {
      "prompt": "un chat siamois blanc",
      "image_url": "https://fal.media/files/monkey/8UEQpFbQCYVOK1wKP3aV0_9bbc26fad64049b18d0244b99ef66ad1.png",
      "timings": 1752743801
    }
  ]
}
Le résultat de retour contient plusieurs champs, décrits comme suit :
  • success, l’état de la tâche de génération de vidéo à ce moment.
  • task_id, l’ID de la tâche de génération de vidéo à ce moment.
  • trace_id, l’ID de suivi de la génération de vidéo à ce moment.
  • data, la liste des résultats de la tâche de génération d’images à ce moment.
    • image_url, le lien de la tâche de génération d’images à ce moment.
    • prompt, le mot-clé.
Nous pouvons voir que nous avons obtenu des informations d’image satisfaisantes, nous n’avons qu’à récupérer l’image générée de Flux à partir de l’adresse du lien d’image dans data. De plus, si vous souhaitez générer le code d’intégration correspondant, vous pouvez le copier directement, par exemple, le code CURL est le suivant :
curl -X POST 'https://api.acedata.cloud/flux/images' \
-H 'authorization: Bearer {token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "prompt": "un chat siamois blanc",
  "model": "flux-kontext-pro",
  "count": 2
}'

Tâche d’édition d’image

Si vous souhaitez éditer une image, le paramètre image_url doit d’abord être passé avec le lien de l’image à éditer, à ce moment-là, action ne prend en charge que edit, vous pouvez spécifier le contenu suivant :
  • model : le modèle utilisé pour cette tâche d’édition d’image, cette tâche prend actuellement en charge flux-kontext-max, flux-kontext-pro.
  • image_url : le lien de l’image à éditer.
Un exemple de remplissage est le suivant :

Après avoir rempli, le code suivant a été généré automatiquement :

Le code correspondant :
import requests

url = "https://api.acedata.cloud/flux/images"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "edit",
    "prompt": "un chat siamois blanc",
    "model": "flux-kontext-pro",
    "image_url": "https://cdn.acedata.cloud/ytj2qy.png"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
En cliquant sur exécuter, vous pouvez constater que vous obtiendrez immédiatement un résultat, comme suit :
{
  "success": true,
  "task_id": "2a7979ff-1f77-4380-92c6-a2dc37c3b4c8",
  "trace_id": "732b65c0-48d9-49f7-b568-64e5acffe4c0",
  "data": [
    {
      "prompt": "un chat siamois blanc",
      "image_url": "https://fal.media/files/monkey/aEUXJZ6Faj9YXUCQVs01Q_af0cea56c558441c9ba8df67b200812d.png",
      "timings": 1752744073
    }
  ]
}
Nous pouvons voir que l’effet généré est l’effet d’édition de l’image d’origine, le résultat est similaire à celui mentionné ci-dessus.

Rappel asynchrone

En raison du temps relativement long de génération de l’API Flux Images Generation, qui prend environ 1 à 2 minutes, si l’API ne répond pas pendant une longue période, la requête HTTP maintiendra la connexion, entraînant une consommation supplémentaire de ressources système. C’est pourquoi cette API propose également un support de rappel asynchrone. Le processus global est le suivant : lorsque le client initie une requête, il spécifie un champ callback_url supplémentaire. Après que le client a lancé la requête API, l’API renverra immédiatement un résultat contenant un champ d’information task_id, représentant l’ID de la tâche actuelle. Lorsque la tâche est terminée, le résultat de l’image générée sera envoyé au callback_url spécifié par le client sous forme de POST JSON, incluant également le champ task_id, permettant ainsi d’associer le résultat de la tâche par ID. Voyons maintenant un exemple pour comprendre comment procéder concrètement. Tout d’abord, le rappel Webhook est un service capable de recevoir des requêtes HTTP, les développeurs doivent le remplacer par l’URL de leur propre serveur HTTP. Ici, pour des raisons de démonstration, nous utilisons un site Web de Webhook public https://webhook.site/, en ouvrant ce site, vous obtiendrez une URL Webhook, comme illustré ci-dessous : Copiez cette URL, elle peut être utilisée comme Webhook, l’exemple ici est https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab. Ensuite, nous pouvons définir le champ callback_url sur l’URL Webhook ci-dessus, tout en remplissant les paramètres correspondants, le contenu spécifique est illustré ci-dessous :

En cliquant sur exécuter, vous constaterez que vous obtiendrez immédiatement un résultat, comme suit :
{
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c"
}
Après un moment, nous pouvons observer le résultat de l’image générée sur https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab, comme illustré ci-dessous : Le contenu est le suivant :
{
  "success": true,
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c",
  "trace_id": "9b4b1ff3-90f2-470f-b082-1061ec2948cc",
  "data": [
    {
      "prompt": "un chat siamois blanc",
      "image_url": "https://sf-maas-uat-prod.oss-cn-shanghai.aliyuncs.com/outputs/f4f8d407-377a-408a-82d0-427a5a836f09_0.png",
      "seed": 1698551532,
      "timings": {
        "inference": 3.328
      }
    }
  ]
}
On peut voir qu’il y a un champ task_id dans le résultat, les autres champs sont similaires à ceux mentionnés ci-dessus, et ce champ permet d’associer la tâche.

Gestion des erreurs

Lors de l’appel de l’API, si une erreur se produit, l’API renverra le code d’erreur et les informations correspondantes. Par exemple :
  • 400 token_mismatched : Mauvaise requête, probablement en raison de paramètres manquants ou invalides.
  • 400 api_not_implemented : Mauvaise requête, probablement en raison de paramètres manquants ou invalides.
  • 401 invalid_token : Non autorisé, jeton d’autorisation invalide ou manquant.
  • 429 too_many_requests : Trop de requêtes, vous avez dépassé la limite de taux.
  • 500 api_error : Erreur interne du serveur, quelque chose s’est mal passé sur le serveur.

Exemple de réponse d’erreur

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "échec de la récupération"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusion

Grâce à ce document, vous avez compris comment utiliser l’API Flux Images Generation pour générer des images en entrant des mots-clés. Nous espérons que ce document vous aidera à mieux intégrer et utiliser cette API. Si vous avez des questions, n’hésitez pas à contacter notre équipe de support technique.