Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcje generowania obrazów w oparciu o sztuczną inteligencję są obsługiwane przez Microsoft Foundry w systemie Windows za pomocą zestawu interfejsów API wspieranych przez technologię Stable Diffusion (otwarty model AI używany do przetwarzania obrazów), dostarczonych w zestawie SDK aplikacji dla systemu Windows. Te interfejsy API mogą być używane w aplikacjach systemu Windows do tworzenia, przekształcania i ulepszania obrazów i zdjęć przy użyciu monitów języka naturalnego i modeli generowania na urządzeniach.
Generowanie obrazów za pomocą sztucznej inteligencji jest zoptymalizowane pod kątem efektywności i wydajności na komputerach PC z systemem Windows Copilot+.
Aby uzyskać szczegółowe informacje o interfejsie API, zobacz dokumentację interfejsu API dotyczącą funkcji przetwarzania obrazów AI.
Wymagania wstępne
- Wersja systemu Windows: Windows 11, wersja 24H2 (kompilacja 26100) lub nowsza
- WinAppSDK version:Version 2.0 Experimental (2.0.0-Experimental3)
- Sprzęt: Zalecany komputer z obsługą jednostki NPU
Co mogę zrobić za pomocą generowania obrazów sztucznej inteligencji?
Generowanie obrazów sztucznej inteligencji umożliwia przekształcenie monitów w artefakty wizualne. Obsługiwane funkcje obejmują:
Tekst do obrazu
Generowanie obrazów na podstawie opisowych monitów tekstowych. Przydatne do ilustracji, projektowania, dostosowanych tł i wizualizacji koncepcyjnych.
Obraz do obrazu
Przekształcanie istniejącego obrazu na podstawie wskazówek tekstowych przy zachowaniu struktury. Przydatne do stylizacji, motywów i innych wariacji.
Wypełnienie magiczne
Wypełnij zamaskowane regiony obrazu zawartością wygenerowaną przez sztuczną inteligencję. Przydatne do usuwania obiektów, naprawiania regionów i intuicyjnego edytowania (złożone poprawki za pośrednictwem monitów tekstowych zamiast narzędzi ręcznych).
Styl kolorowanki
Przekonwertuj obrazy na uproszczone kontury, których można użyć w książce do kolorowania lub podobnym celu edukacyjnym.
Zmiana stylu
Stosowanie stylów artystycznych lub wizualnych do istniejących obrazów przy zachowaniu struktury. Przydatne w przypadku kreatywnych filtrów, trybów artystycznych lub tematycznych transformacji.
Przykłady
Wykonaj następujące podstawowe kroki podczas korzystania z interfejsów API generowania obrazów sztucznej inteligencji.
- Upewnij się, że model jest gotowy przy użyciu EnsureReadyAsync.
- Utwórz wystąpienie ImageGenerator .
- Wybierz odpowiedni proces generowania (monit tekstowy, dane wejściowe obrazu lub maska).
- Wywołaj odpowiednią metodę generowania.
- Odbierz dane wyjściowe jako ImageBuffer do wyświetlania, edytowania lub zapisywania.
Generowanie obrazu na podstawie monitu tekstowego (tekst do obrazu)
W tym przykładzie pokazano, jak wygenerować obraz na podstawie monitu tekstowego. W szczególności "Piękny zachód słońca nad jeziorem górskim".
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}");
}
}
Przekształcanie stylu obrazu (obraz-obraz)
W tym przykładzie pokazano, jak przekształcić fotografię w obraz olejny na podstawie monitu tekstowego. W szczególności"styl malarstwa olejnego, grube pociągnięcia pędzla, artystyczne".
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");
}
}
Przekształcanie stylu obrazu (złożony obraz-obraz)
W tym przykładzie pokazano, jak przekształcić fotografię w obraz olejny na podstawie monitu tekstowego. W szczególności: Obraz olejny, grube pociągnięcia pędzla, bogata paleta kolorów, tradycyjna tekstura płótna, realistyczne oświetlenie, klasyczny styl sztuk pięknych, warstwowa farba, wysoki poziom szczegółowości, dramatyczny kontrast, impasto, teksturowane płótno.
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}");
}
}
Magiczne wypełnianie przy użyciu maski
W tym przykładzie pokazano, jak za pomocą maski wypełnić region obrazu. W szczególności "czerwony samochód sportowy".
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");
}
}
Tworzenie obrazu w stylu malowanki
W tym przykładzie pokazano, jak wygenerować obraz w stylu książki kolorowej. W szczególności "Kot w statku kosmicznym".
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}");
}
}
Generowanie obrazu przy użyciu niestandardowych parametrów ImageGenerationOptions
W tym przykładzie pokazano, jak wygenerować obraz na podstawie zestawu filtrów i ograniczeń zawartości. W szczególności "Kot w statku kosmicznym" przy użyciu właściwości TextContentFilterSeverity o wartości niskiej i ImageContentFilterSeverity o wartości minimalnej.
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}");
}
}
Odpowiedzialne używanie sztucznej inteligencji
Użyliśmy kombinacji poniższych kroków, aby upewnić się, że te interfejsy API obrazowania są wiarygodne, bezpieczne i tworzone odpowiedzialnie. Zalecamy zapoznanie się z najlepszymi rozwiązaniami opisanymi w temacie Odpowiedzialne tworzenie sztucznej inteligencji w systemie Windows podczas implementowania funkcji sztucznej inteligencji w aplikacji.