Aller au contenu principal
LocoPal AiLocoPal Ai
Intégration APIModèles et interfaces de génération

Guide

Interface de génération d'images

Paramètres de requête de génération d'images, limites de taille et conventions de réponse

Voir le Markdown

Interface de génération d'images

Pour les conventions communes (adresse de base, authentification, structure de réponse, limitation de débit), voir Authentification et conventions de base.

Créer une image

POST/v1/images/generations

Méthode d'authentification

Authorization: Bearer <API_KEY>, avec la clé API de plateforme créée dans la page « Clés API » de la console.

Corps de requête · application/json

Prop

Type

Les modèles d'image ont des restrictions différentes en matière de taille, de quantité et de format de retour ; vérifiez d'abord avec /v1/models et fiez-vous aux erreurs de validation de paramètres renvoyées par l'interface.

Exemple de requête

Vérifiez d'abord avec /v1/models l'ID du modèle d'image disponible pour la clé actuelle, puis remplacez model par celui-ci. size doit correspondre à un palier pris en charge par ce modèle — le nombre minimal de pixels varie fortement d'un modèle à l'autre ; une valeur incorrecte renvoie directement une erreur de paramètre, sans dégradation silencieuse.

La réponse peut être sous forme d'URL ou sous forme Base64, selon le modèle et le canal.

Requête

curl -X POST "https://locopalai.com/v1/images/generations" \
  -H "Authorization: Bearer $LOCOPAL_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "model": "从 /v1/models 选择的图片模型 ID",
  "prompt": "白色桌面上的一个红苹果,柔和自然光,产品摄影",
  "size": "当前模型支持的尺寸",
  "n": 1
}
JSON

Paramètres de réponse

ParamètreTypeDescription
createdintegerHeure de génération (secondes Unix)
modelstringCertains modèles renvoient l'ID du modèle réellement exécuté
dataarrayListe des résultats générés
data[].urlstringAdresse de l'image ; présente lorsque le retour est au format URL, il peut s'agir d'une adresse signée temporaire
data[].b64_jsonstringDonnées d'image Base64 ; présentes lorsque le retour est au format Base64
data[].sizestringCertains modèles renvoient la taille réellement générée
sizestringTaille réellement générée renvoyée au niveau racine, par exemple 1024x1024, 1376x768
qualitystringNiveau de qualité réel renvoyé au niveau racine, par exemple auto, low
output_formatstringFormat de sortie réel renvoyé au niveau racine, par exemple png
backgroundstringMode de traitement de l'arrière-plan renvoyé au niveau racine, par exemple auto, opaque
moderationstringNiveau de modération du contenu renvoyé au niveau racine, pour certains modèles
usageobjectUsage de l'image ; l'édition d'image compte en plus les tokens de l'image d'entrée

Une requête peut ne renvoyer que url ou que b64_json, selon le modèle et le canal ; fiez-vous aux champs réellement renvoyés, et si les deux sont présents, privilégiez url.

Corps de réponse

Retour d'une adresse (format url) :

{
  "created": 1789567052,
  "data": [
    {
      "size": "2048x2048",
      "url": "https://media.example.com/image-public-id.jpeg"
    }
  ],
  "model": "Doubao-Seedream-4.5"
}

Retour en Base64 (format b64_json, extrait) :

{
  "background": "auto",
  "created": 1789071752,
  "data": [
    { "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zU..." }
  ]
}

Une adresse renvoyée au format url peut être une adresse signée temporaire ; copiez-la ou enregistrez-la rapidement. Pour le format b64_json, décodez et stockez les données vous-même. Ne supposez pas que tous les modèles d'image acceptent response_format ou les mêmes tailles. Testé : gpt-image-1-mini refuse response_format, et Doubao-Seedream-4.5 exige actuellement au moins 3686400 pixels, 2048x2048 étant accepté tandis que 1024x1024 renvoie une erreur de paramètre.

Réponse d'erreur

{
  "error": {
    "message": "当前图片模型不支持请求的尺寸",
    "type": "invalid_request_error",
    "code": "invalid_parameter",
    "param": "size"
  }
}
HTTPRéponse / CauseTraitement
400Model name not specified, model name cannot be emptyLe corps de requête ne contient pas model
400invalid_parameter (param=size)Utilisez une taille prise en charge par le modèle actuel
400unknown_parameter (param=response_format)Supprimez ce champ et utilisez le format de retour par défaut du modèle
400InvalidParameter / upstream_errorLe modèle amont refuse la taille, le nombre de pixels ou un autre paramètre ; ajustez selon message
400invalid_parameter (param=n)Passez à n=1
400image is required (code=convert_request_failed)La requête d'édition d'image ne contient pas d'image de référence ; ajoutez image comme dans l'exemple ci-dessous
400n must be an integer between 1 and 128 (code=invalid_request)n est hors plage ; utilisez 1–128
429credit_balance_exhausted / insufficient_quotaLe solde du canal actuel est insuffisant ; utilisez un autre canal disponible ou contactez le support de la plateforme
401Invalid tokenClé API absente, incorrecte ou expirée
500{"error":{"code":"convert_request_failed","message":"not supported model for image generation, only imagen models are supported"}}Le modèle actuel ne prend pas en charge l'interface de génération d'images ; utilisez un modèle d'image prenant en charge cette interface
503model_not_found / No available channelLe groupe actuel n'a aucun canal disponible pour ce modèle ; choisissez un modèle similaire

Pour une description complète, voir Codes d'erreur et diagnostic.

Édition d'image (image vers image)

POST/v1/images/edits

Générer une nouvelle image à partir d'une image existante : téléversez une ou plusieurs images de référence, et le modèle modifie la scène, change le style ou effectue un repaint local selon prompt.

Corps de requête · multipart/form-data

Prop

Type

La requête doit inclure une image de référence ; en son absence, l'interface renvoie directement une erreur de paramètre sans atteindre le modèle.

Exemple de requête

L'édition d'image passe par multipart/form-data : soumettez chaque champ avec -F, et non avec -d. L'image de référence est téléversée via image=@chemin/du/fichier.

Pour plusieurs images de référence, écrivez le champ sous forme de tableau image[] et répétez-le. Il n'y a pas de corps JSON ici ; Content-Type est défini automatiquement par curl -F, ne l'écrivez pas à la main.

Édition d'image

curl -X POST "https://locopalai.com/v1/images/edits" \
  -H "Authorization: Bearer $LOCOPAL_API_KEY" \
  -F "model=从 /v1/models 选择的图片模型 ID" \
  -F "prompt=把这张照片改成柔和的水彩画风格" \
  -F "size=1024x1024" \
  -F "image=@./reference.png"

Pour plusieurs images de référence, répétez ce champ :

  -F "image[]=@./reference-a.png" \
  -F "image[]=@./reference-b.png"

Corps de réponse

Même structure que Créer une image ; l'image est renvoyée en b64_json ou en url :

{
  "background": "opaque",
  "created": 1789651524,
  "data": [
    { "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zU..." }
  ],
  "output_format": "png",
  "quality": "low",
  "size": "1024x1024",
  "usage": {
    "input_tokens": 1041,
    "input_tokens_details": { "image_tokens": 1032, "text_tokens": 9 },
    "output_tokens": 439,
    "total_tokens": 1480
  }
}

usage.input_tokens_details.image_tokens reflète la consommation des images de référence : plus il y a d'images ou plus leur taille est grande, plus le nombre de tokens d'entrée est élevé.

Transmettre une image de référence via une adresse publique

Les modèles prenant en charge les images de référence peuvent aussi recevoir leur image via images dans le corps JSON de POST /v1/images/generations, chaque élément étant une adresse d'image https:// publique :

curl -X POST "https://locopalai.com/v1/images/generations" \
  -H "Authorization: Bearer $LOCOPAL_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "model": "从 /v1/models 选择的图片模型 ID",
  "prompt": "把这张照片改成柔和的水彩画风格",
  "images": ["https://example.com/reference.png"]
}
JSON

L'image de référence doit être directement téléchargeable par le serveur ; si l'adresse est invalide ou nécessite une connexion, la requête se termine par une erreur de téléchargement amont. La structure de réponse est identique à Créer une image.

Relation avec la bibliothèque de ressources

La génération d'images n'alimente pas automatiquement la bibliothèque de ressources. Si une tâche vidéo ultérieure doit utiliser l'image comme image de référence, importez-la d'abord via les interfaces de la bibliothèque de ressources, interrogez jusqu'à l'état Active, puis référencez-la avec asset://<asset_id>.

Cette page vous a-t-elle aidé ?

Sur cette page