Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As funcionalidades de Geração de Imagens por IA são suportadas pela Microsoft Foundry no Windows 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 Windows App SDK. Estas APIs podem ser usadas 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.
Pré-requisitos
- Versão Windows: Windows 11, versão 24H2 (build 26100) ou posterior
- Versão WinAppSDK:Versão 2.0 Experimental (2.0.0-Experimental3)
- Hardware: PC com NPU recomendado
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 possam ser usados num livro de colorir ou numa 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.
- Assegure que o modelo está pronto usando EnsureReadyAsync.
- Crie uma instância do ImageGenerator .
- Selecione o fluxo de trabalho de geração apropriado (prompt de texto, introdução de imagem ou máscara).
- Invocar o método de geração correspondente.
- 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 = TextContentFilterSeverity(SeverityLevel.Low);
contentFilterOptions.ImageMaxAllowedSeverityLevel = ImageContentFilterSeverity(SeverityLevel.Minimium);
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
Usamos uma combinação das etapas a seguir para garantir que essas APIs de criação de imagens sejam confiáveis, seguras e criadas de forma responsável. Recomendamos rever as práticas recomendadas descritas em Desenvolvimento de IA Generativa Responsável no Windows ao implementar recursos de IA em seu aplicativo.