Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le funzionalità di generazione di immagini tramite intelligenza artificiale sono supportate da Microsoft Foundry su Windows attraverso un set di API alimentate da Stable Diffusion (modello di intelligenza artificiale open source utilizzato per l'elaborazione di immagini) incluse nel Windows App SDK. Queste API possono essere usate nelle tue app di Windows per creare, trasformare e migliorare immagini e foto usando prompt del linguaggio naturale e modelli generativi sul dispositivo.
La generazione di immagini di intelligenza artificiale è ottimizzata per l'efficienza e le prestazioni nei PC Windows Copilot+.
Per informazioni dettagliate sull'API, vedere Riferimento API per le funzionalità di creazione dell'immagine di intelligenza artificiale.
Prerequisiti
- Versione di Windows: Windows 11, versione 24H2 (build 26100) o successiva
- WinAppSDK version:Version 2.0 Experimental (2.0.0-Experimental3)
- Hardware: PC compatibile con NPU consigliato
Cosa posso fare con la generazione di immagini di intelligenza artificiale?
Usare generazione di immagini di intelligenza artificiale per trasformare i prompt in artefatti visivi. Le funzionalità supportate includono:
Da testo a immagine
Genera immagini da prompt di testo descrittivi. Utile per illustrazioni, progettazione, sfondi personalizzati e visualizzazione concettuale.
Da immagine a immagine
Trasformare un'immagine esistente in base alle linee guida testuali mantenendo al tempo stesso la struttura. Utile per applicare stili, tema e altre varianti.
Riempimento magico
Riempire le aree mascherate di un'immagine con contenuto generato dall'intelligenza artificiale. Utile per la rimozione di oggetti, il ripristino delle aree e la modifica intuitiva (revisioni complesse tramite prompt di testo anziché strumenti manuali).
Stile libro da colorare
Convertire le immagini in contorni semplificati che possono essere usati per un libro colorante o un'esperienza educativa simile.
Restyling
Applicare stili artistici o visivi alle immagini esistenti mantenendo al tempo stesso la struttura. Utile per filtri creativi, modalità artistiche o trasformazioni a tema.
Esempi
Seguire questi passaggi di base quando si usano le API di generazione di immagini di intelligenza artificiale.
- Assicurarsi che il modello sia pronto usando EnsureReadyAsync.
- Creare un'istanza di ImageGenerator.
- Selezionare il flusso di lavoro di generazione appropriato (richiesta di testo, input immagine o maschera).
- Richiamare il metodo di generazione corrispondente.
- Ricevere l'output come ImageBuffer per visualizzare, modificare o salvare.
Generare un'immagine da un prompt di testo (da testo a immagine)
In questo esempio viene illustrato come generare un'immagine da una richiesta di testo. In particolare, "Un bellissimo tramonto su un lago di montagna".
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}");
}
}
Trasformare uno stile di immagine (da immagine a immagine)
In questo esempio viene illustrato come trasformare una fotografia in un dipinto a olio in base a una richiesta di testo. In particolare, "stile di pittura a olio, tratti di pennello spessi, artistico".
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");
}
}
Trasformare uno stile di immagine (complesso da immagine a immagine)
In questo esempio viene illustrato come trasformare una fotografia in un dipinto a olio in base a una richiesta di testo. In particolare, "Un dipinto a olio, tratti spessi pennelli, tavolozza ricca di colori, trama di tela tradizionale, illuminazione realistica, stile classico arte fine, vernice a strati, dettaglio elevato, contrasto drammatico, impasto, tela con trama".
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}");
}
}
Riempimento magico con maschera
Questo esempio mostra come usare una maschera per riempire un'area di un'immagine. In particolare, "un'auto sportiva rossa".
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");
}
}
Generare un'immagine in stile da libro da colorare
In questo esempio viene illustrato come generare un'immagine in uno stile di un libro a colori. In particolare, un "Gatto in astronave".
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}");
}
}
Generare un'immagine usando parametri ImageGenerationOptions personalizzati
Questo esempio illustra come generare un'immagine in base a un set di filtri e restrizioni del contenuto. In particolare, un "Gatto in astronave" usando textContentFilterSeverity di Basso e imageContentFilterSeverity di Minimo.
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}");
}
}
Intelligenza artificiale responsabile
È stata usata una combinazione dei passaggi seguenti per garantire che queste API di imaging siano affidabili, sicure e create in modo responsabile. È consigliabile esaminare le procedure consigliate descritte in Sviluppo di intelligenza artificiale responsabile in Windows quando si implementano le funzionalità di intelligenza artificiale nell'app.