gpt-image-1.5 vs GPT Image 2
Lequel, quand — verdict de synthèse, pas un tableau de benchmarks
L'entrée coûte les mêmes $5 par million sur les deux et la sortie ne diffère que d'un arrondi ($32 contre $30), donc le prix n'est pas la raison de choisir. gpt-image-2 élargit le cadre : des tailles arbitraires jusqu'à 3840x2160 par multiples de 16 et des ratios jusqu'à 3:1, contre un jeu fixe 1024x1024 / 1536x1024 / 1024x1536 / auto sur gpt-image-1.5. Prenez gpt-image-1.5 seulement si vous voulez aussi du texte en retour — il liste text parmi ses sorties, tandis que gpt-image-2 ne rend que des images ; sinon, prenez les résolutions.
Tarification
| gpt-image-1.5 | GPT Image 2 | Δ | |
|---|---|---|---|
| Entrée / 1M tokens | $5 | $5 | = |
| Sortie / 1M tokens | $32 | $30 | 1.1× |
Tarifs issus du catalogue en direct au moment de la compilation ; chaque page de modèle présente la fiche actuelle.
Où ils se situent — prix en sortie pour 1M de tokens sur l'ensemble des 8 modèles génération d'images pour cette unité de facturation (échelle logarithmique)
Spécifications
| gpt-image-1.5 | GPT Image 2 | |
|---|---|---|
| Modalités d'entrée | texte image | texte image |
| Modalités de sortie | texte image | image |
| Sortie | 2026-02-10 | 2026-04-21 |
| Tailles de sortie |
|
|
| Modes d'entrée | text-to-image, image edit with mask inpainting | text-to-image, image edit with mask inpainting |
| Images par requête | 10 | 10 |
| Formats | png, jpeg, webp | png, jpeg, webp |
| Notes | 1024x1024 / 1024x1536 / 1536x1024, quality low/medium/high edits endpoint supported better instruction following than gpt-image-1 | Flexible resolutions: edges up to 3840px in multiples of 16, ratio <=3:1, ~0.65-8.3MP total (incl. 4K 3840x2160) editing with mask inpainting all image inputs processed at high fidelity significantly improved text rendering (precise placement can still struggle) |
Les spécifications sont transcrites à partir de la documentation de chaque fournisseur ; une ligne qu'un fournisseur ne publie pas est omise plutôt que déduite. Sources complètes : gpt-image-1.5 · GPT Image 2
Un prompt, deux modèles — mesurés via la passerelle
Un prompt, une requête par modèle, aucun nouvel essai et aucune sélection sur le volet — le premier résultat renvoyé par chaque modèle. Ni la taille ni la durée n'ont été fixées : chaque modèle a utilisé sa propre valeur par défaut, car une requête conçue pour s'adapter à tous n'en mettrait aucun en valeur. Les fichiers ici sont réencodés pour le web, jugez donc la composition et le respect du prompt, pas la compression.
Basculez de l'un à l'autre avec une seule ligne
Les deux ids sont dans chaque onglet ci-dessous — la paire de lignes en surbrillance est la seule modification. Même endpoint, même clé, même structure de requête.
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.images.generate(
model="gpt-image-1.5",
# model="gpt-image-2", # décommentez cette ligne, commentez celle du dessus
prompt="a watercolor lighthouse at dawn",
size="1024x1024",
)
print(resp.data[0].b64_json[:80])import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.images.generate({
model: "gpt-image-1.5",
// model: "gpt-image-2", // décommentez cette ligne, commentez celle du dessus
prompt: "a watercolor lighthouse at dawn",
size: "1024x1024",
});
console.log(resp.data?.[0]?.b64_json?.slice(0, 80));curl https://synthorai.io/v1/images/generations \
-H "Authorization: Bearer sk-syn-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-1.5",
# "model": "gpt-image-2", # décommentez cette ligne, commentez celle du dessus
"prompt": "a watercolor lighthouse at dawn",
"size": "1024x1024"
}'package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
resp, _ := client.Images.Generate(context.TODO(), openai.ImageGenerateParams{
Model: "gpt-image-1.5",
// Model: "gpt-image-2", // décommentez cette ligne, commentez celle du dessus
Prompt: "a watercolor lighthouse at dawn",
Size: "1024x1024",
})
fmt.Println(resp.Data[0].B64JSON[:80])
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.images.*;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
ImagesResponse resp = client.images().generate(
ImageGenerateParams.builder()
.model("gpt-image-1.5")
// .model("gpt-image-2") // décommentez cette ligne, commentez celle du dessus
.prompt("a watercolor lighthouse at dawn")
.size("1024x1024")
.build());
System.out.println(resp.data().orElseThrow().get(0).b64Json().orElseThrow().substring(0, 80));FAQ
Lequel est le moins cher, gpt-image-1.5 ou GPT Image 2 ?
Ils affichent la même valeur pour entrée / 1m tokens ($5), donc le prix ne permet pas de trancher ici — consultez les spécifications et les capacités ci-dessous.
Puis-je faire un test A/B de gpt-image-1.5 par rapport à GPT Image 2 sans deux intégrations ?
Oui. Les deux sont servis via le même endpoint compatible OpenAI avec une seule clé API — le basculement est un changement de chaîne de modèle en une ligne, vous pouvez donc diriger une fraction du trafic vers chacun et comparer les factures directement.
Le prix change-t-il avec la taille de l'image ?
Cela dépend de la façon dont le modèle est facturé. Les modèles facturés par image coûtent la même chose indépendamment de la taille du prompt ou de la sortie ; les modèles facturés par jeton évoluent avec la résolution que vous générez, une image 4K coûte donc un multiple d'une petite image. Le tableau ci-dessus montre ce qui s'applique à chacun.