Contrôler la qualité, le style et la résolution
Mis à jour le 29 juillet 2026
Contrôler la qualité, le style et la résolution
GPT Image offre plusieurs leviers pour ajuster le rendu de vos images, et ces leviers ne sont pas de même nature. La qualité et la résolution sont des paramètres d’API, chiffrés et facturés ; le style, lui, ne se règle que par le prompt. Comprendre cette répartition vous évite de chercher une option qui n’existe pas et vous permet d’optimiser le rapport qualité/coût de chaque génération.
Les niveaux de qualité
Le paramètre quality influence le niveau de détail et le temps de génération. Le plus instructif est de le faire varier sur un sujet exigeant — une nature morte en éclairage Rembrandt, où les dégradés et la matière se voient — plutôt que sur un aplat graphique où la différence serait imperceptible.
from openai import OpenAI
client = OpenAI()
qualites = ["low", "medium", "high"]
for q in qualites:
response = client.images.generate(
model="gpt-image-1",
prompt="Nature morte avec des fruits exotiques sur une table en marbre, éclairage Rembrandt",
size="1024x1024",
quality=q
)
print(f"Qualité {q} : {response.data[0].url}")
| Qualité | Détails | Temps | Coût | Usage recommandé |
|---|---|---|---|---|
low | Basique | Rapide | Économique | Brouillons, tests, prototypage |
medium | Bon | Modéré | Intermédiaire | Réseaux sociaux, présentations |
high | Maximal | Plus long | Premium | Print, publicité, portfolio |
Les résolutions disponibles
Trois formats sont proposés, chacun taillé pour un usage : le carré 1024×1024 pour les réseaux sociaux et les avatars, le portrait 1024×1536 pour les stories, affiches et écrans mobiles, le paysage 1536×1024 pour les bannières, headers et présentations. Générez toujours directement au bon format : recadrer après coup revient à jeter des pixels que vous avez payés, et déplace la composition que le modèle avait construite pour le cadre demandé.
from openai import OpenAI
client = OpenAI()
resolutions = {
"1024x1024": "Carré — idéal pour les réseaux sociaux et avatars",
"1024x1536": "Portrait — stories, affiches, mobile",
"1536x1024": "Paysage — bannières, headers, présentations",
}
for size, description in resolutions.items():
response = client.images.generate(
model="gpt-image-1",
prompt="Vue panoramique d'une ville futuriste au crépuscule, néons et gratte-ciels",
size=size,
quality="medium"
)
print(f"{size} ({description})")
print(f" → {response.data[0].url}\n")
Contrôler le style via le prompt
Le style n’est pas un paramètre explicite de l’API : il se contrôle entièrement par le prompt. La technique la plus fiable consiste à nommer un médium précis, avec son vocabulaire propre. « Photographie professionnelle, Nikon D850, f/2.8 » ne demande pas seulement une photo, mais une profondeur de champ et un rendu d’optique ; « pixel art rétro 16-bit, palette limitée » impose une contrainte de résolution apparente que le modèle respecte. La boucle suivante applique cinq médiums à un même sujet et rend cet écart immédiatement visible.
mediums = [
"photographie professionnelle, Nikon D850, f/2.8",
"peinture à l'huile sur toile, style impressionniste",
"illustration vectorielle flat design, couleurs pastel",
"dessin technique architectural, vue en coupe",
"pixel art rétro 16-bit, palette limitée",
]
for medium in mediums:
prompt = f"Un café parisien typique avec terrasse, {medium}"
response = client.images.generate(
model="gpt-image-1",
prompt=prompt,
size="1024x1024",
quality="medium"
)
print(f"{medium[:40]}... → {response.data[0].url}")
L’éclairage constitue le second levier, et souvent le plus puissant : il transforme radicalement le rendu d’une même scène. Le portrait d’une artisane céramiste dans son atelier devient un document sobre sous un éclairage studio trois points, une image publicitaire sous la lumière dorée du golden hour, une affiche de film sous un clair-obscur à la Caravage. Le sujet n’a pas bougé d’un mot ; seule l’ambiance a changé.
eclairages = [
"éclairage studio trois points, fond blanc neutre",
"lumière naturelle dorée de golden hour",
"éclairage néon cyberpunk, rose et bleu",
"clair-obscur dramatique façon Caravage",
"lumière diffuse jour de pluie, tons gris",
]
for eclairage in eclairages:
prompt = f"Portrait d'une artisane céramiste dans son atelier, {eclairage}"
response = client.images.generate(
model="gpt-image-1",
prompt=prompt,
size="1024x1536",
quality="high"
)
print(f"Éclairage : {eclairage}")
print(f" → {response.data[0].url}\n")
Fonction utilitaire de génération
Répéter les mêmes six lignes à chaque appel devient vite pénible et source d’incohérences. Encapsulez vos préférences par défaut dans une fonction réutilisable qui gère aussi la sauvegarde sur disque et le suffixage des fichiers quand vous demandez plusieurs images.
from openai import OpenAI
import base64
from pathlib import Path
client = OpenAI()
def generer_image(
prompt: str,
output_path: str,
size: str = "1024x1024",
quality: str = "medium",
n: int = 1
) -> list[str]:
"""
Génère une ou plusieurs images et les sauvegarde en local.
Retourne la liste des chemins de fichiers créés.
"""
response = client.images.generate(
model="gpt-image-1",
prompt=prompt,
n=n,
size=size,
quality=quality,
response_format="b64_json"
)
paths = []
for i, image in enumerate(response.data):
if n > 1:
path = Path(output_path).stem + f"_{i+1}" + Path(output_path).suffix
else:
path = output_path
data = base64.b64decode(image.b64_json)
with open(path, "wb") as f:
f.write(data)
paths.append(path)
print(f"Sauvegardé : {path}")
return paths
# Utilisation
generer_image(
prompt="Packaging premium pour du thé matcha, design japonais minimaliste",
output_path="matcha_packaging.png",
size="1024x1024",
quality="high"
)
Choisir la bonne combinaison
Les deux paramètres se décident ensemble, en fonction du support de destination. La grille suivante condense les cas les plus fréquents.
| Contexte | Résolution | Qualité |
|---|---|---|
| Prototypage rapide | 1024×1024 | low |
| Post Instagram / LinkedIn | 1024×1024 | medium |
| Story / Reel vertical | 1024×1536 | medium |
| Bannière web / header | 1536×1024 | medium |
| Affiche print A3+ | 1024×1536 | high |
| Portfolio / book créatif | 1024×1024 | high |
| Test de prompt en batch | 1024×1024 | low |
En production, ne recopiez pas cette grille à la main dans chaque script : traduisez-la en configuration et laissez le code choisir selon le contexte déclaré. Vous obtenez une seule source de vérité, et le jour où vous décidez que vos posts sociaux passent en high, une ligne suffit.
def generer_pour_contexte(prompt: str, contexte: str, output: str):
"""Adapte automatiquement qualité et résolution au contexte."""
configs = {
"prototype": {"size": "1024x1024", "quality": "low"},
"social_media": {"size": "1024x1024", "quality": "medium"},
"story": {"size": "1024x1536", "quality": "medium"},
"banniere": {"size": "1536x1024", "quality": "medium"},
"print": {"size": "1024x1536", "quality": "high"},
}
config = configs.get(contexte, configs["social_media"])
return generer_image(
prompt=prompt,
output_path=output,
**config
)
# Générer la même image pour différents supports
generer_pour_contexte(
"Logo Corsen AI sur fond sombre, style tech premium",
"social_media",
"logo_social.png"
)
Pour vous forger un jugement personnel sur ces réglages, produisez vous-même la matrice complète : un script qui prend un prompt unique et génère les neuf combinaisons qualité × résolution, sauvegarde chaque fichier sous un nom explicite comme image_low_1024x1024.png, et affiche un tableau récapitulatif. Vous saurez ensuite à l’œil quand medium suffit.