Aracılığıyla paylaş


Yapay Zeka Görüntü Oluşturma ile çalışmaya başlama

Yapay Zeka Görüntü Oluşturma özellikleri, Windows'ta Microsoft Foundry tarafından Windows Uygulama SDK'sında sunulan yapay zeka destekli, Kararlı Difüzyon destekli (görüntüleri işlemek için kullanılan açık kaynak yapay zeka modeli) API'ler aracılığıyla desteklenir. Bu API'ler, doğal dil istemleri ve cihaz içi üretici modelleri kullanarak görüntü ve fotoğraf oluşturmak, dönüştürmek ve geliştirmek için Windows uygulamalarınızda kullanılabilir.

AI Görüntü Oluşturma, Windows Copilot+ bilgisayarlarda verimlilik ve performans için iyileştirilmiştir.

API ayrıntıları için bkz. Yapay zeka görüntüleme özellikleri için API başvurusu.

Önkoşullar

Yapay Zeka Görüntü Oluşturma ile ne yapabilirim?

İstemleri görsel yapıtlara dönüştürmek için Yapay Zeka Görüntüsü Oluşturma'yi kullanın. Desteklenen özellikler şunlardır:

  • Metinden Resme

    Açıklayıcı metin istemlerinden görüntüler oluşturun. Çizimler, tasarım, özelleştirilmiş arka planlar ve kavramsal görselleştirme için kullanışlıdır.

  • Görüntüden Görüntüye

    Yapıyı korurken metin rehberliği temelinde var olan bir görüntüyü dönüştürün. Stil oluşturma, temalandırma ve diğer çeşitlilikler için kullanışlıdır.

  • Sihirli Dolgu

    Görüntünün maskelenmiş bölgelerini yapay zeka tarafından oluşturulan içerikle doldurun. Nesneleri kaldırmak, bölgeleri onarmak ve sezgisel düzenleme (el ile araçlar yerine metin istemleri aracılığıyla karmaşık düzeltmeler) için kullanışlıdır.

  • Boyama Kitabı Stili

    Resimleri, boyama kitabı veya benzer bir eğitim deneyimi için kullanılabilecek basitleştirilmiş ana hatlara dönüştürün.

  • Restyle

    Yapıyı korurken var olan görüntülere artistik veya görsel stiller uygulayın. Yaratıcı filtreler, artistik modlar veya temalı dönüşümler için kullanışlıdır.

Örnekler

AI Görüntü Oluşturma API'lerini kullanırken bu temel adımları izleyin.

  1. EnsureReadyAsync kullanarak modelin hazır olduğundan emin olun.
  2. ImageGenerator örneği oluşturun.
  3. Uygun nesil iş akışını (metin istemi, görüntü girişi veya maske) seçin.
  4. Karşılık gelen oluşturma yöntemini çağırın.
  5. Görüntüleme, düzenleme veya kaydetme için çıkışı ImageBuffer olarak alın.

Metin isteminden görüntü oluşturma (Metinden Görüntüye)

Bu örnekte, metin isteminden nasıl görüntü oluşturulacağı gösterilmektedir. Özellikle, "Dağ gölünde güzel bir gün batımı".

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}");
    }
}

Görüntü stilini dönüştürme (Görüntüden Görüntüye)

Bu örnekte, bir fotoğrafın metin istemine dayalı olarak yağlı boya tablosuna nasıl dönüştürüldüğü gösterilmektedir. Özellikle, "yağlıboya tarzı, kalın fırça vuruşları, artistik".

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");
    }
}

Görüntü stilini dönüştürme (Görüntüden Görüntüye karmaşık)

Bu örnekte, bir fotoğrafın metin istemine dayalı olarak yağlı boya tablosuna nasıl dönüştürüldüğü gösterilmektedir. Özellikle, "Yağlı boya, kalın fırça vuruşları, zengin renk paleti, geleneksel tuval dokusu, gerçekçi aydınlatma, klasik güzel sanatlar stili, katmanlı boya, yüksek ayrıntı, çarpıcı karşıtlık, impasto, dokulu tuval".

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}");
    }
}

Maske ile Sihirli Dolgu

Bu örnekte, bir görüntünün bölgesini doldurmak için maskenin nasıl kullanılacağı gösterilmektedir. Özellikle de "kırmızı spor araba".

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");
    }
}

Renklendirme kitabı stili resim oluşturma

Bu örnekte, renklendirme kitabı stilinde bir görüntünün nasıl oluşturulacağı gösterilmektedir. Özellikle bir "Uzay gemisindeki kedi".

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}");
    }
}

Özel ImageGenerationOptions parametrelerini kullanarak görüntü oluşturma

Bu örnekte, bir dizi içerik filtresi ve kısıtlamayı temel alan bir görüntünün nasıl oluşturulacağı gösterilmektedir. Özellikle, "uzay gemisindeki kedi" ile Düşük TextContentFilterSeverity ve Minimum ImageContentFilterSeverity kullanmak.

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}");
    }
}

Sorumluluk sahibi yapay zeka

Bu görüntüleme API'lerinin güvenilir, güvenli ve sorumlu bir şekilde oluşturulduğundan emin olmak için aşağıdaki adımların bir bileşimini kullandık. Uygulamanızda yapay zeka özelliklerini uygularken Windows Sorumlu Üretken Yapay Zeka Geliştirme bölümünde açıklanan en iyi yöntemleri gözden geçirmenizi öneririz.

Ayrıca bakınız