Compartir a través de


Modelos de generación de imágenes de Azure OpenAI

Los modelos de generación de imágenes de OpenAI crean imágenes a partir de indicaciones de texto proporcionadas por el usuario e imágenes opcionales. En este artículo se explica cómo usar estos modelos, configurar opciones y beneficiarse de las funcionalidades avanzadas de generación de imágenes en Azure.

Puede generar imágenes a través de la API de generación de imágenes o la API de respuestas. También puede experimentar con la generación de imágenes en el portal de Foundry.

Use las pestañas al principio de esta página para seleccionar el modelo y el enfoque de API preferidos.

Modelos y funcionalidades

Use esta tabla para conocer las diferencias entre los diferentes modelos de generación de imágenes y para ayudarle a elegir el mejor modelo para las necesidades de generación de imágenes.

Aspecto GPT-Image-1.5 GPT-Image-1 GPT-Image-1-Mini DALL·E 3
Availability Previsualización de acceso limitado (solicitar acceso a GPT-image-1.5) Versión preliminar de acceso limitado (solicitar acceso a GPT-image-1) Versión preliminar de acceso limitado (solicitar acceso a GPT-image-1) Disponible con carácter general
Fortalezas Lo mejor para el realismo, seguir instrucciones, el contexto multimodal y la mejora de velocidad/costo Lo mejor para el realismo, seguir instrucciones y el contexto multimodal. Lo mejor para crear prototipos rápidos, generar de forma masiva o casos de uso sensibles a costos Adhesión sólida a la solicitud, representación de texto natural y diversidad estilística
Modalidades de entrada/salida y formato Acepta entradas de texto + imagen ; genera imágenes solo en base64 (sin opción de dirección URL). Acepta entradas de texto + imagen ; genera imágenes solo en base64 (sin opción de dirección URL). Acepta entradas de texto + imagen ; genera imágenes solo en base64 (sin opción de dirección URL). Acepta la entrada de texto (principal); entradas de edición de imágenes limitadas (con máscara). Se generan como URL o base64.
Tamaños o resoluciones de imagen 1024×1024, 1024×1536, 1536×1024 1024×1024, 1024×1536, 1536×1024 1024×1024, 1024×1536, 1536×1024 1024×1024, 1024×1792, 1792×1024
Opciones de calidad low, , mediumhigh (valor predeterminado = alto) low, , mediumhigh (valor predeterminado = alto) low, , mediumhigh (valor predeterminado = medio) standard, hd; opciones de estilo: natural, vivid
Número de imágenes por solicitud Imágenes de 1 a 10 por solicitud (n parámetro) Imágenes de 1 a 10 por solicitud (n parámetro) Imágenes de 1 a 10 por solicitud (n parámetro) Solo 1 imagen por solicitud (n debe ser 1)
Edición (inpainting/variaciones) ✅ Admite inpainting y variaciones con máscara + solicitud ✅ Admite inpainting y variaciones con máscara + solicitud ✅ Admite inpainting y variaciones con máscara + solicitud ✅ Admite inpainting y variaciones
Conservación de superficies ✅ Conservación avanzada de caras para resultados realistas y coherentes ✅ Conservación avanzada de caras para resultados realistas y coherentes ❌No requiere conservación específica de rostros; mejor para imágenes creativas no retratos o generales ❌ Sin preservación facial específica
Rendimiento y costo Modelo de alta fidelidad, optimizado para el realismo; mejora de la eficacia y la latencia en comparación con GPT-Image-1 Modelo optimizado para realismo y alta fidelidad; mayor latencia y costo Rentable y más rápido para la generación iterativa o a gran escala Rendimiento equilibrado; mayor latencia en avisos complejos

Inicio rápido

Use esta guía para empezar a llamar a azure OpenAI en las API REST de generación de imágenes de modelos de Microsoft Foundry mediante Python.

Prerrequisitos

Configuración

Recuperar clave y punto de conexión

Para llamar correctamente a las API de Azure OpenAI, necesita la siguiente información sobre el recurso de Azure OpenAI:

Variable Nombre Importancia
Punto final api_base El valor del punto de conexión se encuentra en Claves y punto de conexión del recurso en Azure Portal. También puede encontrar el punto de conexión a través de la página Implementaciones en el portal de Foundry. Ejemplo de punto de conexión: https://docs-test-001.openai.Azure.com/.
Clave api_key El valor de clave también se encuentra en Claves y punto de conexión del recurso en Azure Portal. Azure genera dos claves para el recurso. Puede usar cualquiera de los valores.

Vaya a su recurso en el portal de Azure. En el panel de navegación, seleccione Claves y punto de conexión en Administración de recursos. Copie el valor de Punto de conexión y un valor de clave de acceso. Puede usar el valor KEY 1 o KEY 2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla que muestra la página Claves y punto de conexión de un recurso de Azure OpenAI en Azure Portal

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

Importante

Se recomienda la autenticación de Microsoft Entra ID con identidades administradas para los recursos de Azure para evitar almacenar credenciales con sus aplicaciones que se ejecutan en la nube.

Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. Si usa claves de API, almacénelas de forma segura en Azure Key Vault, cambie las claves periódicamente y restrinja el acceso a Azure Key Vault mediante el control de acceso basado en rol y las restricciones de acceso de red. Para más información sobre cómo utilizar las claves de API de forma segura en sus aplicaciones, consulte Claves de API con Azure Key Vault.

Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Creación de una nueva aplicación de Python

Cree un nuevo archivo de Python denominado quickstart.py. Abra el nuevo archivo en el editor o IDE que prefiera.

  1. Reemplace el contenido de quickstart.py por el siguiente código. Cambie el valor de prompt a su texto preferido. Establece también deployment en el nombre de implementación que eligió al implementar el modelo de la serie GPT-image-1.

    import os
    import requests
    import base64
    from PIL import Image
    from io import BytesIO
    
    # set environment variables
    endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    subscription_key = os.getenv("AZURE_OPENAI_API_KEY")
    
    deployment = "gpt-image-1.5" # the name of your GPT-image-1 series deployment
    api_version = "2025-04-01-preview" # or later version
    
    def decode_and_save_image(b64_data, output_filename):
      image = Image.open(BytesIO(base64.b64decode(b64_data)))
      image.show()
      image.save(output_filename)
    
    def save_all_images_from_response(response_data, filename_prefix):
      for idx, item in enumerate(response_data['data']):
        b64_img = item['b64_json']
        filename = f"{filename_prefix}_{idx+1}.png"
        decode_and_save_image(b64_img, filename)
        print(f"Image saved to: '{filename}'")
    
    base_path = f'openai/deployments/{deployment}/images'
    params = f'?api-version={api_version}'
    
    generation_url = f"{endpoint}{base_path}/generations{params}"
    generation_body = {
      "prompt": "girl falling asleep",
      "n": 1,
      "size": "1024x1024",
      "quality": "medium",
      "output_format": "png"
    }
    generation_response = requests.post(
      generation_url,
      headers={
        'Api-Key': subscription_key,
        'Content-Type': 'application/json',
      },
      json=generation_body
    ).json()
    save_all_images_from_response(generation_response, "generated_image")
    
    # In addition to generating images, you can edit them.
    edit_url = f"{endpoint}{base_path}/edits{params}"
    edit_body = {
      "prompt": "girl falling asleep",
      "n": 1,
      "size": "1024x1024",
      "quality": "medium"
    }
    files = {
      "image": ("generated_image_1.png", open("generated_image_1.png", "rb"), "image/png"),
      # You can use a mask to specify which parts of the image you want to edit.
      # The mask must be the same size as the input image.
      # "mask": ("mask.png", open("mask.png", "rb"), "image/png"),
    }
    edit_response = requests.post(
      edit_url,
      headers={'Api-Key': subscription_key},
      data=edit_body,
      files=files
    ).json()
    save_all_images_from_response(edit_response, "edited_image")
    

    El script realiza una llamada API de generación de imágenes sincrónicas.

    Importante

    Recuerde quitar la clave del código cuando haya terminad y nunca la haga pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. Para obtener más información, consulte Acerca de Azure Key Vault.

  2. Ejecute la aplicación con el comando python:

    python quickstart.py
    

    Espere unos instantes para obtener la respuesta.

Salida

La salida de una llamada API de generación de imágenes correcta tiene un aspecto similar al siguiente ejemplo. El campo url contiene una dirección URL donde puede descargar la imagen generada. La dirección URL permanece activa durante 24 horas.

{ 
    "created": 1698116662, 
    "data": [ 
        { 
            "url": "<URL_to_generated_image>",
            "revised_prompt": "<prompt_that_was_used>" 
        }
    ]
} 

Una respuesta correcta incluye:

  • Marca de tiempo created (Unix Epoch Time)
  • Matriz data con al menos un objeto de imagen
  • un url (vínculo temporal válido durante 24 horas) o b64_json (datos de imagen codificados en base64)

Errores frecuentes

Error Causa Resolución
DeploymentNotFound El nombre de implementación no existe o está mal escrito Verifica el nombre de la implementación en el Portal de Azure o en el portal de Foundry
401 Unauthorized Clave de API no válida o que falta Compruebe que la AZURE_OPENAI_API_KEY variable de entorno está establecida correctamente
429 Too Many Requests Límite de velocidad excedido Implementación de la lógica de reintento con retroceso exponencial
content_policy_violation Instrucción o resultado generado bloqueado por filtro de contenido Modificar el indicador para cumplir con la política de contenido
InvalidPayload Faltan parámetros obligatorios o valores no válidos Compruebe que prompt, sizey n están correctamente especificados

Las API de imagen incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no genera una imagen. Para obtener más información, consulte Filtrado de contenido. Para obtener ejemplos de respuestas de error, consulte la guía paso a paso de generación de imágenes.

El sistema devuelve un estado de operación de Failed y el valor error.code en el mensaje se establecerá en contentFilter. Este es un ejemplo:

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Your task failed as a result of our safety system."
    }
}

También es posible que se filtre la propia imagen generada. En este caso, el mensaje de error se establece en Generated image was filtered as a result of our safety system.. Este es un ejemplo:

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Generated image was filtered as a result of our safety system."
    }
}

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para Python.

Código fuente de la biblioteca | Paquete | Ejemplos

Prerrequisitos

Para obtener más información, consulte Creación de un recurso e implementación de un modelo con Azure OpenAI.

Configuración

Recuperar clave y punto de conexión

Para llamar correctamente a las API de Azure OpenAI, necesita la siguiente información sobre el recurso de Azure OpenAI:

Variable Nombre Importancia
Punto final api_base El valor del punto de conexión se encuentra en Claves y punto de conexión del recurso en Azure Portal. También puede encontrar el punto de conexión a través de la página Implementaciones en el portal de Microsoft Foundry. Ejemplo de punto de conexión: https://docs-test-001.openai.Azure.com/.
Clave api_key El valor de clave también se encuentra en Claves y punto de conexión del recurso en Azure Portal. Azure genera dos claves para el recurso. Puede usar cualquiera de los valores.

Vaya a su recurso en el portal de Azure. En el panel de navegación, seleccione Claves y punto de conexión en Administración de recursos. Copie el valor de Punto de conexión y un valor de clave de acceso. Puede usar el valor KEY 1 o KEY 2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla que muestra la página Claves y punto de conexión de un recurso de Azure OpenAI en Azure Portal

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

Importante

Se recomienda la autenticación de Microsoft Entra ID con identidades administradas para los recursos de Azure para evitar almacenar credenciales con sus aplicaciones que se ejecutan en la nube.

Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. Si usa claves de API, almacénelas de forma segura en Azure Key Vault, cambie las claves periódicamente y restrinja el acceso a Azure Key Vault mediante el control de acceso basado en rol y las restricciones de acceso de red. Para más información sobre cómo utilizar las claves de API de forma segura en sus aplicaciones, consulte Claves de API con Azure Key Vault.

Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Instalación del SDK para Python

Abra un símbolo del sistema y vaya a la carpeta del proyecto. Instale el SDK de Python de OpenAI mediante el siguiente comando:

pip install openai

Instale también las bibliotecas siguientes:

pip install requests
pip install pillow 

Generar imágenes

Cree un nuevo archivo de Python, quickstart.py. Ábrelo en tu editor o IDE preferido.

Reemplace el contenido de quickstart.py por el siguiente código.

from openai import AzureOpenAI
import os
import requests
from PIL import Image
import json

client = AzureOpenAI(
    api_version="2024-02-01",  
    api_key=os.environ["AZURE_OPENAI_API_KEY"],  
    azure_endpoint=os.environ['AZURE_OPENAI_ENDPOINT']
)

result = client.images.generate(
    model="dalle3", # the name of your DALL-E 3 deployment
    prompt="a close-up of a bear walking through the forest",
    n=1
)

json_response = json.loads(result.model_dump_json())

# Set the directory for the stored image
image_dir = os.path.join(os.curdir, 'images')

# If the directory doesn't exist, create it
if not os.path.isdir(image_dir):
    os.mkdir(image_dir)

# Initialize the image path (note the filetype should be png)
image_path = os.path.join(image_dir, 'generated_image.png')

# Retrieve the generated image
image_url = json_response["data"][0]["url"]  # extract image URL from response
generated_image = requests.get(image_url).content  # download the image
with open(image_path, "wb") as image_file:
    image_file.write(generated_image)

# Display the image in the default image viewer
image = Image.open(image_path)
image.show()
  1. Asegúrese de que se establecen las AZURE_OPENAI_ENDPOINT variables de entorno y AZURE_OPENAI_API_KEY .
  2. Cambie el valor de prompt a su texto preferido.
  3. Cambie el valor de model por el nombre del modelo DALL-E 3 implementado.

Importante

Recuerde quitar la clave del código cuando haya terminad y nunca la haga pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. Para obtener más información, consulte Acerca de Azure Key Vault.

Ejecute la aplicación con el comando python:

python quickstart.py

Espere unos instantes para obtener la respuesta.

Salida

Azure OpenAI almacena la imagen de salida en el archivo generated_image.png en el directorio especificado. El script también muestra la imagen en el visor de imágenes predeterminado.

Una respuesta correcta incluye:

  • Marca de tiempo created
  • Matriz data con al menos un objeto de imagen
  • un url (vínculo temporal válido durante 24 horas) o b64_json (datos de imagen codificados en base64)

Errores frecuentes

Error Causa Resolución
DeploymentNotFound El nombre de implementación no existe o está mal escrito Verifica el nombre de la implementación en el Portal de Azure o en el portal de Foundry
AuthenticationError Clave de API no válida o que falta Compruebe que la AZURE_OPENAI_API_KEY variable de entorno está establecida correctamente
RateLimitError Límite de velocidad excedido Implementación de la lógica de reintento con retroceso exponencial
content_policy_violation Instrucción o resultado generado bloqueado por filtro de contenido Modificar el indicador para cumplir con la política de contenido

Las API de imagen incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no genera una imagen. Para obtener más información, consulte Filtrado de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para C#.

Código fuente de la biblioteca | Paquete (NuGet) | Ejemplos

Prerrequisitos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.

Configuración

  1. Cree una nueva carpeta image-quickstart y vaya a la carpeta quickstart mediante el siguiente comando:

    mkdir image-quickstart && cd image-quickstart
    
  2. Cree una nueva aplicación de consola con el siguiente comando:

    dotnet new console
    
  3. Instale la biblioteca cliente de OpenAI .NET con el comando dotnet add package:

    dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6
    
  4. Para la autenticación sin clave recomendada con Microsoft Entra ID, instale el paquete de Azure.Identity con:

    dotnet add package Azure.Identity
    
  5. Para la autenticación sin clave recomendada con Microsoft Entra ID, inicie sesión en Azure con el siguiente comando:

    az login
    

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Importancia
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y Punto de Conexión al examinar su recurso desde el portal de Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Ejecución del inicio rápido

En este inicio rápido, el código de ejemplo usa Microsoft Entra ID para la autenticación sin clave recomendada. Si prefiere usar una clave de API, puede reemplazar el DefaultAzureCredential objeto por un AzureKeyCredential objeto .

AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); 

Para ejecutar el inicio rápido, siga estos pasos:

  1. Reemplace el contenido de Program.cs por el código siguiente y actualice los valores de marcador de posición por los suyos propios.

    using Azure;
    using Azure.AI.OpenAI;
    using OpenAI.Images;
    using static System.Environment;
    
    string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/";
    string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>";
    
    // Use the recommended keyless credential instead of the AzureKeyCredential credential.
    AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); 
    //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));
    
    // This must match the custom deployment name you chose for your model
    ImageClient chatClient = openAIClient.GetImageClient("dalle-3");
    
    var imageGeneration = await chatClient.GenerateImageAsync(
            "a happy monkey sitting in a tree, in watercolor",
            new ImageGenerationOptions()
            {
                Size = GeneratedImageSize.W1024xH1024
            }
        );
    
    Console.WriteLine(imageGeneration.Value.ImageUri);
    
  2. Ejecute la aplicación mediante el comando dotnet run o el botón Ejecutar situado en la parte superior de Visual Studio:

    dotnet run
    

Salida

La dirección URL de la imagen generada se imprime en la consola.

<SAS URL>

Nota:

Las API de imagen incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para Java.

Código fuente de la biblioteca | Artefacto (Maven) | Ejemplos

Prerrequisitos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.

Configuración

  1. Cree una nueva carpeta image-quickstart y vaya a la carpeta quickstart mediante el siguiente comando:

    mkdir image-quickstart && cd image-quickstart
    
  2. Instalación de Apache Maven. A continuación, ejecute mvn -v para confirmar que la instalación se ha realizado correctamente.

  3. Cree un nuevo archivo pom.xml en la raíz del proyecto y copie el siguiente código en él:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
         <modelVersion>4.0.0</modelVersion>
         <groupId>com.azure.samples</groupId>
         <artifactId>quickstart-dall-e</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <build>
             <sourceDirectory>src</sourceDirectory>
             <plugins>
             <plugin>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.7.0</version>
                 <configuration>
                 <source>1.8</source>
                 <target>1.8</target>
                 </configuration>
             </plugin>
             </plugins>
         </build>
         <dependencies>    
             <dependency>
                 <groupId>com.azure</groupId>
                 <artifactId>azure-ai-openai</artifactId>
                 <version>1.0.0-beta.3</version>
             </dependency>
             <dependency>
                 <groupId>com.azure</groupId>
                 <artifactId>azure-core</artifactId>
                 <version>1.53.0</version>
             </dependency>
             <dependency>
                 <groupId>com.azure</groupId>
                 <artifactId>azure-identity</artifactId>
                 <version>1.15.1</version>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-simple</artifactId>
                 <version>1.7.9</version>
             </dependency>
         </dependencies>
     </project>
    
  4. Instale el SDK y las dependencias de Azure OpenAI.

    mvn clean dependency:copy-dependencies
    
  5. Para la autenticación sin clave recomendada con Microsoft Entra ID, inicie sesión en Azure con el siguiente comando:

    az login
    

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Importancia
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y Punto de Conexión al examinar su recurso desde el portal de Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Ejecuta la aplicación

En este inicio rápido, el código de ejemplo usa Microsoft Entra ID para la autenticación sin clave recomendada. Si prefiere usar una clave de API, puede reemplazar el DefaultAzureCredential objeto por un AzureKeyCredential objeto .

OpenAIAsyncClient client = new OpenAIClientBuilder()
    .endpoint(endpoint)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildAsyncClient();

Siga estos pasos para crear una aplicación de consola para la generación de imágenes.

  1. Cree un nuevo archivo denominado Quickstart.java en el mismo directorio raíz del proyecto.

  2. Copie el código siguiente en Quickstart.java:

    import com.azure.ai.openai.OpenAIAsyncClient;
    import com.azure.ai.openai.OpenAIClientBuilder;
    import com.azure.ai.openai.models.ImageGenerationOptions;
    import com.azure.ai.openai.models.ImageLocation;
    import com.azure.core.credential.AzureKeyCredential;
    import com.azure.core.models.ResponseError;
    
    import java.util.concurrent.TimeUnit;
    
    public class Quickstart {
    
        public static void main(String[] args) throws InterruptedException {
    
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");
    
            // Use the recommended keyless credential instead of the AzureKeyCredential credential.
    
            OpenAIAsyncClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new DefaultAzureCredentialBuilder().build())
                .buildAsyncClient();
    
            ImageGenerationOptions imageGenerationOptions = new ImageGenerationOptions(
                "A drawing of the Seattle skyline in the style of Van Gogh");
            client.getImages(imageGenerationOptions).subscribe(
                images -> {
                    for (ImageLocation imageLocation : images.getData()) {
                        ResponseError error = imageLocation.getError();
                        if (error != null) {
                            System.out.printf("Image generation operation failed. Error code: %s, error message: %s.%n",
                                error.getCode(), error.getMessage());
                        } else {
                            System.out.printf(
                                "Image location URL that provides temporary access to download the generated image is %s.%n",
                                imageLocation.getUrl());
                        }
                    }
                },
                error -> System.err.println("There was an error getting images." + error),
                () -> System.out.println("Completed getImages."));
    
            // The .subscribe() creation and assignment isn't a blocking call.
            // The thread sleeps so the program does not end before the send operation is complete. 
            // Use .block() instead of .subscribe() for a synchronous call.
            TimeUnit.SECONDS.sleep(10);
        }
    }
    
  3. Ejecute la nueva aplicación de consola para generar una imagen:

    javac Quickstart.java -cp ".;target\dependency\*"
    java -cp ".;target\dependency\*" Quickstart
    

Salida

La dirección URL de la imagen generada se imprime en la consola.

Image location URL that provides temporary access to download the generated image is <SAS URL>.
Completed getImages.

Nota:

Las API de imagen incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para JavaScript.

Documentación de referencia | Código fuente | Paquete (npm) | Ejemplos

Prerrequisitos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.

Configuración

  1. Cree una nueva carpeta image-quickstart y vaya a la carpeta quickstart mediante el siguiente comando:

    mkdir image-quickstart && cd image-quickstart
    
  2. Cree el package.json con el comando siguiente:

    npm init -y
    
  3. Instale la biblioteca cliente de OpenAI para JavaScript con:

    npm install openai
    
  4. Para la autenticación sin contraseña recomendada:

    npm install @azure/identity
    

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Importancia
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y Punto de Conexión al examinar su recurso desde el portal de Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Precaución

Para usar la autenticación sin clave recomendada con el SDK, asegúrese de que la variable de entorno AZURE_OPENAI_API_KEY no esté establecida.

Generación de imágenes con DALL-E

  1. Cree el archivo index.js con el código siguiente:

    const { AzureOpenAI } = require("openai");
    const { 
        DefaultAzureCredential, 
        getBearerTokenProvider 
    } = require("@azure/identity");
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01";
    const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "dall-e-3";
    
    // The prompt to generate images from
    const prompt = "a monkey eating a banana";
    const numberOfImagesToGenerate = 1;
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient(): AzureOpenAI {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    async function main() {
      console.log("== Image Generation ==");
    
      const client = getClient();
    
      const results = await client.images.generate({
        prompt,
        size: "1024x1024",
        n: numberOfImagesToGenerate,
        model: "",
        style: "vivid", // or "natural"
      });
    
      for (const image of results.data) {
        console.log(`Image generation result URL: ${image.url}`);
      }
    }
    
    main().catch((err) => {
      console.error("The sample encountered an error:", err);
    });
    
  2. Inicie sesión en Azure con el siguiente comando:

    az login
    
  3. Ejecute el archivo JavaScript.

    node index.js
    

Salida

La dirección URL de la imagen generada se imprime en la consola.

== Batch Image Generation ==
Image generation result URL: <SAS URL>
Image generation result URL: <SAS URL>

Nota:

Las API de imagen incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para JavaScript.

Documentación de referencia | Código fuente | Paquete (npm) | Ejemplos

Prerrequisitos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.

Configuración

  1. Cree una nueva carpeta image-quickstart y vaya a la carpeta quickstart mediante el siguiente comando:

    mkdir image-quickstart && cd image-quickstart
    
  2. Cree el package.json con el comando siguiente:

    npm init -y
    
  3. Actualice el package.json a ECMAScript con el siguiente comando:

    npm pkg set type=module
    
  4. Instale la biblioteca cliente de OpenAI para JavaScript con:

    npm install openai
    
  5. Para la autenticación sin contraseña recomendada:

    npm install @azure/identity
    

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Importancia
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y Punto de Conexión al examinar su recurso desde el portal de Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Precaución

Para usar la autenticación sin clave recomendada con el SDK, asegúrese de que la variable de entorno AZURE_OPENAI_API_KEY no esté establecida.

Generación de imágenes con DALL-E

  1. Cree el archivo index.ts con el código siguiente:

    import { AzureOpenAI } from "openai";
    import { 
        DefaultAzureCredential, 
        getBearerTokenProvider 
    } from "@azure/identity";
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01";
    const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "dall-e-3";
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient(): AzureOpenAI {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    async function main() {
      console.log("== Image Generation ==");
    
      const client = getClient();
    
      const results = await client.images.generate({
        prompt,
        size: "1024x1024",
        n: numberOfImagesToGenerate,
        model: "",
        style: "vivid", // or "natural"
      });
    
      for (const image of results.data) {
        console.log(`Image generation result URL: ${image.url}`);
      }
    }
    
    main().catch((err) => {
      console.error("The sample encountered an error:", err);
    });
    
  2. Cree el archivo tsconfig.json para transpilar el código TypeScript y copie el código siguiente para ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Transpile de TypeScript a JavaScript.

    tsc
    
  4. Inicie sesión en Azure con el siguiente comando:

    az login
    
  5. Ejecute el código con el siguiente comando:

    node index.js
    

Salida

La dirección URL de la imagen generada se imprime en la consola.

== Batch Image Generation ==
Image generation result URL: <SAS URL>
Image generation result URL: <SAS URL>

Nota:

Las API de imagen incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para Go.

Código fuente de la biblioteca | Paquete | Ejemplos

Prerrequisitos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.

Configuración

  1. Cree una nueva carpeta dall-e-quickstart y vaya a la carpeta quickstart mediante el siguiente comando:

    mkdir dall-e-quickstart && cd dall-e-quickstart
    
  2. Para la autenticación sin clave recomendada con Microsoft Entra ID, inicie sesión en Azure con el siguiente comando:

    az login
    

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Importancia
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y Punto de Conexión al examinar su recurso desde el portal de Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Ejecución del inicio rápido

En este inicio rápido, el código de ejemplo usa Microsoft Entra ID para la autenticación sin clave recomendada. Si prefiere usar una clave de API, puede reemplazar la NewDefaultAzureCredential implementación por NewKeyCredential.

azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)

Para ejecutar el ejemplo:

  1. Cree un archivo denominado quickstart.go. Copie el código siguiente en el archivo quickstart.go .

     package main
    
    import (
    	"context"
    	"fmt"
    	"net/http"
    	"os"
    	"log"
    
    	"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
    	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
    	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
    )
    
    func main() {
    	azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
    	modelDeploymentID := "dall-e-3"
    
    	credential, err := azidentity.NewDefaultAzureCredential(nil)
    	if err != nil {
    		log.Printf("ERROR: %s", err)
    		return
    	}
    
    	client, err := azopenai.NewClient(
    		azureOpenAIEndpoint, credential, nil)
    	if err != nil {
    		log.Printf("ERROR: %s", err)
    		return
    	}
    
    	resp, err := client.GetImageGenerations(context.TODO(), azopenai.ImageGenerationOptions{
    		Prompt:         to.Ptr("A painting of a cat in the style of Dali."),
    		ResponseFormat: to.Ptr(azopenai.ImageGenerationResponseFormatURL),
    		DeploymentName: to.Ptr(modelDeploymentID),
    	}, nil)
    
    	if err != nil {
    		// Implement application specific error handling logic.
    		log.Printf("ERROR: %s", err)
    		return
    	}
    
    	for _, generatedImage := range resp.Data {
    		// The underlying type for the generatedImage is determined by the value of
    		// ImageGenerationOptions.ResponseFormat. 
    		// In this example we use `azopenai.ImageGenerationResponseFormatURL`,
    		// so the underlying type will be ImageLocation.
    
    		resp, err := http.Head(*generatedImage.URL)
    
    		if err != nil {
    			// Implement application specific error handling logic.
    			log.Printf("ERROR: %s", err)
    			return
    		}
    
    		fmt.Fprintf(os.Stderr, "Image generated, HEAD request on URL returned %d\nImage URL: %s\n", resp.StatusCode, *generatedImage.URL)
    	}
    }
    
  2. Ejecute el siguiente comando para crear un nuevo módulo de Go:

     go mod init quickstart.go
    
  3. Ejecute go mod tidy para instalar las dependencias necesarias:

    go mod tidy
    
  4. Ejecute el siguiente comando para ejecutar el ejemplo:

     go run quickstart.go
    

Salida

La dirección URL de la imagen generada se imprime en la consola.

Image generated, HEAD request on URL returned 200
Image URL: <SAS URL>

Nota:

Las API de imagen incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Use esta guía para empezar a llamar a azure OpenAI en las API de generación de imágenes de modelos de Microsoft Foundry con PowerShell.

Prerrequisitos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Importancia
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y Punto de Conexión al examinar su recurso desde el portal de Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Generar imágenes

  1. Para la autenticación sin clave recomendada con Microsoft Entra ID, inicie sesión en Azure con el siguiente comando:

    az login
    
  2. Obtenga un token de autenticación de Azure OpenAI y establézcalo como una variable de entorno para la sesión actual de PowerShell:

    $Env:DEFAULT_AZURE_CREDENTIAL_TOKEN = az account get-access-token --resource https://cognitiveservices.azure.com --query accessToken -o tsv
    
  3. Cree un nuevo archivo de PowerShell denominado quickstart.ps1. A continuación, ábralo en tu editor o IDE preferido.

  4. Reemplace el contenido de quickstart.ps1 por el código siguiente. Asegúrese de que AZURE_OPENAI_ENDPOINT está configurado y cambie el valor de prompt a su texto preferido.

    Para usar la autenticación con clave API en lugar de autenticación sin clave, establezca AZURE_OPENAI_API_KEY y descomente la línea 'api-key'.

     # Azure OpenAI metadata variables
     $openai = @{
         api_base    = $Env:AZURE_OPENAI_ENDPOINT 
         api_version = '2023-06-01-preview' # This can change in the future.
     }
    
     # Use the recommended keyless authentication via bearer token.
     $headers = [ordered]@{
         #'api-key' = $Env:AZURE_OPENAI_API_KEY
         'Authorization' = "Bearer $($Env:DEFAULT_AZURE_CREDENTIAL_TOKEN)"
     }
    
     # Text to describe image
     $prompt = 'A painting of a dog'
    
     # Adjust these values to fine-tune completions
     $body = [ordered]@{
         prompt = $prompt
         size   = '1024x1024'
         n      = 1
     } | ConvertTo-Json
    
     # Call the API to generate the image and retrieve the response
     $url = "$($openai.api_base)/openai/images/generations:submit?api-version=$($openai.api_version)"
    
     $submission = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json' -ResponseHeadersVariable submissionHeaders
    
     $operation_location = $submissionHeaders['operation-location'][0]
     $status = ''
     while ($status -ne 'succeeded') {
         Start-Sleep -Seconds 1
         $response = Invoke-RestMethod -Uri $operation_location -Headers $headers
         $status   = $response.status
     }
    
     # Set the directory for the stored image
     $image_dir = Join-Path -Path $pwd -ChildPath 'images'
    
     # If the directory doesn't exist, create it
     if (-not(Resolve-Path $image_dir -ErrorAction Ignore)) {
         New-Item -Path $image_dir -ItemType Directory
     }
    
     # Initialize the image path (note the filetype should be png)
     $image_path = Join-Path -Path $image_dir -ChildPath 'generated_image.png'
    
     # Retrieve the generated image
     $image_url = $response.result.data[0].url  # extract image URL from response
     $generated_image = Invoke-WebRequest -Uri $image_url -OutFile $image_path  # download the image
     return $image_path
    

    Importante

    En entornos de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como PowerShell Secret Management con Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte este artículo de seguridad .

  5. Ejecute el script con PowerShell:

    ./quickstart.ps1
    

    El script estará en bucle hasta que la imagen generada esté lista.

Salida

PowerShell solicita la imagen de Azure OpenAI y almacena la imagen de salida en el archivo generated_image.png en el directorio especificado. Para mayor comodidad, se devuelve la ruta de acceso completa del archivo al final del script.

Las API de imagen incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no genera una imagen. Para obtener más información, consulte Filtrado de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Use esta guía para empezar a generar imágenes con Azure OpenAI en el explorador con Microsoft Foundry.

Prerrequisitos

Ir a Foundry

Vaya a Foundry e inicie sesión con las credenciales asociadas al recurso de Azure OpenAI. Durante o después del flujo de trabajo de inicio de sesión, seleccione el directorio, la suscripción de Azure y el recurso de Azure OpenAI adecuados.

En la página de aterrizaje de Foundry, cree o seleccione un nuevo proyecto. Vaya a la página Modelos y puntos de conexión de la barra de navegación izquierda. Seleccione Implementar modelo y elija uno de los modelos DALL-E de la lista. Complete el proceso de implementación.

En la página del modelo, seleccione Abrir en el área de juegos.

Prueba de la generación de imágenes

Comience a explorar las capacidades de Azure OpenAI con un enfoque sin código a través del Images playground. Ingrese su indicador de imagen en el cuadro de texto y seleccione Generar. Cuando la imagen generada por IA esté lista, aparecerá en la página.

Nota:

Las API de imagen incluyen un filtro de moderación de contenido. Si Azure OpenAI reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para obtener más información, consulte Filtrado de contenido.

En el área de juegos de imágenes, también puede ver ejemplos de código de Python y cURL, que se rellenan previamente según la configuración. Seleccione Ver código cerca de la parte superior de la página. Puede usar este código para escribir una aplicación que complete la misma tarea.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Cuotas y límites

La generación de imágenes tiene límites de velocidad predeterminados por implementación:

Modelo Cuota predeterminada (imágenes/min)
DALL-E 3 2
Serie GPT-image-1 5

Para ver la cuota actual o solicitar un aumento, consulte Administración de cuotas de Azure OpenAI.

Llamada a la API de generación de imágenes

El siguiente comando muestra la manera más básica de usar un modelo de imagen con código. Si esta es la primera vez que usa estos modelos mediante programación, comience con el inicio rápido.

Sugerencia

La generación de imágenes suele tardar entre 10 y 30 segundos en función del modelo, el tamaño y la configuración de calidad.

Prerrequisitos

Envíe una solicitud POST a:

https://<your_resource_name>.openai.azure.com/openai/deployments/<your_deployment_name>/images/generations?api-version=<api_version>

URL:

Reemplace los siguientes valores:

  • <your_resource_name> es el nombre del recurso de Azure OpenAI.
  • <your_deployment_name> es el nombre de la implementación del modelo de la serie GPT-image-1.
  • <api_version> es la versión de la API que desea usar. Por ejemplo: 2025-04-01-preview.

Encabezados obligatorios:

  • Content-Type: application/json
  • api-key: <your_API_key>

Body:

A continuación se muestra un cuerpo de solicitud de ejemplo. Especifique una serie de opciones, definidas en secciones posteriores.

{
    "prompt": "A multi-colored umbrella on the beach, disposable camera",
    "model": "gpt-image-1.5",
    "size": "1024x1024", 
    "n": 1,
    "quality": "high"
}

Sugerencia

Para conocer los costos de los tokens de generación de imágenes, consulte Tokens de imagen.

Salida

La respuesta de una llamada API de generación de imágenes correcta es similar al ejemplo siguiente. El b64_json campo contiene los datos de la imagen de salida.

{ 
    "created": 1698116662, 
    "data": [ 
        { 
            "b64_json": "<base64 image data>"
        }
    ]
} 

Nota:

El response_format parámetro no se admite para los modelos de la serie GPT-image-1, que siempre devuelven imágenes codificadas en base64.

Transmisión en línea

Streaming le permite recibir imágenes parciales a medida que se generan, lo que proporciona comentarios visuales más rápidos para los usuarios. Esto es útil para las aplicaciones en las que desea mostrar el progreso de la generación. El partial_images parámetro (1-3) controla el número de imágenes intermedias que se devuelven antes del resultado final.

Puede transmitir solicitudes de generación de imágenes a los modelos de la serie gpt-image-1 estableciendo el parámetro stream a true, y estableciendo el parámetro partial_images a un valor entre 0 y 3.

import base64
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)

client = OpenAI(  
  base_url = "https://RESOURCE-NAME-HERE/openai/v1/",  
  api_key=token_provider,
  default_headers={"api_version":"preview"}
)

stream = client.images.generate(
    model="gpt-image-1.5",
    prompt="A cute baby sea otter",
    n=1,
    size="1024x1024",
    stream=True,
    partial_images = 2
)

for event in stream:
    if event.type == "image_generation.partial_image":
        idx = event.partial_image_index
        image_base64 = event.b64_json
        image_bytes = base64.b64decode(image_base64)
        with open(f"river{idx}.png", "wb") as f:
            f.write(image_bytes)
 

Especificar opciones de API

Los siguientes parámetros del cuerpo de la API están disponibles para los modelos de generación de imágenes.

Tamaño

Especifique el tamaño de las imágenes generadas. Debe ser uno de 1024x1024, 1024x1536, o 1536x1024 para los modelos de la serie GPT-image-1. Las imágenes cuadradas son más rápidas de generar.

Calidad

Hay tres opciones para la calidad de la imagen: low, medium y high. Las imágenes de menor calidad se pueden generar más rápido.

El valor predeterminado es high.

Número

Puede generar entre una y 10 imágenes en una sola llamada API. El valor predeterminado es 1.

Id. de usuario

Use el parámetro user para especificar un identificador único para el usuario que realiza la solicitud. Este identificador es útil para el seguimiento y la supervisión de patrones de uso. El valor puede ser cualquier cadena, como un identificador de usuario o una dirección de correo electrónico.

Formato de salida

Use el parámetro output_format para especificar el formato de la imagen generada. Los formatos admitidos son PNG y JPEG. El valor predeterminado es PNG.

Nota:

Las imágenes WEBP no se admiten en Azure OpenAI en los modelos de Microsoft Foundry.

Compresión

Use el parámetro output_compression para especificar el nivel de compresión de la imagen generada. Escriba un número entero entre 0 y 100, donde 0 indica sin compresión y 100 representa la compresión máxima. El valor predeterminado es 100.

Transmisión en línea

Use el parámetro stream para habilitar las respuestas de streaming. Cuando se establece en true, la API devuelve imágenes parciales a medida que se generan. Esta característica proporciona comentarios visuales más rápidos para los usuarios y mejora la latencia percibida. Establezca el parámetro partial_images para controlar cuántas imágenes parciales se generan (1-3).

Transparencia

Establezca el parámetro background en transparent y output_format en PNG en una solicitud de generación de imagen para obtener una imagen con un fondo transparente.

Llamada a la API de edición de imágenes

La API de edición de imágenes permite modificar las imágenes existentes en función de las indicaciones de texto que proporcione. La llamada API es similar a la llamada API de generación de imágenes, pero también debe proporcionar una imagen de entrada.

Importante

La imagen de entrada debe tener un tamaño inferior a 50 MB y debe ser un archivo PNG o JPG.

Envíe una solicitud POST a:

https://<your_resource_name>.openai.azure.com/openai/deployments/<your_deployment_name>/images/edits?api-version=<api_version>

URL:

Reemplace los siguientes valores:

  • <your_resource_name> es el nombre del recurso de Azure OpenAI.
  • <your_deployment_name> es el nombre de la implementación del modelo de la serie GPT-image-1.
  • <api_version> es la versión de la API que desea usar. Por ejemplo: 2025-04-01-preview.

Encabezados obligatorios:

  • Content-Type: multipart/form-data
  • api-key: <your_API_key>

Body:

A continuación se muestra un cuerpo de solicitud de ejemplo. Especifique una serie de opciones, definidas en secciones posteriores.

Importante

Image Edit API toma datos de varias partes o formularios, no datos JSON. En el ejemplo siguiente se muestran datos de formulario de ejemplo que se adjuntarían a una solicitud cURL.

-F "image[]=@beach.png" \
-F 'prompt=Add a beach ball in the center' \
-F "model=gpt-image-1" \
-F "size=1024x1024" \
-F "n=1" \
-F "quality=high"

Salida de respuesta de API

La respuesta de una llamada API de edición de imágenes correcta es similar al ejemplo siguiente. El b64_json campo contiene los datos de la imagen de salida.

{ 
    "created": 1698116662, 
    "data": [ 
        { 
            "b64_json": "<base64 image data>"
        }
    ]
} 

Especificación de las opciones de la API de edición de imágenes

Los siguientes parámetros del cuerpo de la API están disponibles para los modelos de edición de imágenes, además de los disponibles para los modelos de generación de imágenes.

Imagen

El valor de imagen indica el archivo de imagen que desea editar.

Fidelidad de la entrada

El parámetro input_fidelity controla cuánto esfuerzo pone el modelo en coincidir con el estilo y las características, especialmente las características faciales, de las imágenes de entrada.

Este parámetro permite realizar modificaciones sutiles en una imagen sin cambiar las áreas no relacionadas. Cuando se usa una alta fidelidad de entrada, las caras se conservan con más precisión que en el modo estándar.

Importante

El modelo gpt-image-1-mini no admite la fidelidad de entrada.

Máscara

El parámetro mask usa el mismo tipo que el parámetro de entrada de image principal. Define el área de la imagen que desea que el modelo edite, utilizando píxeles totalmente transparentes (alfa de cero) en esas áreas. La máscara debe ser un archivo PNG y tener las mismas dimensiones que la imagen de entrada.

Transmisión en línea

Use el parámetro stream para habilitar las respuestas de streaming. Cuando se establece en true, la API devuelve imágenes parciales a medida que se generan. Esta característica proporciona comentarios visuales más rápidos para los usuarios y mejora la latencia percibida. Establezca el parámetro partial_images para controlar cuántas imágenes parciales se generan (1-3).

Transparencia

Establezca el parámetro background en transparent y output_format en PNG en una solicitud de generación de imagen para obtener una imagen con un fondo transparente.

Escribir indicaciones de texto a imagen efectivas

Las indicaciones deben describir el contenido que desea ver en la imagen y el estilo visual de la imagen.

Al escribir mensajes, tenga en cuenta que las API de imagen incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no genera una imagen. Para obtener más información, consulte Filtrado de contenido.

Sugerencia

Para obtener una visión exhaustiva de cómo puede ajustar los mensajes de texto para generar diferentes tipos de imágenes, consulte la guía de ingeniería de mensajes de imagen.

Generación de imágenes e inteligencia artificial responsable

Los modelos de generación de imágenes de Azure OpenAI incluyen protecciones integradas de inteligencia artificial responsable (RAI) para ayudar a garantizar un uso seguro y compatible.

Además, Azure proporciona moderación de entrada y salida en todos los modelos de generación de imágenes, junto con medidas de seguridad específicas de Azure, como el filtrado de contenido y la supervisión de abusos. Estos sistemas ayudan a detectar y evitar la generación o el uso indebido de contenido dañino, no seguro o que infringe la directiva.

Los clientes pueden obtener más información sobre estas medidas de seguridad y cómo personalizarlas aquí:

Consideraciones especiales para generar imágenes de menores

Las imágenes fotorealistas de menores están bloqueadas de forma predeterminada. Los clientes pueden solicitar acceso a esta funcionalidad del modelo. Los clientes de nivel empresarial se aprueban automáticamente.

Solución de problemas

Rechazo de llamadas API

Las indicaciones e imágenes se filtran en función de nuestra directiva de contenido. La API devuelve un error cuando se marca una indicación o una imagen.

Si la solicitud está marcada el valor error.code del mensaje se establece en contentFilter. Este es un ejemplo:

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Your task failed as a result of our safety system."
    }
}

También es posible que se filtre la propia imagen generada. En este caso, el mensaje de error se establece en Imagen generada se filtre como resultado de nuestro sistema de seguridad. Este es un ejemplo:

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Generated image was filtered as a result of our safety system."
    }
}

Errores de límite de tasa

Si recibe un error 429, ha superado el límite de velocidad. Espere antes de reintentar o solicitar un aumento de cuota en Azure Portal.

Errores de autenticación

Si recibe un error 401:

  • Autenticación de clave de API: compruebe que la clave de API es correcta y no ha expirado.
  • Identidad administrada: asegúrese de que la identidad tiene el rol de Usuario de OpenAI de Cognitive Services en el recurso.

Errores de tiempo de espera

La generación de imágenes puede tardar hasta 60 segundos en avisos complejos. Si experimenta agotamientos de tiempos de espera:

  • Utiliza el streaming para obtener resultados parciales más pronto.
  • Simplifique la solicitud.
  • Pruebe un tamaño de imagen más pequeño.