For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale

Génération d’images

Permettez aux modèles de générer ou de modifier des images.

L’outil de génération d’images permet de générer des images à partir d’un prompt textuel et, éventuellement, d’images en entrée. Il utilise les modèles GPT Image, notamment gpt-image-2.5-sunburst, gpt-image-2.5-flare, gpt-image-2, gpt-image-1.5, gpt-image-1 et gpt-image-1-mini, et optimise automatiquement les entrées textuelles pour améliorer les performances.

Définissez le paramètre model de l’outil image_generation sur gpt-image-2.5-sunburst pour des modifications précises, ou sur gpt-image-2.5-flare pour une génération d’images rapide et de haute qualité. Utilisez un modèle principal compatible dans le champ model de premier niveau de l’API Responses.

Pour en savoir plus sur la génération d’images, consultez notre guide de la génération d’images.

Utilisation

Lorsque vous incluez l’outil image_generation dans votre requête, le modèle peut décider quand et comment générer des images au cours de la conversation, à partir de votre prompt et des éventuelles images fournies en entrée.

Le résultat de l’appel d’outil image_generation_call contiendra une image encodée en base64.

Générer une image
from openai import OpenAI
import base64

client = OpenAI()

response = client.responses.create(
    model="gpt-6-astra",
    input="Generate an image of gray tabby cat hugging an otter with an orange scarf",
    tools=[{"type": "image_generation", "model": "gpt-image-2.5-sunburst"}],
)

# Save the image to a file
image_data = [
    output.result
    for output in response.output
    if output.type == "image_generation_call"
]

if image_data:
    image_base64 = image_data[0]
    with open("otter.png", "wb") as f:
        f.write(base64.b64decode(image_base64))

Vous pouvez fournir des images en entrée à l’aide d’identifiants de fichiers ou de données en base64.

Pour forcer l’appel de l’outil de génération d’images, vous pouvez définir le paramètre tool_choice sur {"type": "image_generation"}.

Options de l’outil

Vous pouvez configurer les options de sortie suivantes dans les paramètres de l’outil de génération d’images :

  • Taille : dimensions de l’image, par exemple 1024 × 1024 ou 1024 × 1536
  • Qualité : qualité du rendu, par exemple faible, moyenne ou élevée
  • Format : format du fichier de sortie
  • Compression : niveau de compression (0-100 %) pour les formats JPEG et WebP
  • Arrière-plan : transparent, opaque ou automatique
  • Action : génération d’une image, modification d’une image ou choix automatique entre les deux

Les paramètres size, quality et background prennent en charge l’option auto, qui laisse le modèle sélectionner automatiquement la meilleure option en fonction du prompt.

Pour gpt-image-2.5-sunburst et gpt-image-2.5-flare, quality accepte également les valeurs xhigh et max. Ces valeurs ne sont pas prises en charge par les modèles GPT Image antérieurs. La qualité par défaut reste auto.

gpt-image-2 accepte des valeurs size personnalisées qui respectent ses contraintes de résolution. Les arrière-plans transparents sont disponibles en préversion ; définissez background: "transparent" pour en demander un. Utilisez png (le format par défaut) ou webp ; jpeg n’est pas pris en charge avec les arrière-plans transparents.

Pour plus de détails sur les options disponibles, consultez le guide de la génération d’images.

Lorsque vous utilisez l’outil de génération d’images de l’API Responses, les modèles GPT Image compatibles peuvent choisir de générer une nouvelle image ou de modifier une image déjà présente dans la conversation. Le paramètre facultatif action contrôle ce comportement : laissez action sur auto pour que le modèle choisisse entre génération et modification, ou définissez-le sur generate ou edit pour imposer le comportement correspondant. Si ce paramètre n’est pas renseigné, la valeur par défaut est auto.

Prompt révisé

Lorsque vous utilisez l’outil de génération d’images, le modèle principal, par exemple gpt-5.5, révise automatiquement votre prompt pour améliorer les performances.

Vous pouvez accéder au prompt révisé dans le champ revised_prompt de l’appel de génération d’images :

{
  "id": "ig_123",
  "type": "image_generation_call",
  "status": "completed",
  "revised_prompt": "A gray tabby cat hugging an otter. The otter is wearing an orange scarf. Both animals are cute and friendly, depicted in a warm, heartwarming style.",
  "result": "..."
}

Conseils pour la conception de prompts

La génération d’images donne de meilleurs résultats lorsque vous utilisez des termes comme draw ou edit dans votre prompt.

Par exemple, si vous souhaitez combiner des images, au lieu de dire combine ou merge, vous pouvez écrire : « Modifiez la première image en y ajoutant cet élément de la deuxième image. »

Modification au fil des échanges

Vous pouvez modifier les images de manière itérative en faisant référence aux identifiants de réponses ou d’images précédentes. Cela vous permet d’affiner les images au fil des échanges de la conversation.

Génération d’images au fil des échanges
from openai import OpenAI
import base64

client = OpenAI()

response = client.responses.create(
    model="gpt-6-astra",
    input="Generate an image of gray tabby cat hugging an otter with an orange scarf",
    tools=[{"type": "image_generation", "model": "gpt-image-2.5-sunburst"}],
)

image_data = [
    output.result
    for output in response.output
    if output.type == "image_generation_call"
]

if image_data:
    image_base64 = image_data[0]

    with open("cat_and_otter.png", "wb") as f:
        f.write(base64.b64decode(image_base64))


# Follow up

response_fwup = client.responses.create(
    model="gpt-6-astra",
    previous_response_id=response.id,
    input="Now make it look realistic",
    tools=[{"type": "image_generation", "model": "gpt-image-2.5-sunburst"}],
)

image_data_fwup = [
    output.result
    for output in response_fwup.output
    if output.type == "image_generation_call"
]

if image_data_fwup:
    image_base64 = image_data_fwup[0]
    with open("cat_and_otter_realistic.png", "wb") as f:
        f.write(base64.b64decode(image_base64))

Diffusion en continu

L’outil de génération d’images prend en charge la diffusion en continu d’images partielles pendant la génération du résultat final. Les utilisateurs obtiennent ainsi un aperçu visuel plus rapidement, ce qui réduit la latence perçue.

Vous pouvez définir le nombre d’images partielles (1-3) à l’aide du paramètre partial_images.

Diffuser une image en continu
from openai import OpenAI
import base64

client = OpenAI()


def save_base64_image(filename, image_base64):
    image_bytes = base64.b64decode(image_base64)
    with open(filename, "wb") as f:
        f.write(image_bytes)


stream = client.responses.create(
    model="gpt-6-astra",
    input="Draw a gorgeous image of a river made of white owl feathers, snaking its way through a serene winter landscape",
    stream=True,
    tools=[
        {"type": "image_generation", "model": "gpt-image-2.5-sunburst", "partial_images": 2}
    ],
)

for event in stream:
    if event.type == "response.image_generation_call.partial_image":
        idx = event.partial_image_index
        save_base64_image(f"river-partial-{idx}.png", event.partial_image_b64)
    elif event.type == "response.completed":
        image_data = [
            output.result
            for output in event.response.output
            if output.type == "image_generation_call"
        ]

        if image_data:
            save_base64_image("river-final.png", image_data[0])

Modèles compatibles

Les modèles suivants prennent en charge l’outil de génération d’images :

  • gpt-5.5
  • gpt-5.4-mini
  • gpt-5.4-nano
  • gpt-5.2
  • gpt-5
  • gpt-5-nano
  • o3
  • gpt-4.1
  • gpt-4.1-mini
  • gpt-4.1-nano
  • gpt-4o
  • gpt-4o-mini