Implementar e utilizar modelos FLUX no Microsoft Foundry

Os modelos FLUX da Black Forest Labs (BFL) trazem geração de imagens de última geração para a Microsoft Foundry, permitindo-lhe gerar e editar imagens de alta qualidade a partir de prompts de texto e imagens de referência. Neste artigo, aprende como:

  • Implementar modelos FLUX no Microsoft Foundry
  • Autentique usando o Microsoft Entra ID ou chaves API
  • Gerar imagens usando a API específica do fornecedor BFL ou a API de Imagem
  • Editar imagens combinando prompts de texto com imagens de referência
  • Escolha o modelo FLUX certo para o seu caso de uso

Os modelos FLUX são otimizados para fotorrealismo, fidelidade aos prompts e controlo composicional, tornando-os particularmente bem adequados para aplicações criativas, de comércio eletrónico, media e design. Suportam uma variedade de funcionalidades, incluindo geração de texto para imagem, edição de imagens com múltiplas referências e geração e edição em contexto.

Os modelos FLUX em Foundry incluem:

ID do modelo Nome do modelo Capacidades-chave
FLUX.2-flex FLUX.2 [flex] Geração de texto para imagem; Edição de imagem multirreferência com até 10 imagens de referência
FLUX.2-pro FLUX.2 [pro] Geração de texto em imagem; Edição de imagem multirreferência com até oito imagens de referência
FLUX.1-Kontext-pro FLUX.1 Kontext [pro] Geração e edição no contexto; consistência de caracteres
FLUX-1.1-pro FLUX1.1 [pro] Geração rápida de texto para imagem

Para saber mais sobre cada modelo, consulte Modelos FLUX disponíveis.

Pré-requisitos

  • Uma subscrição do Azure com um método de pagamento válido. Se não tiver uma subscrição Azure, crie uma conta Azure pago.
  • Acesso ao Microsoft Foundry com as permissões adequadas para criar e gerir recursos.
  • Um projeto Microsoft Foundry. Os modelos FLUX estão disponíveis para implementação de padrões globais em todas as regiões.
  • Contribuidor de Serviços Cognitivos papel no recurso Azure AI Foundry para implementar modelos. Para mais informações, consulte funções de RBAC do Azure.
  • Para FLUX.2 [flex]: Registo aprovado. Use o formulário de inscrição antes de tentar uma missão.

Implementar modelos FLUX

Os modelos FLUX estão disponíveis para implementação de padrões globais em todas as regiões. Para implementar um modelo FLUX, siga as instruções em Deploy Microsoft Foundry Models no portal Foundry.

Após a implementação, use o Foundry Playground para testar interativamente o modelo com prompts de texto.

Nota

O suporte para múltiplas imagens de referência está disponível para FLUX.2 [pro] e FLUX.2 [flex] através da interface de programação da aplicação (API), mas não no playground.

Visão geral da geração de imagens com modelos FLUX

Depois de implementar um modelo FLUX, utilize a API específica do fornecedor BFL ou a API de Imagem para gerar imagens:

  • API específica do fornecedor BFL: Suporta todos os modelos FLUX e fornece acesso a parâmetros adicionais como guidance, steps, seed, aspect_ratio, safety_tolerance, e output_format. Use esta via para um controlo detalhado da geração.
  • API de Imagem: Um endpoint compatível com OpenAI disponível para FLUX.1-Kontext-pro e FLUX-1.1-pro. Use esta via se a sua aplicação já usar a API de imagens do Azure OpenAI.

Para autenticar, precisa do seu endpoint resource e de um token Microsoft Entra ID ou de uma chave API. Pode encontrar estes valores na secção Keys e Endpoint do seu recurso no portal Azure, ou na página de detalhes de implementação no portal Foundry.

Use a API BFL com os modelos FLUX

O endpoint API específico do fornecedor BFL tem a seguinte forma:

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

Para cada modelo, substitua o caminho <model-path> do modelo no ponto final da seguinte forma:

Importante

O ID do modelo e <model-path> não são idênticos. Certifique-se de usar o caminho do modelo na URL do endpoint.

Modelo Caminho do 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

Geração de imagem (texto para imagem)

Os exemplos seguintes usam o FLUX.2 [pro] para gerar uma imagem a partir de um prompt de texto. Para um exemplo específico de FLUX.2 [flex] com os seus parâmetros adicionais (guidance, steps), veja FLUX.2 [flex].

Utilizar autenticação por chave API

  1. Instalar a requests biblioteca:

    pip install requests
    
  2. Definir variáveis do ambiente:

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

    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)
    

    Produção esperada: Uma resposta JSON contendo uma URL ou dados de imagem codificados em base64 para a imagem gerada.

    Referência:API de texto para imagem BFL FLUX.2

Use autenticação Microsoft Entra ID

Para usar Microsoft Entra ID em vez de uma chave API, substitua o valor do cabeçalho Authorization por um token portador obtido usando o DefaultAzureCredential:

  1. Instale a biblioteca Azure Identity:

    pip install azure-identity
    
  2. Atualize o cabeçalho de autorização no 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}",
    }
    

    Referência:DefaultAzureCredential

Edição de imagem com imagens de referência (modelos FLUX.2)

O FLUX.2 [pro] e o FLUX.2 [flex] suportam edição de imagem multirreferencial, que permite passar múltiplas imagens codificadas em base 64 juntamente com um prompt de texto. O modelo aplica alterações estilísticas ou de conteúdo em todas as imagens de referência.

  • FLUX.2 [pro]: Até oito imagens de referência
  • FLUX.2 [flex]: Até 10 imagens de referência
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)

Produção esperada: Uma resposta JSON contendo uma URL ou imagem codificada base64 que reflete o estilo cinematográfico aplicado às imagens de entrada.

Referência:API de texto para imagem BFL FLUX.2

Use a API de Imagem com modelos FLUX

FLUX.1-Kontext-pro e FLUX-1.1-pro também estão disponíveis através da Image API, que utiliza o mesmo formato endpoint da API de imagens da OpenAI Azure. O endpoint da Image API tem a seguinte forma:

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

Para edição de imagem (geração em contexto), FLUX.1-Kontext-pro também suporta:

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

Geração de imagem (texto para imagem)

  1. Instale a biblioteca OpenAI:

    pip install openai
    
  2. Definir variáveis do ambiente:

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

    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)
    

    Produção esperada: Um URL para a imagem gerada.

    Referência:OpenAI Python cliente, Gerações de imagens - Create

Edição de imagem com a API de Imagem (FLUX.1 Kontext [pro])

FLUX.1-Kontext-pro Também suporta o images/edits endpoint, que permite passar uma imagem de referência juntamente com um prompt de texto para edição em 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)

Produção esperada: Um URL para a imagem editada com o novo fundo.

Referência:OpenAI Python cliente, Gerações de imagens - Edit

Modelos FLUX disponíveis

Consulte a coleção de modelos da Black Forest Labs no portal da Foundry para os modelos disponíveis.

Para mais detalhes sobre as capacidades dos modelos, consulte Modelos vendidos diretamente por Azure.

FLUX.2 [flex]

O FLUX.2 [flex] (FLUX.2-flex) oferece um grau de detalhe com uma largura de banda mais estável — a largura de banda se degrada mais suavemente à medida que o tamanho da imagem aumenta. É mais indicado para layouts com muito texto e imagens que requerem sobreposição de texto ou preservação de detalhes finos. Aceita entrada de texto e imagem (32.000 tokens e até 10 imagens) e produz uma imagem em formato PNG ou JPG. A resolução máxima de saída é de 4 MP.

Parâmetros adicionais (apenas API do fornecedor BFL):

Parâmetro Descrição
guidance Controla o quão próximo o resultado segue a instrução. Intervalo: 1,5–10, padrão: 4,5. Valores mais altos aumentam a adesão rápida.
steps Número de passos de inferência. Máximo: 50, padrão: 50. Valores mais altos produzem mais detalhes, mas são mais lentos.

O exemplo seguinte mostra um pedido específico do FLUX.2 [flex] para geração de imagens usando os parâmetros guidance e 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
    }'

Produção esperada: Uma resposta JSON contendo uma URL ou dados de imagem codificados em base64 para a imagem gerada.

FLUX.2 [pro]

O FLUX.2 [pro] (FLUX.2-pro) oferece qualidade de imagem de última geração à máxima velocidade, tornando-se a melhor escolha para cargas de trabalho de produção em grande escala. Observe que apresenta tempos de resposta mais elevados em comparação com o FLUX.1 Kontext [pro] e FLUX.2 [flex], e a largura de banda diminui a resoluções mais elevadas. Aceita entrada de texto e imagem (32.000 tokens e até oito imagens) e produz uma imagem em formato PNG ou JPG. A resolução máxima de saída é de 4 MP.

A API do fornecedor BFL suporta todos os parâmetros para o FLUX.2 [pro], incluindo guidance, steps, seed, aspect_ratio, safety_tolerance, e output_format.

FLUX.1 Kontext [pro]

O FLUX.1 Kontext [pro] (FLUX.1-Kontext-pro) especializa-se na geração e edição em contexto com forte consistência de caracteres entre as edições. Aceita entrada de texto e imagem (5.000 tokens e 1 imagem) e produz uma imagem em formato PNG ou JPG. A resolução máxima de saída é de 1 MP.

O FLUX.1 Kontext [pro] está disponível tanto através da API do fornecedor BFL como da Image API (images/generations e images/edits).

Parâmetros adicionais (apenas API do fornecedor BFL):seed, aspect_ratio, input_image, prompt_unsampling, safety_tolerance, output_format, .

FLUX1.1 [pro]

O FLUX1.1 [pro] (FLUX-1.1-pro) proporciona geração rápida de texto para imagem com forte adesão aos prompts, preços competitivos e geração escalável. Aceita entrada de texto (5.000 tokens) e produz uma imagem em formato PNG ou JPG. A resolução máxima de saída é de 1,6 MP.

O FLUX1.1 [pro] está disponível tanto através da API do fornecedor BFL como da API de Imagem (images/generations).

Parâmetros adicionais (apenas API do fornecedor BFL):width, height, prompt_unsampling, seed, safety_tolerance, output_format, .

Quotas e limites da API

Os modelos FLUX em Foundry têm os seguintes limites de taxa medidos em Pedidos Por Minuto (RPM). O nível disponível para si depende da sua subscrição e configuração de implementação.

Modelo Tier Pedidos por Minuto (RPM)
FLUX.2 [pro] Baixo 15
FLUX.2 [pro] Média 30
FLUX.2 [pro] Alto 100
FLUX.2 [flex] Baixo 5
FLUX.2 [flex] Média 10
FLUX.2 [flex] Alto 25
FLUX.1 Kontext [pro] Padrão 6
FLUX1.1 [pro] Padrão 6

Para solicitar um aumento de quota, submeta o formulário de pedido de aumento de quota. Os pedidos são processados pela ordem em que são recebidos, e a prioridade vai para os clientes que utilizam ativamente a quota que já utilizam.

Considerações sobre IA responsável

Ao utilizar modelos FLUX no Foundry, considere estas práticas responsáveis de IA:

  • Configure a segurança do conteúdo da IA durante a inferência do modelo, porque o Foundry não fornece filtragem de conteúdo incorporada para modelos FLUX no momento da implementação.
  • Assegure que a utilização das imagens geradas cumpre os termos de serviço da Black Forest Labs e as leis aplicáveis de direitos de autor e propriedade intelectual.
  • Seja transparente sobre o conteúdo gerado por IA ao partilhar ou publicar imagens.
  • Evite gerar conteúdos que possam ser prejudiciais, enganadores ou violar a privacidade.

Exemplos de código e cadernos

Consulte o exemplo do GitHub para geração de imagens com modelos FLUX no Microsoft Foundry e o notebook Jupyter associado para exemplos completos de criação de imagens de alta qualidade a partir de prompts de texto.