Resim oluşturma kılavuzu

Görüntü üretme aracı görevi

MediaPipe Resim Oluşturucu görevi, metin istemlerine göre resim oluşturmanıza olanak tanır. Bu görevde, difüzyon tekniklerini kullanarak görüntü oluşturmak için metinden görsele dönüştürme modeli kullanılır.

Görev, giriş olarak bir metin istemi ve modelin artırıp oluşturma işlemi için referans olarak kullanabileceği isteğe bağlı bir koşul resmi kabul eder. Koşullu metinden görüntü oluşturma hakkında daha fazla bilgi için Koşullu metinden görüntü oluşturma için cihaz üzerinde difüzyon eklentileri başlıklı makaleyi inceleyin.

Resim Oluşturucu, eğitim veya yeniden eğitim sırasında modele sağlanan belirli kavramlara göre de resim oluşturabilir. Daha fazla bilgi için LoRA ile özelleştirme başlıklı makaleyi inceleyin.

Başlayın

Hedef platformunuzla ilgili bu uygulama kılavuzlarından birini uygulayarak bu görevi kullanmaya başlayın. Bu platforma özel kılavuzlarda, varsayılan bir modeli ve önerilen yapılandırma seçeneklerini kullanan kod örnekleri ile bu görevin temel uygulamasında size yol gösterilir:

Görev ayrıntıları

Bu bölümde, bu görevin özellikleri, girişleri, çıkışları ve yapılandırma seçenekleri açıklanmaktadır.

Özellikler

Resim Oluşturucu'yu kullanarak aşağıdakileri uygulayabilirsiniz:

  1. Metinden görüntü oluşturma: Metin istemiyle resim oluşturun.
  2. Koşul resimleriyle resim oluşturma: Metin istemi ve referans resim kullanarak resimler oluşturun. Görüntü Oluşturucu, koşullu görüntüleri ControlNet'e benzer şekilde kullanır.
  3. LoRA ağırlıkları ile resim oluşturma: Özelleştirilmiş model ağırlıklarını kullanarak metin istemiyle belirli kişilerin, nesnelerin ve stillerin resimlerini oluşturun.
Görev girişleri Görev çıkışları
Görüntü Oluşturucu aşağıdaki girişleri kabul eder:
  • Metin istemi
  • Tohum
  • Üretken iterasyonların sayısı
  • İsteğe bağlı: durum resmi
Görsel Oluşturucu aşağıdaki sonuçları döndürür:
  • Girişlere göre oluşturulmuş resim.
  • İsteğe bağlı: Oluşturulan resmin iteratif anlık görüntüleri.

Yapılandırma seçenekleri

Bu görev için aşağıdaki yapılandırma seçenekleri vardır:

Seçenek Adı Açıklama Değer Aralığı
imageGeneratorModelDirectory Model ağırlıklarını depolayan resim oluşturucu model dizini. PATH
loraWeightsFilePath LoRA ağırlık dosyasının yolunu belirler. İsteğe bağlıdır ve yalnızca model LoRA ile özelleştirildiyse geçerlidir. PATH
errorListener İsteğe bağlı bir hata işleyici ayarlar. N/A

Görev, kullanıcıların görev girişine koşul resimleri eklemesine olanak tanıyan eklenti modellerini de destekler. Temel model, bu resimleri artırabilir ve oluşturma işlemi için referans olarak kullanabilir. Bu koşul resimleri, modelin resim oluşturmak için ek bağlam ve bilgi olarak kullandığı yüz önemli noktaları, kenar dış hatları ve derinlik tahminleri olabilir.

Temel modele eklenecek eklenti modelinin seçeneklerini de yapılandırın. Yüz yer işareti eklentisi faceConditionOptions, keskin kenar eklentisi edgeConditionOptions ve derinlik eklentisi depthConditionOptions kullanır.

Keskin kenar seçenekleri

edgeConditionOptions'te aşağıdaki seçenekleri yapılandırın.

Seçenek Adı Açıklama Değer Aralığı Varsayılan değer
threshold1 Hysteresis işlemi için ilk eşik. Float 100
threshold2 Hysteresis işlemi için ikinci eşik. Float 200
apertureSize Sobel operatörü için diyafram açıklığı. Tipik aralık 3-7 arasındadır. Integer 3
l2Gradient Resim gradyan büyüklüğünü hesaplamak için varsayılan L1 normu yerine L2 normunun kullanılıp kullanılmayacağı. BOOLEAN False
EdgePluginModelBaseOptions Eklenti modelinin yolunu ayarlayan BaseOptions nesnesi. BaseOptions nesnesi N/A

Bu yapılandırma seçeneklerinin işleyiş şekli hakkında daha fazla bilgi için Keskin kenar algılayıcı başlıklı makaleyi inceleyin.

Yüz yer işareti seçenekleri

faceConditionOptions'te aşağıdaki seçenekleri yapılandırın.

Seçenek Adı Açıklama Değer Aralığı Varsayılan değer
minFaceDetectionConfidence Yüz algılamanın başarılı olarak kabul edilmesi için gereken minimum güven puanı. Float [0.0,1.0] 0.5
minFacePresenceConfidence Yüz yer işareti algılamada yüz varlığı puanının minimum güven puanı. Float [0.0,1.0] 0.5
faceModelBaseOptions Koşul resmini oluşturan modelin yolunu ayarlayan BaseOptions nesnesi. BaseOptions nesnesi N/A
FacePluginModelBaseOptions Eklenti modelinin yolunu ayarlayan BaseOptions nesnesi. BaseOptions nesnesi N/A

Bu yapılandırma seçeneklerinin işleyiş şekli hakkında daha fazla bilgi için Yüz İşaretçisi görevi başlıklı makaleyi inceleyin.

Derinlik seçenekleri

depthConditionOptions'te aşağıdaki seçenekleri yapılandırın.

Seçenek Adı Açıklama Değer Aralığı Varsayılan değer
depthModelBaseOptions Koşul resmini oluşturan modelin yolunu ayarlayan BaseOptions nesnesi. BaseOptions nesnesi N/A
depthPluginModelBaseOptions Eklenti modelinin yolunu ayarlayan BaseOptions nesnesi. BaseOptions nesnesi N/A

Modeller

Görüntü Oluşturucu, yeni görüntüler oluşturmak için difüzyon tekniklerini kullanan bir metinden görsele yapay zeka modeli olan bir temel model gerektirir. Bu bölümde listelenen temel modeller, üst düzey akıllı telefonlarda çalışacak şekilde optimize edilmiş hafif modellerdir.

Eklenti modelleri isteğe bağlıdır ve temel modelleri tamamlar. Böylece kullanıcılar, daha spesifik resim oluşturmak için metin istemi ile birlikte ek bir koşul resmi sağlayabilir. LoRA ağırlıklarını kullanarak temel modelleri özelleştirmek, temel modele bir nesne, kişi veya stil gibi belirli bir kavram hakkında bilgi öğreten ve bu bilgileri oluşturulan resimlere ekleyen bir seçenektir.

Temel modeller

Temel modeller, metin isteminden görüntü oluşturan gizli metinden görüntüye difüzyon modelleridir. Resim Oluşturucu, temel modelin aşağıdaki modele göre runwayml/stable-diffusion-v1-5 EMA-only model biçimiyle eşleşmesini gerektirir:

Aşağıdaki temel modeller de resim oluşturucuyla uyumludur:

Bir temel model indirdikten sonra, modeli Görüntü Oluşturucu için uygun cihaz üzerinde biçime dönüştürmek üzere image_generator_converter'ı kullanın.

Gerekli bağımlılıkları yükleyin:

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

convert.py komut dosyasını çalıştırın:

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

Eklenti modelleri

Bu bölümdeki eklenti modelleri Google tarafından geliştirilmiştir ve bir temel modelle birlikte kullanılmalıdır. Eklenti modelleri, Görüntü Oluşturucu'nun giriş olarak bir metin istemiyle birlikte koşullu resim kabul etmesini sağlar. Bu sayede, oluşturulan resimlerin yapısını kontrol edebilirsiniz. Eklenti modelleri, cihaz üzerinde dağıtım için özel olarak tasarlanmış yeni bir mimariyle ControlNet'e benzer özellikler sunar.

Eklenti modelleri temel seçeneklerde belirtilmelidir ve ek model dosyaları indirmeniz gerekebilir. Her eklentinin, resim oluşturucu tarafından oluşturulabilen durum resmi için benzersiz koşulları vardır.

Canny Edge eklentisi

Tuğlaların güçlü bir ana hatlarıyla sağlanan bir durum resmi ve istem kullanılan iki oluşturulmuş resmin örnek çıktısı

Canny Edge eklentisi, oluşturulan resmin istenen kenarlarının ana hatlarını çizen bir koşul resmi kabul eder. Temel model, koşul resminin ima ettiği kenarları kullanır ve metin isteğine göre yeni bir resim oluşturur. Görüntü Oluşturucu, durum resimleri oluşturmak için yerleşik özelliklere sahiptir ve yalnızca eklenti modelinin indirilmesini gerektirir.

Canny Edge eklentisini indirin

Canny Edge eklentisi aşağıdaki yapılandırma seçeneklerini içerir:

Seçenek Adı Açıklama Değer Aralığı Varsayılan değer
threshold1 Hysteresis işlemi için ilk eşik. Float 100
threshold2 Hysteresis işlemi için ikinci eşik. Float 200
apertureSize Sobel operatörü için diyafram açıklığı. Tipik aralık 3-7 arasındadır. Integer 3
l2Gradient Resim gradyan büyüklüğünü hesaplamak için varsayılan L1 normu yerine L2 normunun kullanılıp kullanılmayacağı. BOOLEAN False
EdgePluginModelBaseOptions Eklenti modelinin yolunu ayarlayan BaseOptions nesnesi. BaseOptions nesnesi N/A

Bu yapılandırma seçeneklerinin işleyiş şekli hakkında daha fazla bilgi için Keskin kenar algılayıcı başlıklı makaleyi inceleyin.

Yüz Önemli Noktası eklentisi

Çizilmiş bir yüzün koşul resminin kullanıldığı ve aynı koşul resminin çok farklı görünümlü resimler oluşturmak için kullanılabileceğini gösteren iki farklı istem kullanılan iki oluşturulmuş resmin örnek çıktısı

Yüz Yer İşareti eklentisi, MediaPipe Yüz Yer İşareti'nin çıkışını koşul resmi olarak kabul eder. Yüz işaretçisi, tek bir yüzün ayrıntılı yüz örgüsünü sağlar. Bu örgüyle yüz özelliklerinin varlığını ve konumunu haritalayabilirsiniz. Temel model, durum resminin ima ettiği yüz eşlemesini kullanır ve örgünün üzerine yeni bir yüz oluşturur.

Yüz yer işareti eklentisini indirin

Yüz yer işareti eklentisi, koşul resmini oluşturmak için Yüz Yer İşareti Belirleyici model paketini de gerektirir. Bu model paketi, Yüz İşaretçisi görevi tarafından kullanılan paketle aynıdır.

Yüz yer işareti modeli paketini indirin

Yüz İşaretçisi eklentisi aşağıdaki yapılandırma seçeneklerini içerir:

Seçenek Adı Açıklama Değer Aralığı Varsayılan değer
minFaceDetectionConfidence Yüz algılamanın başarılı olarak kabul edilmesi için gereken minimum güven puanı. Float [0.0,1.0] 0.5
minFacePresenceConfidence Yüz yer işareti algılamada yüz varlığı puanının minimum güven puanı. Float [0.0,1.0] 0.5
faceModelBaseOptions Koşul resmini oluşturan modelin yolunu ayarlayan BaseOptions nesnesi. BaseOptions nesnesi N/A
FacePluginModelBaseOptions Eklenti modelinin yolunu ayarlayan BaseOptions nesnesi. BaseOptions nesnesi N/A

Bu yapılandırma seçeneklerinin işleyiş şekli hakkında daha fazla bilgi için Yüz İşaretçisi görevi başlıklı makaleyi inceleyin.

Derinlik eklentisi

Derinlik eklentisinin düz bir resme derinlik katan resimler oluşturabileceğini göstermek için bir arabanın genel şeklini gösteren sağlanmış bir durum resminin kullanıldığı, oluşturulan iki resmin örnek çıkışı

Derinlik eklentisi, bir nesnenin tek gözlü derinliğini belirten bir koşul resmi kabul eder. Temel model, oluşturulacak nesnenin boyutunu ve derinliğini tahmin etmek için koşul resmini kullanır ve metin isteminden yola çıkarak yeni bir resim oluşturur.

Derinlik eklentisini indirin

Derinlik eklentisi, koşullu resmi oluşturmak için bir derinlik tahmini modeli de gerektirir.

Derinlik tahmini modelini indirin

Derinlik eklentisi aşağıdaki yapılandırma seçeneklerini içerir:

Seçenek Adı Açıklama Değer Aralığı Varsayılan değer
depthModelBaseOptions Koşul resmini oluşturan modelin yolunu ayarlayan BaseOptions nesnesi. BaseOptions nesnesi N/A
depthPluginModelBaseOptions Eklenti modelinin yolunu ayarlayan BaseOptions nesnesi. BaseOptions nesnesi N/A

LoRA ile özelleştirme

Bir modeli LoRA ile özelleştirmek, Resim Oluşturucu'nun eğitim sırasında benzersiz jetonlarla tanımlanan belirli kavramlara dayalı resimler oluşturmasını sağlayabilir. Eğitimden sonra yeni LoRA ağırlıklarıyla model, metin isteminde jeton belirtildiğinde yeni kavramın resimlerini oluşturabilir.

LoRA ağırlıkları oluşturmak için belirli bir nesnenin, kişinin veya stilin resimleriyle bir temel model eğitmeniz gerekir. Bu, modelin yeni kavramı tanımasını ve resim oluştururken uygulamasını sağlar. Belirli kişilerin ve yüzlerin resimlerini oluşturmak için LoRa ağırlıkları oluşturuyorsanız bu çözümü yalnızca kendi yüzünüzde veya size izin veren kişilerin yüzlerinde kullanın.

Aşağıda, "monadikos teapot" jetonu kullanılarak DreamBooth veri kümesinden çaydanlık resimleri üzerinde eğitilen özelleştirilmiş bir modelin çıktısı verilmiştir:

Duvara monte edilmiş bir aynanın yanındaki masada duran bir çaydanlığın fotoğraf gerçekliğinde oluşturulmuş resmi

İstem: Aynanın yanında bir monadikos çaydanlık

Özelleştirilmiş model, istemdeki jetonu aldı ve LoRA ağırlıklarından tasvir etmeyi öğrendiği bir çaydanlığı ekledi. Ardından, istemde istendiği gibi resmin yanındaki aynaya yerleştirdi.

Vertex AI ile LoRA

Daha fazla bilgi için Vertex AI'daki Model Bahçesi'ni kullanarak bir temel modele LoRA ağırlıkları uygulayarak modeli özelleştiren özelleştirme kılavuzuna bakın.