Documentation API Hop
Génération d’images GPT-Image-2
Générez des images ou modifiez des références avec gpt-image-2 et recevez les résultats dans la réponse JSON ou connexion SSE actuelle.
https://api.apihop.ai/openai/v1/images/generationsgpt-image-2 prend en charge la génération et la retouche avec images de référence pour les images de produits, brouillons d’affiches, illustrations, ressources sociales, visuels haute résolution, transfert de style et fusion de plusieurs références.
POST https://api.apihop.ai/openai/v1/images/generationsAuthentification
Authorization: Bearer YOUR_API_KEY
Content-Type: application/jsonDémarrage rapide
{
"model": "gpt-image-2",
"prompt": "A minimal black wireless earbud product poster on a white background, clean studio lighting, no text",
"n": 1,
"size": "2048x1152",
"resolution": "2k",
"quality": "low"
}Périmètre de comparaison des prix
Les niveaux d’image 1K / 2K / 4K publiés par RequestBeam sont des *prix de vente RequestBeam*, pas des tarifs officiels OpenAI fixes par image. La documentation tarifaire OpenAI décrit les frais par tokens image/texte et niveaux de traitement ; le coût réel dépend de la taille, de la qualité, des références en entrée et de la sortie. Les comparer simplement parce qu’ils mentionnent tous deux 1k ou 2k n’est pas un calcul de remise à conditions équivalentes.
Pour éviter une annonce d’économies non étayée, l’ancienne référence de fournisseur agrégé USD per image et le badge de remise sont volontairement masqués pour GPT Image 2. Le prix RequestBeam reste visible et son contrat de facturation ne change pas. Pour une comparaison future défendable, consignez le modèle exact, l’endpoint, la qualité, la taille, les conditions d’entrée, l’URL de source officielle et la date de vérification. Consultez le prix effectif de votre compte avant un appel payant.
Corps
modelstringobligatoirePar défaut: gpt-image-2ID du modèle d’image. Utilisez gpt-image-2.
promptstringobligatoireConsigne d’image. Décrivez le sujet, la scène, la composition, le style, le matériau, l’éclairage, les couleurs et la présence éventuelle de texte.
nintegerPar défaut: 1Nombre d’images à générer. Le contrat public actuel de gpt-image-2 accepte uniquement 1. Les autres valeurs renvoient 400 avant réservation.
sizestringPar défaut: autoRapport d’aspect ou dimensions de sortie en pixels.
Valeurs courantes :
1:14:316:99:161024x10241536x10241024x15362048x20482048x11523840x21602160x3840auto
qualitystringPar défaut: autoQualité de sortie. Les valeurs prises en charge comprennent low, medium, high et auto.
resolutionstringPar défaut: 1kNiveau de résolution de sortie. Les valeurs prises en charge sont 1k, 2k et 4k.
Peut être combiné avec size, par exemple size: "16:9" et resolution: "2k".
image_urlsarray<string>Images de référence pour la retouche par instructions ou la fusion de plusieurs images.
- Jusqu’à 16 images.
- Chaque image peut peser jusqu’à 20 MB, avec une limite totale d’entrée de 256 MB.
- Les URL d’images accessibles publiquement sont prises en charge.
- Les URI de données Base64 comme
data:image/...;base64,...sont prises en charge. - URL et URI de données Base64 peuvent être mélangées dans le même tableau.
output_formatstringPar défaut: pngFormat de sortie. Les valeurs prises en charge comprennent png, jpeg et webp.
streambooleanPar défaut: falseIndique s’il faut renvoyer des événements envoyés par le serveur (SSE).
Images de référence et retouche
La retouche avec images de référence utilise le même endpoint JSON. Ajoutez image_urls et décrivez ce qu’il faut conserver ou changer dans prompt :
{
"model": "gpt-image-2",
"prompt": "Keep the product unchanged, replace the background with a dark blue studio, and add soft rim lighting",
"image_urls": [
"https://example.com/product.png"
],
"size": "1:1",
"resolution": "2k"
}Plusieurs références peuvent fournir le sujet, la composition ou le style visuel :
{
"model": "gpt-image-2",
"prompt": "Use the product from the first image and the composition from the second image to create a clean ecommerce hero image",
"image_urls": [
"https://example.com/product.png",
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
],
"size": "4:3",
"resolution": "2k"
}Limites actuelles du contrat public :
- La retouche de l’image entière, le transfert de style et la fusion de références sont pris en charge via
image_urls. - Il n’existe pas de route distincte
POST https://api.apihop.ai/openai/v1/images/edits. - Les envois
multipart/form-datane sont pas acceptés. Convertissez d’abord les images locales en URI de données Base64 ou chargez-les vers des URL accessibles. - La retouche par masque n’est pas prise en charge. Envoyer
mask,mask_urloumaskUrlrenvoie400avant réservation.
Exemples de requêtes
Image de produit 1:1
{
"model": "gpt-image-2",
"prompt": "A transparent glass cup on a light gray background, commercial product photography, soft shadow, no text",
"n": 1,
"size": "1024x1024",
"resolution": "1k",
"quality": "low",
"output_format": "png"
}Affiche 16:9
{
"model": "gpt-image-2",
"prompt": "A futuristic city night poster with neon lights, wet streets, cinematic composition, no text",
"n": 1,
"size": "2048x1152",
"resolution": "2k",
"quality": "medium",
"output_format": "jpeg"
}Renvoi des résultats
Cet endpoint compatible OpenAI ne renvoie pas d’abord une réponse de soumission de tâche contenant data.jobId pour une interrogation ultérieure :
- Avec
stream: false, la requête HTTP actuelle attend la fin et renvoie les URL d’images dans la réponse JSON. - Avec
stream: true, la connexion SSE actuelle reste ouverte jusqu’àimage_generation.completedet[DONE].
N’utilisez pas GET https://api.apihop.ai/v1/jobs/{id} pour récupérer les résultats de cet endpoint. Utilisez Consulter une tâche asynchrone uniquement lorsqu’un endpoint de création asynchrone renvoie explicitement un jobId.
Réponse sans streaming
La réponse contient des URL d’images. usage est inclus lorsque la route fournisseur fournit des informations de mesure.
{
"created": 1777270000,
"data": [
{
"url": "https://image.example.com/generated/123456789012345678/0.png"
}
],
"usage": {
"input_tokens": 20,
"output_tokens": 1234,
"total_tokens": 1254
}
}Réponse en streaming
event: image_generation.completed
data: {"type":"image_generation.completed","data":[{"index":0,"url":"https://image.example.com/generated/123456789012345678/0.png"}],"usage":{"input_tokens":20,"output_tokens":1234,"total_tokens":1254}}
data: [DONE]Référence des tailles
| Rapport cible | 1K recommandé | 2K recommandé | 4K recommandé |
|---|---|---|---|
1:1 | 1024x1024 | 2048x2048 | Non recommandé |
3:2 | 1536x1024 | 2048x1360 | Non recommandé |
2:3 | 1024x1536 | 1360x2048 | Non recommandé |
4:3 | 1024x768 | 2048x1536 | Non recommandé |
3:4 | 768x1024 | 1536x2048 | Non recommandé |
16:9 | 1536x864 | 2048x1152 | 3840x2160 |
9:16 | 864x1536 | 1152x2048 | 2160x3840 |
21:9 | 2016x864 | 2688x1152 | 3840x1648 |
9:21 | 864x2016 | 1152x2688 | 1648x3840 |
Réponse d’erreur
Consultez Codes d’erreur et dépannage pour la référence complète des codes, les différences de protocole et les étapes de diagnostic.
{
"code": 10000,
"message": "prompt is required",
"type": "api_error"
}Erreurs courantes :
400: paramètres obligatoires manquants ou combinaison non prise en charge401: échec d’authentification ou clé API incorrecte402: solde insuffisant404: modèle inexistant ou non activé429: limite de débit dépassée5xx: service temporairement indisponible ou échec de génération d’image