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.
Microsoft Foundry su Windows supporta le funzionalità di generazione di immagini tramite intelligenza artificiale, tramite un set di API alimentate da Stable Diffusion (modello di intelligenza artificiale open source usato per l'elaborazione di immagini) incluse in SDK per app di Windows. Puoi usare queste API 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.
Importante
Requisiti del manifesto del pacchetto: per usare le API di creazione dell'immagine di Intelligenza artificiale di Windows, l'app deve essere inserita in un pacchetto MSIX con la systemAIModels funzionalità dichiarata in Package.appxmanifest. Assicurarsi inoltre che l'attributo del MaxVersionTested manifesto sia impostato su una versione di Windows recente (ad esempio, 10.0.26226.0 o versioni successive) per supportare correttamente le funzionalità di Intelligenza artificiale Windows. L'uso di valori meno recenti può causare errori "Non dichiarati dall'app" durante il caricamento del modello.
<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>
Prerequisiti
- Versione di Windows: Windows 11, versione 24H2 (build 26100) o successiva
- WinAppSDK version:Version 2.0 Experimental (2.0.0-Experimental3)
- Hardware: Copilot+ PC con una NPU (obbligatorio)
Hardware supportato
La generazione di immagini di intelligenza artificiale viene eseguita nell'hardware seguente:
| Hardware | Condizione | dettagli |
|---|---|---|
| NPU (Copilot+ PC) | ✅ Disponibile | L'unico percorso hardware supportato. Vedere Copilot+ PCs developer guide. |
| GPU (Unità di Elaborazione Grafica) | ❌ Non supportato | Non disponibile nella GPU. |
| CPU (unità centrale di elaborazione) | ❌ Non supportato | Non disponibile nella CPU. |
Disponibilità e download del modello
Il modello di generazione di immagini basato sull'intelligenza artificiale è facoltativo su un Copilot+ PC — non è preinstallato per impostazione predefinita, perché le dimensioni dell'installazione sono di diversi gigabyte. La prima volta che l'app chiama EnsureReadyAsync, il modello viene scaricato in background tramite Windows Update. Gli utenti finali possono anche rimuovere il modello in un secondo momento per recuperare spazio su disco.
Questo comportamento corrisponde al ciclo di vita del modello adottato da altri modelli di IA opzionali di Windows di grandi dimensioni: l'app deve gestire esplicitamente il caso del modello "non ancora installato", anziché dare per scontato che il modello sia presente.
Modello di esperienza utente consigliato
Poiché il modello di generazione di immagini di intelligenza artificiale è di grandi dimensioni e non è presente per impostazione predefinita, visualizzare una finestra di dialogo di conferma prima di chiamare EnsureReadyAsync in modo che l'utente possa fornire il consenso sia al costo di archiviazione che al download in background. Modello tipico:
Chiama GetReadyState e dirama il flusso in base al valore restituito di AIFeatureReadyState:
-
Ready— il modello è installato; Procedere. -
NotReadyoppureEnsureNeeded: mostra la finestra di dialogo di consenso (vedere di seguito), quindi chiamaEnsureReadyAsyncsolo se l'utente accetta. -
NotSupportedOnCurrentSystem: il dispositivo non è un Copilot+ PC o non soddisfa i requisiti in Hardware supportato. Offrire un'esperienza di fallback e, se appropriato, presentare i requisiti hardware in modo che l'utente possa prendere una decisione di aggiornamento informata.
-
Nella finestra di dialogo di consenso spiegare:
- Verrà scaricato un modello di generazione di immagini facoltativo (diversi GB di spazio di archiviazione).
- Il download avviene in background tramite Windows Update.
- L'utente può monitorare lo stato di avanzamento del download in Settings>Windows Update.
- L'utente può successivamente rimuovere il modello in Impostazioni Componenti>di intelligenza artificiale di> se non lo vuole più.
Suggerimento
Nelle stringhe rivolte all'utente (testo della finestra di dialogo, messaggi di stato), fare riferimento al modello come "modello di generazione di immagini" o "modello di intelligenza artificiale facoltativo" anziché "SDXL" o "Diffusione stabile". La maggior parte degli utenti finali non ha familiarità con i nomi dei modelli sottostanti e i termini generici comunicano più chiaramente lo scopo.
Mentre
EnsureReadyAsyncè in corso, mostra un indicatore di stato nella tua app. Vedere Introduzione alle API di intelligenza artificiale Windows per il modello di caricamento dell'interfaccia utente.
Dopo l'installazione del modello
Il modello rimane sul dispositivo fino a quando l'utente non lo rimuove. Gli utenti gestiscono i modelli installati, incluso il modello di generazione di immagini di intelligenza artificiale, in Impostazioni>Componenti di intelligenza artificiale del>. Se in un secondo momento l'utente rimuove il modello, la chiamata successiva dell'app a GetReadyState restituisce NotReady o EnsureNeeded e il flusso di consenso e download deve essere ripetuto.
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 è possibile usare per un libro a colori 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
Seguire le raccomandazioni di intelligenza artificiale responsabili, inclusa la trasparenza e l'attendibilità degli utenti, quando si usano queste API per modificare o generare immagini nelle app di Windows. Per aiutare gli utenti a comprendere l'origine e la cronologia delle immagini generate o modificate, fornire le credenziali del contenuto come specificato dagli standard Coalition for Content Provenance e Authenticity (C2PA).
Per le procedure consigliate per l'implementazione delle funzionalità di intelligenza artificiale nelle app di Windows, vedere Sviluppo di intelligenza artificiale responsabile in Windows .