Implementación y uso de modelos FLUX en Microsoft Foundry

Los modelos flux de Black Forest Labs (BFL) aportan generación de imágenes de última generación a Microsoft Foundry, lo que le permite generar y editar imágenes de alta calidad a partir de mensajes de texto e imágenes de referencia. En este artículo, aprenderá a:

  • Implementación de modelos FLUX en Microsoft Foundry
  • Autenticación mediante claves de API o Microsoft Entra ID
  • Generación de imágenes mediante la API específica del proveedor BFL o Image API
  • Editar imágenes mediante la combinación de mensajes de texto con imágenes de referencia
  • Elección del modelo FLUX adecuado para su caso de uso

Los modelos FLUX están optimizados para el fotorealismo, la fidelidad rápida y el control compositivo, lo que las convierte en adecuadas para aplicaciones creativas, de comercio electrónico, multimedia y centradas en el diseño. Admiten una amplia gama de funcionalidades, como la generación de texto a imagen, la edición de imágenes de varias referencias y la generación y edición en contexto.

Los modelos FLUX de Foundry incluyen:

Id. de modelo Nombre del modelo Funcionalidades clave
FLUX.2-flex FLUX.2 [flex] Generación de texto a imagen; edición de imágenes de varias referencias con hasta 10 imágenes de referencia
FLUX.2-pro FLUX.2 [pro] Generación de texto a imagen; edición de imágenes de varias referencias con hasta ocho imágenes de referencia
FLUX.1-Kontext-pro FLUX.1 Kontext [pro] Generación y edición en contexto; Coherencia de caracteres
FLUX-1.1-pro FLUX1.1 [pro] Generación rápida de texto a imagen

Para obtener más información sobre cada modelo, consulte Modelos de FLUX disponibles.

Requisitos previos

  • Una suscripción Azure con un método de pago válido. Si no tiene una suscripción de Azure, cree un cuenta de Azure de pago.
  • Acceso a Microsoft Foundry con los permisos adecuados para crear y administrar recursos.
  • Un proyecto Microsoft Foundry. Los modelos FLUX están disponibles para la implementación estándar global en todas las regiones.
  • Cognitive Services Contributor rol en el recurso de Fundición de IA de Azure para implementar modelos. Para obtener más información, consulte Roles de RBAC de Azure.

Implementación de modelos FLUX

Los modelos FLUX están disponibles para la implementación estándar global en todas las regiones. Para implementar un modelo FLUX, siga las instrucciones de Deploy Microsoft Foundry Models en el portal de Foundry.

Después de la implementación, use el área de juegos de Foundry para probar interactivamente el modelo con mensajes de texto.

Nota

La compatibilidad con varias imágenes de referencia está disponible para FLUX.2 [pro] y FLUX.2 [flex] a través de la API, pero no en el entorno de prueba.

Introducción a la generación de imágenes con modelos FLUX

Después de implementar un modelo FLUX, use la API específica del proveedor BFL o image API para generar imágenes:

  • API específica del proveedor BFL: admite todos los modelos FLUX y proporciona acceso a parámetros adicionales, como guidance, steps, seed, aspect_ratio, safety_tolerancey output_format. Usa esta ruta para un control detallado sobre la generación.
  • Image API: un punto de conexión compatible con OpenAI disponible para FLUX.1-Kontext-pro y FLUX-1.1-pro. Use esta ruta si la aplicación ya usa la API de imágenes de OpenAI de Azure.

Para autenticarse, necesita el punto de conexión del recurso y un token de Microsoft Entra ID o una clave API. Puede encontrar estos valores en la sección Keys y Endpoint del recurso en el portal de Azure o en la página de detalles de implementación del portal Foundry.

Uso de la API BFL con modelos FLUX

El punto de conexión de API específico del proveedor BFL tiene el siguiente formato:

https://<resource-name>.api.cognitive.microsoft.com/providers/blackforestlabs/v1/<model-path>?api-version=preview

Para cada modelo, reemplace la ruta del modelo <model-path> en el punto de conexión como se indica a continuación:

Importante

El identificador del modelo y <model-path> no son idénticos. Asegúrese de usar la ruta de acceso del modelo en la dirección URL del punto de conexión.

Modelo Ruta del modelo
FLUX.2 [flex] flux-2-flex
FLUX.2 [pro] flux-2-pro
FLUX.1 Kontext [pro] flux-kontext-pro
FLUX1.1 [pro] flux-pro-1.1

Generación de imágenes (texto a imagen)

En los ejemplos siguientes se usa FLUX.2 [pro] para generar una imagen a partir de un mensaje de texto. Para obtener un ejemplo específico de FLUX.2 [flex]con sus parámetros adicionales (guidance, steps), vea FLUX.2 [flex].

Uso de la autenticación de clave de API

  1. Instale la requests biblioteca:

    pip install requests
    
  2. Establecer variables de entorno:

    export AZURE_ENDPOINT="https://<resource-name>.api.cognitive.microsoft.com"
    export AZURE_API_KEY="<your-api-key>"
    
  3. Ejecute el código siguiente:

    import os
    import requests
    
    endpoint = os.environ["AZURE_ENDPOINT"]
    api_key = os.environ["AZURE_API_KEY"]
    
    url = f"{endpoint}/providers/blackforestlabs/v1/flux-2-pro?api-version=preview"
    
    payload = {
        "model": "FLUX.2-pro",
        "prompt": "A photograph of a red fox in an autumn forest",
        "width": 1024,
        "height": 1024,
        "output_format": "jpeg",
        "num_images": 1,
    }
    
    response = requests.post(
        url,
        headers={
            "Content-Type": "application/json",
            "Authorization": f"Bearer {api_key}",
        },
        json=payload,
    )
    response.raise_for_status()
    
    result = response.json()
    print(result)
    

    Salida esperada: Una respuesta JSON que contiene una dirección URL o datos de imagen codificados en base64 para la imagen generada.

    Reference:BFL FLUX.2 text-to-image API

Uso de la autenticación de Microsoft Entra ID

Para usar Microsoft Entra ID en lugar de una clave de API, reemplace el valor de encabezado Authorization por un token de portador obtenido mediante el DefaultAzureCredential:

  1. Instalar la biblioteca de identidades de Azure:

    pip install azure-identity
    
  2. Actualice el encabezado de autorización en el código anterior:

    from azure.identity import DefaultAzureCredential, get_bearer_token_provider
    
    token_provider = get_bearer_token_provider(
        DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
    )
    token = token_provider()
    
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {token}",
    }
    

    Reference:DefaultAzureCredential

Edición de imágenes con imágenes de referencia (modelos FLUX.2)

FLUX.2 [pro] y FLUX.2 [flex] admiten la edición de imágenes de varias referencias, lo que le permite pasar varias imágenes codificadas en base64 junto con un mensaje de texto. El modelo aplica cambios de estilo o contenido en todas las imágenes de referencia.

  • FLUX.2 [pro]: Hasta ocho imágenes de referencia
  • FLUX.2 [flex]: Hasta 10 imágenes de referencia
import os
import base64
import requests

endpoint = os.environ["AZURE_ENDPOINT"]
api_key = os.environ["AZURE_API_KEY"]

url = f"{endpoint}/providers/blackforestlabs/v1/flux-2-pro?api-version=preview"

# Load and encode reference images
def encode_image(path: str) -> str:
    with open(path, "rb") as f:
        return base64.b64encode(f.read()).decode("utf-8")

payload = {
    "model": "FLUX.2-pro",
    "prompt": "Apply a cinematic, moody lighting effect to all photos. Make them look like scenes from a sci-fi noir film",
    "output_format": "jpeg",
    "input_image": encode_image("image1.jpg"),
    "input_image_2": encode_image("image2.jpg"),
}

response = requests.post(
    url,
    headers={
        "Content-Type": "application/json",
        "Authorization": f"Bearer {api_key}",
    },
    json=payload,
)
response.raise_for_status()

result = response.json()
print(result)

Salida esperada: Una respuesta JSON que contiene una dirección URL o una imagen codificada en base64 que refleja el estilo cinemático aplicado a las imágenes de entrada.

Reference:BFL FLUX.2 text-to-image API

Uso de Image API con modelos FLUX

FLUX.1-Kontext-pro y FLUX-1.1-pro también están disponibles a través de Image API, que usa el mismo formato de punto de conexión que la API de imágenes de OpenAI de Azure. El punto de conexión de Image API tiene el siguiente formato:

https://<resource-name>.services.ai.azure.com/openai/v1/images/generations?api-version=preview

Para la edición de imágenes (generación en contexto), FLUX.1-Kontext-pro también admite:

https://<resource-name>.services.ai.azure.com/openai/v1/images/edits?api-version=preview

Generación de imágenes (texto a imagen)

  1. Instale la biblioteca de OpenAI:

    pip install openai
    
  2. Establecer variables de entorno:

    export AZURE_ENDPOINT="https://<resource-name>.services.ai.azure.com"
    export AZURE_API_KEY="<your-api-key>"
    export DEPLOYMENT_NAME="<your-deployment-name>"
    
  3. Ejecute el código siguiente:

    import os
    from openai import OpenAI
    
    client = OpenAI(
        base_url=os.environ["AZURE_ENDPOINT"] + "/openai",
        api_key=os.environ["AZURE_API_KEY"],
        default_query={"api-version": "preview"},
    )
    
    result = client.images.generate(
        model=os.environ["DEPLOYMENT_NAME"],
        prompt="A photograph of a red fox in an autumn forest",
        n=1,
        size="1024x1024",
    )
    
    print(result.data[0].url)
    

    Salida esperada: Dirección URL de la imagen generada.

    Referencia:Cliente de Python de OpenAI, Generación de imágenes - Crear

Edición de imágenes con Image API (FLUX.1 Kontext [pro])

FLUX.1-Kontext-pro también es compatible con el punto de conexión images/edits, que le permite pasar una imagen de referencia junto con un mensaje de texto para la edición en contexto.

import os
from openai import OpenAI

client = OpenAI(
    base_url=os.environ["AZURE_ENDPOINT"] + "/openai",
    api_key=os.environ["AZURE_API_KEY"],
    default_query={"api-version": "preview"},
)

with open("reference.jpg", "rb") as image_file:
    result = client.images.edit(
        model=os.environ["DEPLOYMENT_NAME"],
        image=image_file,
        prompt="Change the background to a sunset over the ocean",
        n=1,
        size="1024x1024",
    )

print(result.data[0].url)

Salida esperada: Dirección URL de la imagen editada con el nuevo fondo.

Reference:OpenAI Python client, Image generations - Edit

Modelos de FLUX disponibles

Consulte la colección de modelos de Black Forest Labs en el portal de Foundry para ver los modelos disponibles.

Para obtener más información sobre las funcionalidades del modelo, consulte Foundry Models sold by Azure.

FLUX.2 [flex]

FLUX.2 [flex] (FLUX.2-flex) ofrece un control detallado con un rendimiento más estable: el rendimiento se degrada de manera más gradual a medida que aumenta el tamaño de la imagen. Es más adecuado para diseños e imágenes pesados de texto que requieren superposición de texto o conservación de detalles finos. Acepta la entrada de texto e imagen (32 000 tokens y hasta 10 imágenes) y genera una imagen en formato PNG o JPG. La resolución máxima de salida es de 4 MP.

Parámetros adicionales (solo API del proveedor BFL):

Parámetro Descripción
guidance Controla el modo en que la salida sigue la solicitud. Intervalo: 1,5–10, valor predeterminado: 4,5. Los valores más altos aumentan la adhesión rápida.
steps Número de pasos de inferencia. Máximo: 50, valor predeterminado: 50. Los valores más altos generan más detalles, pero son más lentos.

En el ejemplo siguiente se muestra una solicitud específica de FLUX.2 [flex] para la generación de imágenes mediante los parámetros guidance y steps.

curl -X POST https://<your-resource-name>.api.cognitive.microsoft.com/providers/blackforestlabs/v1/flux-2-flex?api-version=preview \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {API_KEY}" \
  -d '{
      "model": "FLUX.2-flex",
      "prompt": "A photograph of a red fox in an autumn forest",
      "width": 1024,
      "height": 1024,
      "seed": 42,
      "safety_tolerance": 2,
      "output_format": "jpeg",
      "guidance": 1.5,
      "steps": 10
    }'

Salida esperada: Una respuesta JSON que contiene una dirección URL o datos de imagen codificados en base64 para la imagen generada.

FLUX.2 [pro]

FLUX.2 [pro] (FLUX.2-pro) ofrece una calidad de imagen de última generación a velocidad máxima, lo que lo convierte en la mejor opción para cargas de trabajo de producción a escala. Tenga en cuenta que muestra tiempos de respuesta más altos en comparación con FLUX.1 Kontext [pro] y FLUX.2 [flex] y el rendimiento disminuye en resoluciones más altas. Acepta la entrada de texto e imagen (32 000 tokens y hasta ocho imágenes) y genera una imagen en formato PNG o JPG. La resolución máxima de salida es de 4 MP.

La API del proveedor BFL admite todos los parámetros para FLUX.2 [pro], incluidos guidance, steps, seed, aspect_ratio, safety_tolerance, y output_format.

FLUX.1 Kontext [pro]

FLUX.1 Kontext [pro] (FLUX.1-Kontext-pro) se especializa en la generación y edición en contexto, manteniendo una fuerte coherencia de personajes en todas las ediciones. Acepta la entrada de texto e imagen (5000 tokens y 1 imagen) y genera una imagen en formato PNG o JPG. La resolución máxima de salida es de 1 MP.

FLUX.1 Kontext [pro] está disponible a través de la API del proveedor BFL y image API (images/generations y images/edits).

Parámetros adicionales (solo API del proveedor BFL):seed, aspect_ratio, input_imageprompt_unsampling, , safety_tolerance, output_format.

FLUX1.1 [pro]

FLUX1.1 [pro] (FLUX-1.1-pro) ofrece una generación rápida de texto a imagen con una fuerte adhesión rápida, precios competitivos y generación escalable. Acepta la entrada de texto (5000 tokens) y genera una imagen en formato PNG o JPG. La resolución máxima de salida es de 1,6 MP.

FLUX1.1 [pro] está disponible a través de la API del proveedor BFL y la API de Imagen (images/generations).

Parámetros adicionales (solo API del proveedor BFL):width, height, prompt_unsamplingseed, , safety_tolerance, output_format.

Límites y cuotas de API

Los modelos FLUX de Foundry tienen los siguientes límites de velocidad medidos en Solicitudes por minuto (RPM). El nivel disponible depende de la configuración de suscripción e implementación.

Modelo Nivel Solicitudes por minuto (RPM)
FLUX.2 [pro] Bajo 15
FLUX.2 [pro] Medio 30
FLUX.2 [pro] Alto 100
FLUX.2 [flex] Bajo 5
FLUX.2 [flex] Medio 10
FLUX.2 [flex] Alto 25
FLUX.1 Kontext [pro] Valor predeterminado 6
FLUX1.1 [pro] Valor predeterminado 6

Para solicitar un aumento de cuota, envíe el formulario de solicitud de aumento de cuota. Las solicitudes se procesan en el orden en que se reciben y la prioridad va a los clientes que usan activamente su asignación de cuota existente.

Consideraciones de inteligencia artificial responsable

Al usar modelos FLUX en Foundry, tenga en cuenta estas prácticas de inteligencia artificial responsables:

  • Configure la seguridad del contenido de IA durante la inferencia del modelo, ya que Foundry no proporciona un filtrado de contenido integrado para los modelos FLUX en el momento del despliegue.
  • Asegúrese de que el uso de imágenes generadas cumple los términos de servicio de Black Forest Labs y las leyes de propiedad intelectual y derechos de autor aplicables.
  • Sea transparente sobre el contenido generado por ia al compartir o publicar imágenes.
  • Evite generar contenido que pueda ser perjudicial, engañoso o infringir la privacidad.

Ejemplos de código y cuadernos

Consulte el ejemplo de GitHub para la generación de imágenes con modelos FLUX en Microsoft Foundry y su Jupyter notebook asociado para ver ejemplos completos de cómo crear imágenes de alta calidad a partir de indicaciones de texto.