Comece com a Geração de Imagens por IA

O Microsoft Foundry no Windows suporta funcionalidades de Geração de Imagens por IA através de um conjunto de APIs baseadas em inteligência artificial, alimentadas pelo Stable Diffusion (modelo de IA open-source usado para processar imagens), que são incluídas no SDK de Aplicações Windows. Pode usar estas APIs nas suas aplicações Windows para criar, transformar e melhorar imagens e fotografias usando prompts em linguagem natural e modelos generativos no dispositivo.

A Geração de Imagens por IA está otimizada para eficiência e desempenho em PCs com Windows Copilot+.

Para obter detalhes da API, consulte API ref for AI imaging features.

Importante

Requisitos de manifesto do pacote: para usar APIs de criação de imagens do Windows AI, seu aplicativo deve ser empacotado como um pacote MSIX com o recurso declarado systemAIModels no .Package.appxmanifest Além disso, assegure-se de que o atributo do MaxVersionTested manifesto esteja definido como uma versão recente do Windows (por exemplo, 10.0.26226.0 ou posterior) para suportar adequadamente os recursos de IA do Windows. O uso de valores mais antigos pode causar erros "Não declarado pelo aplicativo" ao carregar o modelo.

<Dependencies>
  <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
  <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
</Dependencies>

Pré-requisitos

  • Versão Windows: Windows 11, versão 24H2 (build 26100) ou posterior
  • Versão do SDK de Aplicações Windows:Versão 2.0 Experimental
  • Hardware: Copilot+ PC com NPU (obrigatório)

Hardware suportado

A Geração de Imagens por IA corre no seguinte hardware:

Hardware Situação Detalhes
NPU (Copilot+ PC) ✅ Disponível A única via de hardware suportada. Consulte Copilot+ PCs guia para desenvolvedores.
GPU ❌ Não suportado Não está disponível na GPU.
CPU ❌ Não suportado Não disponível na CPU.

Disponibilidade de modelos e download

O modelo de Geração de Imagens por IA é opcional num Copilot+ PC — é não pré-instalado por defeito, porque o tamanho da instalação é de vários gigabytes. Na primeira vez que a sua aplicação chama EnsureReadyAsync, o modelo é descarregado em segundo plano através de Windows Update. Os utilizadores finais também podem remover o modelo mais tarde para recuperar espaço em disco.

Este comportamento corresponde ao ciclo de vida do modelo usado por outros grandes modelos opcionais de IA do Windows — a sua aplicação deve tratar explicitamente o caso "ainda não instalado" em vez de assumir que o modelo está presente.

Como o modelo de Geração de Imagens por IA é grande e não está presente por defeito, mostre um diálogo de confirmação antes de chamar EnsureReadyAsync para que o utilizador possa consentir tanto com o custo de armazenamento como com o download em segundo plano. Um padrão típico:

  1. Chame GetReadyState e aja em conformidade com o AIFeatureReadyState devolvido:

    • Ready — o modelo é instalado; Prossiga.
    • NotReady ou EnsureNeeded — mostrar o seu diálogo de consentimento (ver abaixo) e depois ligar EnsureReadyAsync apenas se o utilizador concordar.
    • NotSupportedOnCurrentSystem — o dispositivo não é um Copilot+ PC ou não cumpre os requisitos em Hardware suportado. Ofereça uma experiência de recuo e, quando apropriado, exponha os requisitos de hardware para que o utilizador possa tomar uma decisão informada de atualização.
  2. No seu diálogo de consentimento, explique:

    • Será descarregado um modelo opcional de geração de imagem (vários GB de armazenamento).
    • O download acontece em segundo plano através do Windows Update.
    • O utilizador pode monitorizar o progresso do download em Settings>Windows Update.
    • O utilizador pode posteriormente remover o modelo em Configurações>de Componentes de IA> se já não o quiser.

    Sugestão

    Em cadeias voltadas para o utilizador (texto de diálogo, mensagens de estado), refere-se ao modelo como "modelo de geração de imagem" ou "modelo de IA opcional" em vez de "SDXL" ou "Difusão Estável". A maioria dos utilizadores finais não está familiarizada com os nomes dos modelos subjacentes, e termos genéricos comunicam o propósito de forma mais clara.

  3. Enquanto EnsureReadyAsync estiver em progresso, mostre um indicador de progresso na sua aplicação. Veja a Introdução às APIs de IA do Windows para o padrão de interface de utilizador de carregamento.

Após a instalação do modelo

O modelo permanece no dispositivo até que o utilizador o remova. Os utilizadores gerem os modelos instalados — incluindo o modelo de Geração de Imagens por IA — na Settings>System>AI Components. Se o utilizador remover o modelo mais tarde, a chamada seguinte da sua aplicação para GetReadyState devolve NotReady ou EnsureNeeded, e o fluxo de consentimento + transferência deve ser repetido.

O que posso fazer com a Geração de Imagens por IA?

Use a Geração de Imagens por IA para transformar prompts em artefactos visuais. Os recursos suportados incluem:

  • Texto em Imagem

    Gera imagens a partir de sugestões de texto descritivo. Útil para ilustrações, design, fundos personalizados e visualização conceptual.

  • Transformação de Imagem em Imagem

    Transforme uma imagem existente com base nas orientações textuais, preservando a estrutura. Útil para styling, tematização e outras variações.

  • Preenchimento Mágico

    Preencha regiões mascaradas de uma imagem com conteúdo gerado por IA. Útil para remover objetos, reparar regiões e editar de forma intuitiva (revisões complexas através de prompts de texto em vez de ferramentas manuais).

  • Estilo de Livro de Colorir

    Converta imagens em contornos simplificados que possa usar para um livro de colorir ou uma experiência educativa semelhante.

  • Restyling

    Aplique estilos artísticos ou visuais às imagens existentes, preservando a estrutura. Útil para filtros criativos, modos artísticos ou transformações temáticas.

Examples

Siga estes passos básicos ao utilizar as APIs de Geração de Imagens por IA.

  1. Assegure que o modelo está pronto usando EnsureReadyAsync.
  2. Crie uma instância do ImageGenerator .
  3. Selecione o fluxo de trabalho de geração apropriado (prompt de texto, introdução de imagem ou máscara).
  4. Invocar o método de geração correspondente.
  5. Receba a saída como um ImageBuffer para visualização, edição ou gravação.

Gerar uma imagem a partir de um prompt de texto (Text-to-Image)

Este exemplo mostra como gerar uma imagem a partir de um prompt de texto. Especificamente, "Um belo pôr do sol sobre um lago de montanha".

using Microsoft.Windows.AI.Imaging;
using Microsoft.Graphics.Imaging;

public async Task GenerateImageFromText()
{
    // Check if models are ready
    var readyState = ImageGenerator.GetReadyState();
    if (readyState != AIFeatureReadyState.Ready)
    {
        // Download models if needed
        var result = await ImageGenerator.EnsureReadyAsync();
        if (result.Status != AIFeatureReadyResultState.Success)
        {
            Console.WriteLine("Failed to prepare models");
            return;
        }
    }

    // Create ImageGenerator instance
    using var generator = await ImageGenerator.CreateAsync();
    
    // Configure generation options
    var options = new ImageGenerationOptions
    {
        MaxInferenceSteps = 6,
        Creativity = 0.8,
        Seed = 42
    };

    // Generate image
    var result = generator.GenerateImageFromTextPrompt("A beautiful sunset over a mountain lake", options);
    
    if (result.Status == ImageGeneratorResultStatus.Success)
    {
        var imageBuffer = result.Image;
        // Use the generated image (save to file, display, etc.)
        await SaveImageBufferAsync(imageBuffer, "generated_image.png");
    }
    else
    {
        Console.WriteLine($"Image generation failed: {result.Status}");
    }
}

Transformar um estilo de imagem (Imagem-para-Imagem)

Este exemplo mostra como transformar uma fotografia numa pintura a óleo baseada num prompt de texto. Especificamente, "estilo de pintura a óleo, pinceladas grossas, artístico".

public async Task RestyleImage()
{
    using var generator = await ImageGenerator.CreateAsync();
    
    // Load input image
    var inputImage = await LoadImageBufferAsync("photo.jpg");
    
    var options = new ImageGenerationOptions();
    var styleOptions = new ImageFromImageGenerationOptions
    {
        Style = ImageFromImageGenerationStyle.Restyle,
        ColorPreservation = 0.7f
    };

    var result = generator.GenerateImageFromImageBuffer(
        inputImage, 
        "oil painting style, thick brush strokes, artistic", 
        options, 
        styleOptions);
    
    if (result.Status == ImageGeneratorResultStatus.Success)
    {
        await SaveImageBufferAsync(result.Image, "restyled_image.png");
    }
}

Transformar um estilo de imagem (complexo de Imagem para Imagem)

Este exemplo mostra como transformar uma fotografia numa pintura a óleo baseada num prompt de texto. Especificamente, "Uma pintura a óleo, pinceladas espessas, paleta de cores rica, textura tradicional de tela, iluminação realista, estilo clássico de belas artes, tinta em camadas, alto detalhe, contraste dramático, impasto, tela texturizada".

using Microsoft.Windows.AI.Imaging;

public async Task CreateImageFromPrompt()
{
    using ImageGenerator model = await ImageGenerator.CreateAsync();

    // Using default values
    var options = new ImageGenerationOptions();

    // Set ImageFromImageGenerationOptions fields
    var imageFromImageOptions = new ImageFromImageGenerationOptions();
    imageFromImageOptions.Style = ImageFromImageGenerationStyle.Restyle;
    imageFromImageOptions.ColorPreservation = 0.5f; // range [0.0f, 1.0f]

    // Load an input image buffer
    using var inputImage = await Utils.LoadSampleImageBufferAsync("sdxl_input_horse.png");

    var textPrompt = "An oil painting, thick brush strokes, rich color palette, traditional canvas texture, realistic lighting, classical fine art style, layered paint, high detail, dramatic contrast, impasto, textured canvas";

    var result = model.GenerateImageFromImageBuffer(inputImage, textPrompt, options, imageFromImageOptions);
    if (result.Status == ImageGeneratorResultStatus.Success)
    {
        // Image generated successfully
        var imageBuffer = result.Image;
        // Process the imageBuffer as needed, e.g., save to file or display
    }
    else
    {
        // Handle error cases based on result.Status
        Console.WriteLine($"Image generation failed with status: {result.Status}");
    }
}

Preenchimento Mágico com Máscara

Este exemplo mostra como usar uma máscara para preencher uma região de uma imagem. Especificamente, "um carro desportivo vermelho".

public async Task FillMaskedRegion()
{
    using var generator = await ImageGenerator.CreateAsync();
    
    var inputImage = await LoadImageBufferAsync("scene.jpg");
    var maskImage = await LoadImageBufferAsync("mask.png"); // GRAY8 format
    
    var options = new ImageGenerationOptions();
    
    var result = generator.GenerateImageFromImageBufferAndMask(
        inputImage, 
        maskImage, 
        "a red sports car", 
        options);
    
    if (result.Status == ImageGeneratorResultStatus.Success)
    {
        await SaveImageBufferAsync(result.Image, "filled_image.png");
    }
}

Gerar imagem ao estilo de livro para colorir

Este exemplo mostra como gerar uma imagem ao estilo de um livro de colorir. Especificamente, um "Gato na nave espacial".

using Microsoft.Windows.AI.Imaging;

public async Task CreateImageFromPrompt()
{
    using ImageGenerator model = await ImageGenerator.CreateAsync();

    // Using default values
    var options = new ImageGenerationOptions();

    // Set ImageFromTextGenerationOptions fields
    var imageFromTextOptions = new ImageFromTextGenerationOptions();
    imageFromTextOptions.Style = ImageFromTextGenerationStyle.ColoringBook;

    var result = model.GenerateImageFromTextPrompt("Cat in spaceship", options, imageFromTextOptions);
    if (result.Status == ImageGeneratorResultStatus.Success)
    {
        // Image generated successfully
        var imageBuffer = result.Image;
        // Process the imageBuffer as needed, e.g., save to file or display
    }
    else
    {
        // Handle error cases based on result.Status
        Console.WriteLine($"Image generation failed with status: {result.Status}");
    }
}

Gerar uma imagem utilizando os parâmetros personalizados de "ImageGenerationOptions"

Este exemplo mostra como gerar uma imagem com base num conjunto de filtros de conteúdo e restrições. Especificamente, um "Gato em nave espacial" usando um TextContentFilterSeverity de Baixo e um ImageContentFilterSeverity de Mínimo.

using Microsoft.Windows.AI.Imaging;
using Microsoft.Windows.AI.ContentSafety;

public async Task CreateImageFromPromptAndCustomOptions()
{
    using ImageGenerator model = await ImageGenerator.CreateAsync();

    // Using default values
    var options = new ImageGenerationOptions();

    // Set custom ImageGenerationOptions fields
    options.MaxInferenceSteps = 6;
    options.Creativity = 0.8;
    options.Seed = 1234;
    ContentFilterOptions contentFilterOptions = new ContentFilterOptions();
    contentFilterOptions.PromptMaxAllowedSeverityLevel = new TextContentFilterSeverity { Hate = SeverityLevel.Low, Sexual = SeverityLevel.Low, Violent = SeverityLevel.Low, SelfHarm = SeverityLevel.Low };
    contentFilterOptions.ImageMaxAllowedSeverityLevel = new ImageContentFilterSeverity { AdultContentLevel = SeverityLevel.Minimum, GoryContentLevel = SeverityLevel.Minimum, RacyContentLevel = SeverityLevel.Minimum, ViolentContentLevel = SeverityLevel.Minimum };
    options.ContentFilterOptions = contentFilterOptions;

    var result = model.GenerateImageFromTextPrompt("Cat in spaceship", options);
    if (result.Status == ImageGeneratorResultStatus.Success)
    {
        // Image generated successfully
        var imageBuffer = result.Image;
        // Process the imageBuffer as needed, e.g., save to file or display
    }
    else
    {
        // Handle error cases based on result.Status
        Console.WriteLine($"Image generation failed with status: {result.Status}");
    }
}

Inteligência Artificial responsável

Siga as recomendações de IA responsável, incluindo transparência e confiança do utilizador, ao utilizar estas APIs para modificar ou gerar imagens nas suas aplicações Windows. Para ajudar os utilizadores a compreender a origem e o histórico das imagens geradas ou modificadas, forneça Credenciais de Conteúdo conforme especificado pelas normas da Coligação para a Proveniência e Autenticidade do Conteúdo (C2PA ).

Consulte Desenvolvimento Responsável de IA Generativa no Windows para as melhores práticas na implementação de funcionalidades de IA em aplicações Windows.

Consulte também