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.
Las características de generación de imágenes de IA son compatibles con Microsoft Foundry en Windows a través de un conjunto de APIs con respaldo de inteligencia artificial, equipadas con el modelo de código abierto Stable Diffusion (usado para procesar imágenes) que se incluyen en el Windows App SDK. Estas API se pueden usar en las aplicaciones de Windows para crear, transformar y mejorar imágenes y fotos mediante avisos de lenguaje natural y modelos generativos en el dispositivo.
AI Image Generation está optimizado para eficiencia y rendimiento en PCs con Windows Copilot+.
Para más información sobre la API, consulte API ref for AI imaging features (Referencia de API para características de creación de imágenes de IA).
Prerrequisitos
- Versión de Windows: Windows 11, versión 24H2 (compilación 26100) o posterior
- WinAppSDK versión:Versión 2.0 Experimental (2.0.0-Experimental3)
- Hardware: PC recomendado habilitado para NPU
¿Qué puedo hacer con AI Image Generation?
Usar la Generación de Imágenes AI para convertir indicaciones en imágenes visuales. Entre las características admitidas se incluyen:
Texto a imagen
Genere imágenes a partir de mensajes de texto descriptivos. Útil para ilustraciones, diseño, fondos personalizados y visualización conceptual.
Imagen a imagen
Transforme una imagen existente basada en instrucciones textuales al tiempo que conserva la estructura. Resulta útil para aplicar estilos, creación de temáticas y otras variaciones.
Relleno mágico
Rellene las regiones enmascaradas de una imagen con contenido generado por IA. Resulta útil para quitar objetos, reparar regiones y realizar ediciones intuitivas (revisiones complejas a través de comandos de texto en lugar de utilizar herramientas manuales).
Estilo de libro de colorear
Convierta imágenes en esquemas simplificados que se pueden usar para un libro de colorear o una experiencia educativa similar.
Cambiar el estilo
Aplicar estilos artísticos o visuales a las imágenes existentes a la vez que se conserva la estructura. Útil para filtros creativos, modos artísticos o transformaciones temáticas.
Examples
Siga estos pasos básicos al usar las API de generación de imágenes de IA.
- Asegúrese de que el modelo está listo con EnsureReadyAsync.
- Cree una instancia de ImageGenerator .
- Seleccione el flujo de trabajo de generación adecuado (mensaje de texto, entrada de imagen o máscara).
- Invoque el método de generación correspondiente.
- Reciba la salida como ImageBuffer para ver, editar o guardar.
Generación de una imagen a partir de un mensaje de texto (texto a imagen)
En este ejemplo se muestra cómo generar una imagen a partir de un mensaje de texto. En concreto, "Una hermosa puesta de sol sobre un lago de montaña".
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 un estilo de imagen (imagen a imagen)
En este ejemplo se muestra cómo transformar una fotografía en una pintura de aceite basada en un mensaje de texto. En concreto, "estilo de pintura al óleo, trazos de pincel gruesos, artísticos".
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 un estilo de imagen (Imagen a Imagen compleja)
En este ejemplo se muestra cómo transformar una fotografía en una pintura de aceite basada en un mensaje de texto. En concreto, "Pintura de aceite, trazos de pincel gruesos, paleta de colores enriquecidos, textura de lienzo tradicional, iluminación realista, estilo de arte clásico, pintura superpuesta, alto detalle, contraste dramático, impasto, lienzo con textura".
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}");
}
}
Relleno mágico con máscara
En este ejemplo se muestra cómo usar una máscara para rellenar una región de una imagen. En concreto, "un coche deportivo rojo".
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");
}
}
Generar imagen estilo libro para colorear
En este ejemplo se muestra cómo generar una imagen en un estilo de libro de coloreado. En concreto, un "Gato en 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}");
}
}
Generación de imágenes mediante parámetros ImageGenerationOptions personalizados
En este ejemplo se muestra cómo generar una imagen basada en un conjunto de filtros y restricciones de contenido. En concreto, un "Cat en nave espacial" usando TextContentFilterSeverity de Bajo y un 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}");
}
}
Inteligencia artificial responsable
Hemos usado una combinación de los pasos siguientes para asegurarse de que estas API de creación de imágenes son confiables, seguras y creadas de forma responsable. Se recomienda revisar las mejores prácticas descritas en Desarrollo de IA Generativa Responsable en Windows al implementar características de inteligencia artificial en tu aplicación.