Aller au contenu principal

Contrôler la qualité, le style et la résolution

Contrôler la qualité, le style et la résolution

GPT Image offre plusieurs leviers pour ajuster précisément le rendu de vos images. Maîtriser ces paramètres vous permet d’optimiser le rapport qualité/coût et d’obtenir des résultats adaptés à chaque contexte d’utilisation.

Les niveaux de qualité

Le paramètre quality influence le niveau de détail et le temps de génération :

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}")

Comparaison des niveaux

QualitéDétailsTempsCoûtUsage recommandé
lowBasiqueRapideÉconomiqueBrouillons, tests, prototypage
mediumBonModéréIntermédiaireRéseaux sociaux, présentations
highMaximalPlus longPremiumPrint, publicité, portfolio

Les résolutions disponibles

Trois formats sont proposés, chacun adapté à un usage spécifique :

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. Voici des techniques éprouvées.

Spécifier un médium artistique

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}")

Définir l’ambiance et l’éclairage

L’éclairage transforme radicalement le rendu d’une même scène :

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

Créez une fonction réutilisable qui encapsule vos préférences par défaut :

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"
)

Matrice de décision qualité/résolution

Pour choisir la bonne combinaison, suivez cette grille :

ContexteRésolutionQualité
Prototypage rapide1024×1024low
Post Instagram / LinkedIn1024×1024medium
Story / Reel vertical1024×1536medium
Bannière web / header1536×1024medium
Affiche print A3+1024×1536high
Portfolio / book créatif1024×1024high
Test de prompt en batch1024×1024low

Combiner les paramètres intelligemment

En production, adaptez dynamiquement les paramètres au contexte :

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"
)

Exercice pratique

Créez un script qui prend un même prompt et génère automatiquement toutes les combinaisons qualité × résolution (9 au total). Sauvegardez chaque fichier avec un nom explicite (image_low_1024x1024.png, etc.) et affichez un tableau récapitulatif.