Passer au contenu principal
Cet article présentera une documentation sur l’intégration de l’API Midjourney Edits, qui permet d’éditer des images entrantes en générant des résultats à partir de mots-clés.

Processus de demande

Pour utiliser l’API, vous devez d’abord vous rendre sur la page correspondante de Midjourney Edits API pour demander le service correspondant. Une fois sur la page, cliquez sur le bouton « Acquire », comme illustré 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, comprenez la méthode d’utilisation de base, qui consiste à entrer un mot-clé prompt, une action action, et une image de référence image_url, pour obtenir le résultat traité. Vous devez d’abord transmettre un champ action, dont la valeur est generate, le contenu spécifique est le suivant :

Ici, nous avons configuré les en-têtes de 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 configuré le corps de la requête, y compris :
  • mask : peut spécifier la position du masque de la zone d’image à éditer et à régénérer.
  • split_images : divise l’image générée en plusieurs images, renvoyées via le champ sub_image_urls. Par défaut, c’est false.
  • action : le comportement de la tâche de génération d’image, par défaut generate.
  • image_url : le lien de l’image à éditer.
  • prompt : le mot-clé.
  • mode : le mode de génération, options fast/relax/turbo.
  • callback_url : l’URL pour recevoir les résultats.
Après avoir fait votre sélection, vous pouvez voir que le code correspondant a également été généré à droite, comme illustré ci-dessous :

Cliquez sur le bouton « Try » pour effectuer un test, comme montré ci-dessus, et nous avons obtenu le résultat suivant :
{
  "sub_image_urls": [
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_0.png",
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_1.png",
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_2.png",
    "https://cdn.midjourney.com/88e16dab-ef48-43a5-af73-bf24065287bc/0_3.png"
  ],
  "image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391371957878132849/cat_sitting_table_88e16dab-ef48-43a5-af73-bf24065287bc.png?ex=686ba79d&is=686a561d&hm=ad005d06f6673d6152456e04c3cbec39d062bd9df10448623fae27ddaf8b8a80&",
  "image_width": 960,
  "image_height": 1200,
  "raw_image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391371957878132849/cat_sitting_table_88e16dab-ef48-43a5-af73-bf24065287bc.png?ex=686ba79d&is=686a561d&hm=ad005d06f6673d6152456e04c3cbec39d062bd9df10448623fae27ddaf8b8a80&",
  "raw_image_width": 960,
  "raw_image_height": 1200,
  "progress": 100,
  "image_id": "1391372193836826624",
  "task_id": "26c39859-f54a-4998-9e42-3da96eceee8c",
  "success": true
}
Le résultat de retour contient plusieurs champs, décrits comme suit :
  • success, l’état de la tâche de génération d’image à ce moment.
  • task_id, l’ID de la tâche de génération d’image à ce moment.
  • image_id, l’ID de l’image de cette tâche d’édition d’image.
  • sub_image_urls, plusieurs résultats d’images de la tâche de génération d’image.
  • image_url, le lien de l’image générée.
  • image_width, la largeur de l’image générée.
  • image_height, la hauteur de l’image générée.
  • progress, le champ de progression de la tâche de génération d’image à ce moment.
Nous pouvons voir que nous avons obtenu des informations d’image satisfaisantes, et nous n’avons qu’à récupérer l’image générée via l’adresse du lien image_url dans le résultat. 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/midjourney/edits' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "prompt": "A cat sitting on a table",
  "split_images": true,
  "image_url": "https://cdn.acedata.cloud/jgo1cw.jpg",
  "action": "generate"
}'

Rappel asynchrone

Étant donné que le temps de génération de l’API Midjourney Edits est relativement long, environ 1 à 2 minutes, si l’API ne répond pas pendant longtemps, la requête HTTP maintiendra la connexion, entraînant une consommation supplémentaire de ressources système. Ainsi, cette API propose également un support de rappel asynchrone. Le processus global est le suivant : lorsque le client initie une demande, il spécifie également un champ callback_url. Après que le client ait lancé la demande API, l’API renverra immédiatement un résultat contenant un champ task_id, représentant l’ID de la tâche actuelle. Lorsque la tâche est terminée, le résultat de la génération sera envoyé au callback_url spécifié par le client sous forme de POST JSON, incluant également le champ task_id, permettant ainsi de relier le résultat de la tâche par ID. Voyons comment procéder avec un exemple. Tout d’abord, le rappel Webhook est un service capable de recevoir des requêtes HTTP, et le développeur doit le remplacer par l’URL de son propre serveur HTTP. Pour des raisons de démonstration, nous utiliserons un site Web de modèle Webhook public https://webhook.site/, en ouvrant ce site, vous obtiendrez une URL Webhook, comme illustré ci-dessous : Copiez cette URL, qui peut être utilisée comme Webhook, l’exemple ici est https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f. 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 :

Cliquez sur Exécuter, et vous verrez immédiatement un résultat, comme suit :
{
  "task_id": "b8b7fdc2-628e-40dd-bc0c-671c3ddac9e9"
}
Après un moment, vous pourrez observer le résultat de la génération vidéo sur https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f, comme illustré ci-dessous :

Le contenu est le suivant :
{
    "sub_image_urls": [
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_0.png",
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_1.png",
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_2.png",
        "https://cdn.midjourney.com/f3638ed2-60f6-49dd-897a-6d68c15afb17/0_3.png"
    ],
    "image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391374307719905340/cat_sitting_table_f3638ed2-60f6-49dd-897a-6d68c15afb17.png?ex=686ba9cd&is=686a584d&hm=71543c21c38db8a50c7ebcf54bc5208ec349e8592ec9e332f778f74167000ced&",
    "image_width": 960,
    "image_height": 1200,
    "raw_image_url": "https://storage.fonedis.cc/attachments/1372468820912115716/1391374307719905340/cat_sitting_table_f3638ed2-60f6-49dd-897a-6d68c15afb17.png?ex=686ba9cd&is=686a584d&hm=71543c21c38db8a50c7ebcf54bc5208ec349e8592ec9e332f778f74167000ced&",
    "raw_image_width": 960,
    "raw_image_height": 1200,
    "progress": 100,
    "image_id": "1391374390892953600",
    "task_id": "b8b7fdc2-628e-40dd-bc0c-671c3ddac9e9",
    "success": true
}
On peut voir qu’il y a un champ task_id dans le résultat, les autres champs étant similaires à ceux mentionnés précédemment, ce champ permet d’associer les tâches.

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 Midjourney Edits pour éditer des images en fonction des mots-clés d’entrée. 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.