Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
- Una suscripción a Azure. cree una de forma gratuita.
- Python 3.8 o una versión posterior.
- Las siguientes bibliotecas de Python instaladas:
os,requests,json. - Un recurso de Azure OpenAI creado en una región admitida. Consulte Disponibilidad de la región.
- A continuación, debe implementar un modelo de la serie
gpt-image-1odalle3con el recurso de Azure. 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 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.
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.
Reemplace el contenido de quickstart.py por el siguiente código. Cambie el valor de
prompta su texto preferido. Establece tambiéndeploymenten 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.
Ejecute la aplicación con el comando
python:python quickstart.pyEspere 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
datacon al menos un objeto de imagen - un
url(vínculo temporal válido durante 24 horas) ob64_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
- Una suscripción a Azure. cree una de forma gratuita.
- Python 3.8 o una versión posterior.
- Un recurso de Azure OpenAI creado en una región compatible. Consulte Disponibilidad de la región.
- Acceda al punto de conexión y las claves del recurso de Azure OpenAI en Azure Portal.
- Un modelo de generación de imágenes implementado:
-
DALL-E 3: Implementar un
dalle3modelo. Disponible con carácter general. -
Serie GPT-image-1: implemente un
gpt-image-1modelo. Requiere un registro de acceso limitado.
-
DALL-E 3: Implementar un
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.
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()
- Asegúrese de que se establecen las
AZURE_OPENAI_ENDPOINTvariables de entorno yAZURE_OPENAI_API_KEY. - Cambie el valor de
prompta su texto preferido. - Cambie el valor de
modelpor 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
datacon al menos un objeto de imagen - un
url(vínculo temporal válido durante 24 horas) ob64_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
- Una suscripción de Azure: cree una gratuitamente.
- SDK de .NET 7
- Un recurso de Azure OpenAI creado en una región admitida (consulte Disponibilidad de la región). Para obtener más información, consulte Creación de un recurso e implementación de un modelo con Azure OpenAI.
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 Usera su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.
Configuración
Cree una nueva carpeta
image-quickstarty vaya a la carpeta quickstart mediante el siguiente comando:mkdir image-quickstart && cd image-quickstartCree una nueva aplicación de consola con el siguiente comando:
dotnet new consoleInstale la biblioteca cliente de OpenAI .NET con el comando dotnet add package:
dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6Para la autenticación sin clave recomendada con Microsoft Entra ID, instale el paquete de Azure.Identity con:
dotnet add package Azure.IdentityPara 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:
Reemplace el contenido de
Program.cspor 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);Ejecute la aplicación mediante el comando
dotnet runo 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
- Una suscripción de Azure: cree una gratuitamente.
- La última versión de Java Development Kit (JDK)
- Instalación de Apache Maven.
- Un recurso de Azure OpenAI creado en una región admitida (consulte Disponibilidad de la región). Para obtener más información, consulte Creación de un recurso e implementación de un modelo con Azure OpenAI.
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 Usera su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.
Configuración
Cree una nueva carpeta
image-quickstarty vaya a la carpeta quickstart mediante el siguiente comando:mkdir image-quickstart && cd image-quickstartInstalación de Apache Maven. A continuación, ejecute
mvn -vpara confirmar que la instalación se ha realizado correctamente.Cree un nuevo archivo
pom.xmlen 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>Instale el SDK y las dependencias de Azure OpenAI.
mvn clean dependency:copy-dependenciesPara 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.
Cree un nuevo archivo denominado Quickstart.java en el mismo directorio raíz del proyecto.
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); } }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
- Una suscripción de Azure: cree una gratuitamente.
- Versiones de LTS de Node.js
- La CLI de Azure se ha usado para la autenticación sin contraseña en un entorno de desarrollo local, cree el contexto necesario iniciando sesión con la CLI de Azure.
- Un recurso de Azure OpenAI creado en una región admitida (consulte Disponibilidad de la región). Para obtener más información, consulte Creación de un recurso e implementación de un modelo con Azure OpenAI.
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 Usera su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.
Configuración
Cree una nueva carpeta
image-quickstarty vaya a la carpeta quickstart mediante el siguiente comando:mkdir image-quickstart && cd image-quickstartCree el
package.jsoncon el comando siguiente:npm init -yInstale la biblioteca cliente de OpenAI para JavaScript con:
npm install openaiPara 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
Cree el archivo
index.jscon 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); });Inicie sesión en Azure con el siguiente comando:
az loginEjecute 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
- Una suscripción de Azure: cree una gratuitamente.
- Versiones de LTS de Node.js
- TypeScript
- La CLI de Azure se ha usado para la autenticación sin contraseña en un entorno de desarrollo local, cree el contexto necesario iniciando sesión con la CLI de Azure.
- Un recurso de Azure OpenAI creado en una región admitida (consulte Disponibilidad de la región). Para obtener más información, consulte Creación de un recurso e implementación de un modelo con Azure OpenAI.
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 Usera su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.
Configuración
Cree una nueva carpeta
image-quickstarty vaya a la carpeta quickstart mediante el siguiente comando:mkdir image-quickstart && cd image-quickstartCree el
package.jsoncon el comando siguiente:npm init -yActualice el
package.jsona ECMAScript con el siguiente comando:npm pkg set type=moduleInstale la biblioteca cliente de OpenAI para JavaScript con:
npm install openaiPara 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
Cree el archivo
index.tscon 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); });Cree el archivo
tsconfig.jsonpara 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"] }Transpile de TypeScript a JavaScript.
tscInicie sesión en Azure con el siguiente comando:
az loginEjecute 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
- Una suscripción de Azure: cree una gratuitamente.
- Go 1.8+
- Un recurso de Azure OpenAI creado en una región admitida (consulte Disponibilidad de la región). Para obtener más información, consulte Creación de un recurso e implementación de un modelo con Azure OpenAI.
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 Usera su cuenta de usuario. Puede asignar roles en el portal de Azure bajo control de acceso (IAM)>Agregar asignación de roles.
Configuración
Cree una nueva carpeta
dall-e-quickstarty vaya a la carpeta quickstart mediante el siguiente comando:mkdir dall-e-quickstart && cd dall-e-quickstartPara 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:
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) } }Ejecute el siguiente comando para crear un nuevo módulo de Go:
go mod init quickstart.goEjecute
go mod tidypara instalar las dependencias necesarias:go mod tidyEjecute 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
- Una suscripción a Azure. cree una de forma gratuita.
- Para esta tarea, se recomienda la versión más reciente de PowerShell 7, ya que los ejemplos usan nuevas características no disponibles en Windows PowerShell 5.1.
- Un recurso de Azure OpenAI creado en una región admitida (consulte Disponibilidad de la región). Para obtener más información, consulte Creación de un recurso e implementación de un modelo con Azure OpenAI.
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 Usera 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
Para la autenticación sin clave recomendada con Microsoft Entra ID, inicie sesión en Azure con el siguiente comando:
az loginObtenga 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 tsvCree un nuevo archivo de PowerShell denominado quickstart.ps1. A continuación, ábralo en tu editor o IDE preferido.
Reemplace el contenido de quickstart.ps1 por el código siguiente. Asegúrese de que
AZURE_OPENAI_ENDPOINTestá configurado y cambie el valor deprompta su texto preferido.Para usar la autenticación con clave API en lugar de autenticación sin clave, establezca
AZURE_OPENAI_API_KEYy 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_pathImportante
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 .
Ejecute el script con PowerShell:
./quickstart.ps1El 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
- Una suscripción a Azure. cree una de forma gratuita.
- Un recurso de Azure OpenAI creado en una región admitida. Consulte Disponibilidad de la región. Para obtener más información, consulte Creación de un recurso e implementación de un modelo con Azure OpenAI.
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
- Una suscripción a Azure. Puede crear una de forma gratuita.
- Un recurso de Azure OpenAI creado en una región admitida. Consulte Disponibilidad de la región.
- Implemente un modelo de la serie
dall-e-3o de la seriegpt-image-1con su recurso de Azure OpenAI. Para más información sobre las implementaciones, consulte Creación de un recurso e implementación de un modelo con Azure OpenAI.- Los modelos de la serie GPT-image-1 son más recientes y presentan una serie de mejoras en DALL-E 3. Están disponibles en acceso limitado: Solicitar acceso a GPT-image-1; Solicitar acceso a GPT-image-1.5.
- Python 3.8 o versiones posteriores.
- Instale los paquetes necesarios:
pip install openai Azure-identity
- Instale los paquetes necesarios:
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í:
- Más información: Exploración del filtrado de contenido
- Personalización de solicitudes: aplicar para no participar en el filtrado de contenido
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.
Contenido relacionado
- Más información sobre los tokens de generación de imágenes