Compartir a través de


Introducción a la Generación de Imágenes con IA

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

¿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.

  1. Asegúrese de que el modelo está listo con EnsureReadyAsync.
  2. Cree una instancia de ImageGenerator .
  3. Seleccione el flujo de trabajo de generación adecuado (mensaje de texto, entrada de imagen o máscara).
  4. Invoque el método de generación correspondiente.
  5. 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.

Consulte también