Metinden resme oluşturma, bir makine öğrenimi (ML) modelinin metinsel bir açıklamadan bir görüntü oluşturduğu bir görevdir. Amaç, metnin ayrıntılarını ve nüanslarını yakalayan, açıklamaya yakından uyan bir görüntü oluşturmaktır. Bu görev zordur, çünkü modelin metnin semantiğini ve söz dizimini anlamasını ve fotogerçekçi görüntüler oluşturmasını gerektirir. AI fotoğrafçılığı, konsept sanatı, bina mimarisi, moda, video oyunları, grafik tasarım ve çok daha fazlasında metinden görüntüye oluşturmanın birçok pratik uygulaması vardır.
Kararlı Difüzyon saniyeler içinde yüksek kaliteli görüntüler oluşturmanızı sağlayan bir metinden görüntüye modelidir. Bu tür bir modelle gerçek zamanlı etkileşim hedef olduğunda, sorunsuz bir kullanıcı deneyiminin sağlanması, GPU'lar veya GPU'lar gibi çıkarım için hızlandırılmış donanımların kullanımına bağlıdır. AWS Çıkarımı2, Amazon'un kendi makine öğrenimi çıkarım hızlandırıcısı. GPU'ların kullanımıyla ilgili yüksek maliyetler, tipik olarak, farklı mimarileri veya kişiselleştirilmiş (ince ayarlı) modelleri dağıtmanız gerektiğinde daha da fazla olmak üzere, temel bilgi işlemin kullanımının optimize edilmesini gerektirir. Amazon Adaçayı Yapıcı çok modelli uç noktalar (MME'ler), binlerce modeli tek bir uç noktaya ölçeklendirmenize yardımcı olarak bu sorunu çözmenize yardımcı olur. Paylaşılan bir sunum kapsayıcısı kullanarak birden çok modeli aynı uç nokta ve hatta aynı GPU içinde uygun maliyetli, ölçeklenebilir bir şekilde barındırabilirsiniz.
Bu yazıda, Stable Difüzyon model mimarileri, farklı Stable Difüzyon modelleri türleri ve görüntü kalitesini artırma teknikleri hakkında bilgi edineceksiniz. Ayrıca, SageMaker MME'leri ve NVIDIA Triton Inference Server'ı kullanarak Stable Difüzyon modellerini uygun maliyetli bir şekilde nasıl kuracağınızı da gösteriyoruz.
Komut istemi: sevimli bir bernese köpeğinin portresi, elke Vogelsang'ın sanatı, 8k ultra gerçekçi, artstation'da trend oluyor, 4k | Komut istemi: oturma odasının mimari tasarımı, 8 k ultra gerçekçi, 4 k, hiper gerçekçi, odaklanmış, aşırı ayrıntılar | İstem: Geceleri New York silüeti, 8k, uzun çekim fotoğrafçılığı, gerçek dışı motor 5, sinematik, başyapıt |
Kararlı Difüzyon mimarisi
Stable Diffusion, yalnızca bir metin istemi sağlayarak farklı stil ve içeriklere sahip görüntüler oluşturmak için kullanabileceğiniz, metinden görüntüye açık kaynaklı bir modeldir. Metinden görüntüye oluşturma bağlamında, bir difüzyon modeli, metinsel açıklamalardan yüksek kaliteli görüntüler oluşturmak için kullanabileceğiniz üretken bir modeldir. Difüzyon modelleri, girdi ve çıktı modaliteleri, metin ve resimler arasındaki karmaşık bağımlılıkları yakalayabilen bir üretken model türüdür.
Aşağıdaki diyagram, bir Kararlı Difüzyon modelinin üst düzey mimarisini göstermektedir.
Aşağıdaki temel unsurlardan oluşur:
- metin kodlayıcı – CLIP, giriş istemi metnini alan ve metindeki her bir kelimeyi temsil eden belirteç katıştırmalarına dönüştüren dönüştürücü tabanlı bir metin kodlayıcı modelidir. CLIP, görüntü kodlayıcı ve metin kodlayıcının bir kombinasyonu olan bir görüntü veri kümesi ve altyazıları üzerinde eğitilmiştir.
- U-Net – Bir U-Net modeli, bir dizi gürültülü girişle birlikte CLIP'ten belirteç yerleştirmelerini alır ve gürültüsü giderilmiş bir çıktı üretir. Bu, her adımın bir girdi gizli tensörünü işlediği ve girdi metnini daha iyi temsil eden yeni bir gizli uzay tensörü ürettiği bir dizi yinelemeli adım olsa gerçekleşir.
- Otomatik kodlayıcı-kod çözücü – Bu model nihai görüntüleri oluşturur. U-Net modelinden gürültüden arındırılmış nihai gizli çıktıyı alır ve onu metin girişini temsil eden görüntülere dönüştürür.
Kararlı Difüzyon modellerinin türleri
Bu gönderide, Hugging Face model merkezinden Stability AI tarafından önceden eğitilmiş aşağıdaki Stable Difusion modellerini keşfediyoruz.
kararlı difüzyon-2-1-baz
Bir metin istemine dayalı görüntüler oluşturmak için bu modeli kullanın. Bu, üzerinde eğitilen modelin temel bir sürümüdür. LAION-5B. Model, büyük ölçekli veri setinin bir alt kümesi üzerinde eğitilmiştir. LAION-5Bve çoğunlukla İngilizce altyazılı. Kullanırız StableDiffusionPipeline
itibaren diffusers
metin istemlerinden görüntüler oluşturmak için kitaplık. Bu model, 512 x 512 boyutunda görüntüler oluşturabilir. Aşağıdaki parametreleri kullanır:
- istemi – Bilgi istemi bir metin sözcüğü, deyim, cümleler veya paragraflar olabilir.
- negatif_bilgi istemi – Ayrıca, belirtilen öğeleri görüntü oluşturma sürecinden çıkarmak ve oluşturulan görüntülerin kalitesini artırmak için olumsuz bir bilgi istemi iletebilirsiniz.
- rehberlik_ölçeği – Daha yüksek bir yönlendirme ölçeği, görüntü kalitesi pahasına istemle daha yakından ilişkili bir görüntüyle sonuçlanır. Belirtilmişse, bir kayan nokta olmalıdır.
kararlı difüzyon-2-derinlik
Bu model, orijinal görüntüdeki nesnelerin şeklini ve derinliğini korurken mevcut olanlardan yeni görüntüler oluşturmak için kullanılır. Bu stable-diffusion-2-depth model
ince ayarlıdır kararlı difüzyon-2-baz, (bağıl) derinlik tahminini işlemek için ekstra bir giriş kanalı. Kullanırız StableDiffusionDepth2ImgPipeline
itibaren diffusers
işlem hattını yüklemek ve derinlik görüntüleri oluşturmak için kitaplık. Aşağıdakiler, derinlik modeline özgü ek parametrelerdir:
- görüntü – Yeni görüntülerin oluşturulmasını koşullandırmak için ilk görüntü.
- sayı_çıkarım_adımları (opsiyonel) – Gürültü giderme adımlarının sayısı. Daha fazla gürültü giderici adım, genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar. Bu parametre tarafından modüle edilir
strength
. - güç (isteğe bağlı) – Kavramsal olarak bu, referans görüntünün ne kadar dönüştürüleceğini gösterir. Değer 0–1 arasında olmalıdır.
image
başlangıç noktası olarak kullanılır ve güç arttıkça ona daha fazla gürültü eklenir. Gürültü giderme adımlarının sayısı, başlangıçta eklenen gürültü miktarına bağlıdır. Ne zamanstrength
1'dir, eklenen gürültü maksimum olur ve gürültü giderme işlemi, içinde belirtilen tam yineleme sayısı boyunca çalışır.num_inference_steps
. 1 değeri, bu nedenle, esasen yok sayarimage
. Daha fazla ayrıntı için aşağıdakilere bakın kod.
kararlı difüzyon-2-iç boyama
Bu modeli yapay zeka görüntü geri yükleme kullanım durumları için kullanabilirsiniz. Bilgi istemlerinden ve ek bağımsız değişkenlerden yeni tasarımlar ve görüntüler oluşturmak için de kullanabilirsiniz. Bu model de temel modelden türetilmiştir ve bir maske oluşturma stratejisine sahiptir. Değiştirilecek bölümleri ve değişmeden bırakılacak bölümleri temsil etmek için orijinal görüntünün maskesini belirtir. Kullanırız StableDiffusionUpscalePipeline
itibaren diffusers
orijinal görüntü üzerinde boyama değişikliklerini uygulamak için kitaplık. Aşağıdaki ek parametre derinlik modeline özeldir:
- maske_girişi – Görüntü oluşturulurken karartılan bölümün değişmeden kaldığı ve beyaz bölümün değiştirildiği bir görüntü
kararlı difüzyon-x4-yukarı ölçekleyici
Bu model ayrıca LAION'un 10 x 2048 görüntü içeren 2048M alt kümesinde ek olarak eğitilmiş temel modelden türetilmiştir. Adından da anlaşılacağı gibi, daha düşük çözünürlüklü görüntüleri daha yüksek çözünürlüklere yükseltmek için kullanılabilir.
Kullanım örneğine genel bakış
Bu gönderi için, metinden yeni görüntüler oluşturma, mevcut görüntülerin stillerini değiştirme, görüntülerden istenmeyen nesneleri kaldırma ve düşük çözünürlüklü görüntüleri daha yüksek çözünürlüğe yükseltme dahil olmak üzere birden çok yeteneğe sahip bir AI görüntü hizmeti kullanıyoruz. Stabil Difüzyon modellerinin çeşitli varyasyonlarını kullanarak, bu kullanım durumlarının tümünü tek bir SageMaker uç noktasında ele alabilirsiniz. Bu, çok sayıda modeli yüksek performanslı, ölçeklenebilir ve uygun maliyetli bir şekilde barındırmanız gerekeceği anlamına gelir. Bu gönderide, SageMaker MME'leri ve NVIDIA Triton Inference Sunucusunu kullanarak birden çok Kararlı Difüzyon modelinin uygun maliyetli bir şekilde nasıl dağıtılacağını gösteriyoruz. Metinden resme modellerle çalışmak için uygulama ayrıntılarını, optimizasyon tekniklerini ve en iyi uygulamaları öğreneceksiniz.
Aşağıdaki tablo, bir SageMaker MME'ye dağıttığımız Kararlı Yayılma modellerini özetlemektedir.
Model adı | GB cinsinden Model Boyutu |
stabilityai/stable-diffusion-2-1-base |
2.5 |
stabilityai/stable-diffusion-2-depth |
2.7 |
stabilityai/stable-diffusion-2-inpainting |
2.5 |
stabilityai/stable-diffusion-x4-upscaler |
7 |
Çözüme genel bakış
Aşağıdaki adımlar, Stable Difüzyon modellerini SageMaker MME'lerine dağıtmakla ilgilidir:
- Stable Difüzyon modellerini yerel bir dizine indirmek için Hugging Face hub'ını kullanın. Bu indirecek
scheduler, text_encoder, tokenizer, unet, and vae
her Kararlı Difüzyon modeli için karşılık gelen yerel dizine. biz kullanıyoruzrevision="fp16"
modelin versiyonu. - NVIDIA Triton model deposunu, model yapılandırmalarını ve model sunma mantığını kurun
model.py
. Triton, tahminlere hizmet etmek için bu yapıları kullanır. - Conda ortamını ek bağımlılıklarla ve SageMaker MME'ye dağıtılacak paket modeli havuzuyla paketleyin.
- Model eserlerini NVIDIA Triton'a özgü bir biçimde paketleyin ve yükleyin
model.tar.gz
için Amazon Basit Depolama Hizmeti (Amazon S3). Model, görüntü oluşturmak için kullanılacaktır. - Bir SageMaker modeli, uç nokta yapılandırması yapılandırın ve SageMaker MME'yi konuşlandırın.
- Kararlı Difüzyon modelini kullanarak görüntüler oluşturmak için çıkarım çalıştırın ve SageMaker uç noktasına bilgi istemleri gönderin. Biz belirtiyoruz
TargetModel
değişken ve sonuçları görsel olarak karşılaştırmak için farklı Kararlı Difüzyon modellerini çağırın.
Bu çözüm mimarisini uygulamak için kodu yayınladık. GitHub repo. Başlamak için BENİOKU yönergelerini izleyin.
Modelleri NVIDIA Triton Inference Server Python arka ucuyla sunun
Stable Diffusion ardışık düzen modelini bir SageMaker MME'ye dağıtmak için bir Triton Python arka ucu kullanıyoruz. Python arka ucu, Python'da Triton Inference Server tarafından yazılan modelleri sunmanıza olanak tanır. Python arka ucunu kullanmak için bir Python dosyası oluşturmanız gerekir. model.py
aşağıdaki yapıya sahiptir: Her Python arka ucu, TritonPythonModel
sınıf:
Her Python arka ucu, dört ana işlevi uygulayabilir. TritonPythonModel
sınıf: auto_complete_config
, initialize
, execute
, ve finalize
.
initialize
model yüklenirken çağrılır. uygulama initialize
İsteğe bağlı. initialize
çıkarımı çalıştırmadan önce gerekli tüm başlatmaları yapmanızı sağlar. İçinde initialize
işlevi, bir boru hattı oluşturuyoruz ve kullanarak boru hatlarını yüklüyoruz. from_pretrained
kontrol noktaları. Zamanlayıcıları işlem hattı zamanlayıcı yapılandırmasından yapılandırıyoruz pipe.scheduler.config
. Son olarak belirtiyoruz xformers
etkinleştirmek için optimizasyonlar xformer
bellek verimli parametre enable_xformers_memory_efficient_attention
. hakkında daha fazla ayrıntı sunuyoruz xformers
bu yazının devamında. Farklı işlem hattı ayrıntılarını anlamak için her modelin model.py dosyasına başvurabilirsiniz. Bu dosya model deposunda bulunabilir.
The execute
bir çıkarım isteği yapıldığında işlev çağrılır. Her Python modeli aşağıdakileri uygulamalıdır: execute
işlevi. İçinde execute
işlevi, size bir liste verilir InferenceRequest
nesneler. Modelden bir görüntü almak için giriş metni istemini boru hattına iletiyoruz. Görüntülerin kodu çözülür ve oluşturulan görüntü bu işlev çağrısından döndürülür.
Giriş tensörünü model konfigürasyonunda tanımlanan addan alıyoruz. config.pbtxt
dosya. Çıkarım isteğinden şunu elde ederiz: prompt
, negative_prompt
, ve gen_args
ve bunları deşifre edin. Tüm argümanları model boru hattı nesnesine iletiyoruz. Oluşturulan görüntü tahminlerini döndürmek için görüntüyü kodlayın. başvurabilirsiniz config.pbtxt
Farklı işlem hattı ayrıntılarını anlamak için her modelin dosyası. Bu dosya model deposunda bulunabilir. Son olarak, oluşturulan görüntüyü içine sarıyoruz InferenceResponse
ve yanıtı döndürün.
Uygulama finalize
İsteğe bağlı. Bu işlev, model Triton Inference Server'dan kaldırılmadan önce gerekli tüm temizlikleri yapmanızı sağlar.
Python arka ucuyla çalışırken, girdilerin toplu olarak işlenmesini ve yanıtların buna göre geri gönderilmesini sağlamak kullanıcının sorumluluğundadır. Bunu başarmak için aşağıdaki adımları izlemenizi öneririz:
- içindeki tüm istekler arasında döngü
requests
oluşturmak için nesnebatched_input
. - Üzerinde çıkarım çalıştır
batched_input
. - Sonuçları çoklu olarak bölün
InferenceResponse
nesneleri ve bunları yanıtlar olarak birleştirin.
Bakın Triton Python arka uç belgeleri or Triton kullanarak Amazon SageMaker'da makine öğrenimi modelleri barındırın: Python arka ucu daha fazla ayrıntı için.
NVIDIA Triton model deposu ve yapılandırması
Model deposu, model sunan betiği, model yapıtlarını ve belirteç yapıtlarını, paketlenmiş bir conda ortamını (çıkarım için gerekli bağımlılıklarla birlikte), Triton yapılandırma dosyasını ve çıkarım için kullanılan Python betiğini içerir. İkincisi, Python arka ucunu kullandığınızda zorunludur ve Python dosyasını kullanmalısınız. model.py
. inpaint Stable Difüzyon modelinin yapılandırma dosyasını inceleyelim ve belirtilen farklı seçenekleri anlayalım:
Aşağıdaki tabloda çeşitli parametreler ve değerler açıklanmaktadır:
anahtar | - Detaylar |
name |
Model yapılandırma adı özelliğinin dahil edilmesi gerekli değildir. Konfigürasyonun model adını belirtmemesi durumunda, modelin depolandığı model deposu dizininin adıyla aynı olduğu varsayılır. Ancak, bir ad verilirse, modelin saklandığı model deposu dizininin adıyla eşleşmelidir. sd_inpaint yapılandırma özelliği adıdır. |
backend |
Bu, model tahminlerine hizmet edecek Triton çerçevesini belirtir. Bu zorunlu bir parametredir. belirtiyoruz python , çünkü Stable Diffusion modellerini barındırmak için Triton Python arka ucunu kullanacağız. |
max_batch_size |
Bu, modelin aşağıdakiler için desteklediği maksimum parti boyutunu gösterir: harmanlama türleri bu Triton tarafından istismar edilebilir. |
input→ prompt |
Dize türünde metin istemi. Dinamik tensör şeklini kabul etmek için -1'i belirtin. |
input→ negative_prompt |
Dize türünde negatif metin istemi. Dinamik tensör şeklini kabul etmek için -1'i belirtin. |
input→ mask_image |
Dize türündeki Base64 kodlu maske görüntüsü. Dinamik tensör şeklini kabul etmek için -1'i belirtin. |
input→ image |
Dize türünde Base64 kodlu görüntü. Dinamik tensör şeklini kabul etmek için -1'i belirtin. |
input→ gen_args |
JSON, string türünde ek bağımsız değişkenleri kodladı. Dinamik tensör şeklini kabul etmek için -1'i belirtin. |
output→ generated_image |
Dize türünde oluşturulan görüntü. Dinamik tensör şeklini kabul etmek için -1'i belirtin. |
instance_group |
Bir modelin birden çok çalıştırma örneğini her GPU'ya veya yalnızca belirli GPU'lara yerleştirmek için bu ayarı kullanabilirsiniz. belirtiyoruz KIND_GPU mevcut GPU'larda modelin kopyalarını oluşturmak için. |
parameters |
Conda ortam yolunu şu şekilde ayarladık: EXECUTION_ENV_PATH . |
Model deposu ve diğer Kararlı Difüzyon modellerinin yapılandırmaları hakkında ayrıntılar için, aşağıdaki koda bakın: GitHub repo. Her dizin, belirli Kararlı Difüzyon modelleri için yapıtlar içerir.
Conda ortamını paketleyin ve SageMaker Triton kapsayıcısını genişletin
SageMaker NVIDIA Triton kapsayıcı görüntüleri aşağıdaki gibi kitaplıklar içermez transformer, accelerate, and diffusers
Kararlı Yayılma modellerini dağıtmak ve sunmak için. Ancak Triton, kullanarak ek bağımlılıklar getirmenize izin verir. conda paketi. Şimdi ana hatlarıyla belirtilen gerekli bağımlılıklarla birlikte conda ortamını oluşturarak başlayalım. environment.yml
dosyasını açın ve bir tar modeli yapıtı oluşturun sd_env.tar.gz
içinde yüklü bağımlılıklarla birlikte conda ortamını içeren dosya. oluşturmak için aşağıdaki YML dosyasını çalıştırın. conda-pack
yapıtı seçin ve yapıtı Amazon S3'e yükleneceği yerel dizine kopyalayın. Conda eserlerini MME'deki modellerden biri olarak yükleyeceğimizi ve SageMaker barındırma ML örneğinde conda ortamını ayarlamak için bu modeli çalıştıracağımızı unutmayın.
Model yapılarını Amazon S3'e yükleyin
SageMaker, her bir Triton model deposunu içeren .tar.gz dosyasının çoklu model uç noktasında barındırılmasını bekler. Bu nedenle, Triton model deposundan içerikle bir tar yapısı oluşturuyoruz. Binlerce model yapısını barındırmak için bu S3 kovasını kullanabiliriz ve SageMaker MME, çok sayıda modeli dinamik olarak yüklemek ve sunmak için bu konumdaki modelleri kullanır. Tüm Stabil Difüzyon modellerini bu Amazon S3 konumunda depolarız.
SageMaker MME'yi dağıtın
Bu bölümde, konteyner belirtimini, SageMaker modelini ve uç nokta yapılandırmalarını tanımlayarak SageMaker MME'yi dağıtma adımlarını inceliyoruz.
Servis kapsayıcısını tanımlayın
Kapsayıcı tanımında şunları tanımlayın: ModelDataUrl
SageMaker MME'nin tahminleri yüklemek ve sunmak için kullanacağı tüm modelleri içeren S3 dizinini belirtmek için. Ayarlamak Mode
için MultiModel
SageMaker'ın uç noktayı MME konteyner belirtimleriyle oluşturacağını belirtmek için. Kapsayıcıyı, MME'lerin GPU ile dağıtılmasını destekleyen bir görüntüyle ayarladık. Görmek Desteklenen algoritmalar, çerçeveler ve örnekler daha fazla ayrıntı için.
Aşağıdaki Amazon S3'te üç model yapısını da görüyoruz ModelDataUrl
Konumu:
Bir MME nesnesi oluşturun
Modeli oluşturmak için SageMaker Boto3 istemcisini kullanıyoruz. model_oluştur API. Container tanımını, create model API'sine ile birlikte iletiyoruz. ModelName
ve ExecutionRoleArn
:
MME için yapılandırmaları tanımlayın
kullanarak bir MME konfigürasyonu oluşturun. create_endpoint_config Boto3 API'si. Şurada hızlandırılmış bir GPU bilgi işlem örneği belirtin: InstanceType
(SageMaker not defterimizi barındırmak için kullandığımız bulut sunucusu tipinin aynısını kullanıyoruz). Uç noktalarınızı gerçek hayattaki kullanım durumlarıyla en az iki örnekle yapılandırmanızı öneririz. Bu, SageMaker'ın modeller için birden çok Erişilebilirlik Alanında yüksek düzeyde kullanılabilir bir tahmin seti sağlamasına olanak tanır.
Bir MME oluşturun
Yeni bir SageMaker uç noktası oluşturmak için önceki uç nokta yapılandırmasını kullanın ve konuşlandırmanın bitmesini bekleyin:
Durum şu şekilde değişecektir: InService
dağıtım başarılı olduğunda.
Kararlı Difüzyon modellerinin farklı sürümlerini kullanarak görüntüler oluşturun
Temel modeli bir bilgi istemi ile çağırarak ve oluşturulan görüntüyü alarak başlayalım. Girdileri ile temel modele aktarıyoruz prompt, negative_prompt, and gen_args
sözlük olarak. Sözlükteki her girdi öğesinin veri tipini ve şeklini ayarlayıp modele girdi olarak iletiyoruz.
Komut istemi: Yüksek bir binanın tepesindeki sonsuzluk havuzu Central Park'a bakan
Bu görüntüyle çalışarak, onu çok yönlü Kararlı Difüzyon derinlik modeliyle değiştirebiliriz. Örneğin, orijinal görüntüyü görmek istediğimiz değişiklikleri açıklayan bir istemle birlikte ileterek görüntünün stilini bir yağlı boya tabloya değiştirebilir veya Central Park'tan Yellowstone Ulusal Parkı'na değiştirebiliriz.
Derinlik modelini belirterek çağırıyoruz sd_depth.tar.gz
içinde TargetModel
arasında invoke_endpoint
fonksiyon çağrısı Çıktılarda, orijinal görüntünün yönünün nasıl korunduğuna dikkat edin, ancak bir örnek için, NYC binaları aynı şekle sahip kaya oluşumlarına dönüştürülmüştür.
Orijinal görüntü | Yağlı boya | Yellowstone Parkı |
Bir başka kullanışlı model de, görüntünün belirli kısımlarını kaldırmak için kullanabileceğimiz Stable Difusion iç boyamadır. Diyelim ki aşağıdaki örnek görseldeki ağacı kaldırmak istiyorsunuz. Bunu inpaint modelini çağırarak yapabiliriz. sd_inpaint.tar.gz.
Ağacı kaldırmak için bir mask_image
, görüntünün hangi bölgelerinin tutulması ve hangilerinin doldurulması gerektiğini belirtir. Maske görüntüsünün siyah piksel kısmı değişmeden kalması gereken bölgeleri, beyaz pikseller ise değiştirilmesi gereken bölgeleri gösterir.
Orijinal görüntü | Maske resmi | Resmi boya |
Son örneğimizde, daha önce 512 x 512 çözünürlüğünden oluşturulan orijinal görüntünün boyutunu 128 x 128'e indiriyoruz. görüntü, ilk görüntüyü oluşturmak için kullandığımız gibi. Gerekli olmamakla birlikte, görüntüyü açıklayan bir bilgi istemi sağlamak, yükseltme sürecini yönlendirmeye yardımcı olur ve daha iyi sonuçlara yol açmalıdır.
Düşük çözünürlüklü görüntü | Yükseltilmiş görüntü |
Büyütülmüş görüntü, orijinal kadar ayrıntılı olmasa da, düşük çözünürlüklü olana göre belirgin bir gelişmedir.
Bellek ve hız için optimize edin
The xformers
kitaplığı, görüntü oluşturmayı hızlandırmanın bir yoludur. Bu optimizasyon yalnızca NVIDIA GPU'lar için kullanılabilir. Görüntü oluşturmayı hızlandırır ve VRAM kullanımını azaltır. biz kullandık xformers
bellek verimli dikkat ve hız için kitaplık. Ne zaman enable_xformers_memory_efficient_attention
seçeneği etkinleştirildiğinde, daha düşük GPU bellek kullanımı ve çıkarım zamanında potansiyel bir hızlanma gözlemlemelisiniz.
Temizlemek
Gereksiz masraflardan kaçınmak için bu blogun kaynak sağlanan bölümünü silmek için not defterinin temizleme bölümündeki talimatları izleyin. Bahsetmek Amazon SageMaker Fiyatlandırması ayrıntılar için çıkarım örneklerinin maliyeti.
Sonuç
Bu yazıda, Stable Diffusion modellerini ve SageMaker çoklu model uç noktalarını kullanarak Stable Diffusion modellerinin farklı sürümlerini uygun maliyetli bir şekilde nasıl dağıtabileceğinizi tartıştık. Bir içerik oluşturucu görüntü oluşturma ve düzenleme aracı oluşturmak için bu yaklaşımı kullanabilirsiniz. içindeki kod örneklerine göz atın. GitHub repo başlamak ve oluşturduğunuz harika üretken yapay zeka aracı hakkında bize bilgi vermek için.
Yazarlar Hakkında
Simon Zamarin ana odak noktası müşterilerin veri varlıklarından değer elde etmelerine yardımcı olan bir AI / ML Çözümleri Mimarıdır. Simon boş zamanlarında aileyle vakit geçirmekten, bilim kurgu okumaktan ve çeşitli DIY ev projeleri üzerinde çalışmaktan hoşlanıyor.
vikram elango Virginia, ABD merkezli AWS'de Kıdemli Yapay Zeka/ML Çözümleri Mimarıdır. Şu anda üretken yapay zeka, LLM'ler, hızlı mühendislik, büyük model çıkarım optimizasyonu ve işletmeler genelinde makine öğrenimini ölçeklendirmeye odaklanmıştır. Vikram, finans ve sigorta sektörü müşterilerine, ML uygulamalarını uygun ölçekte oluşturmak ve dağıtmak için tasarım ve mimari konusunda yardımcı olur. Boş zamanlarında ailesiyle birlikte seyahat etmeyi, yürüyüş yapmayı, yemek yapmayı ve kamp yapmayı seviyor.
Joao Moura İspanya merkezli AWS'de Yapay Zeka/ML Çözümleri Uzmanı Mimardır. Müşterilere derin öğrenme modeli eğitimi ve çıkarım optimizasyonu ve AWS'de daha geniş kapsamlı büyük ölçekli makine öğrenimi platformları oluşturma konusunda yardımcı olur. Ayrıca makine öğrenimi konusunda uzmanlaşmış donanım ve düşük kodlu makine öğrenimi çözümlerinin aktif bir savunucusudur.
Saurabh Trikande Amazon SageMaker Inference için Kıdemli Ürün Yöneticisidir. Müşterilerle çalışma konusunda tutkulu ve makine öğrenimini demokratikleştirme hedefiyle motive oluyor. Karmaşık makine öğrenimi uygulamaları, çok kiracılı makine öğrenimi modelleri, maliyet optimizasyonları ve derin öğrenme modellerinin dağıtımını daha erişilebilir hale getirmeyle ilgili temel zorluklara odaklanıyor. Saurabh boş zamanlarında yürüyüş yapmaktan, yenilikçi teknolojiler hakkında bilgi edinmekten, TechCrunch'ı takip etmekten ve ailesiyle vakit geçirmekten hoşlanıyor.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoAiStream. Web3 Veri Zekası. Bilgi Genişletildi. Buradan Erişin.
- Adryenn Ashley ile Geleceği Basmak. Buradan Erişin.
- PREIPO® ile PRE-IPO Şirketlerinde Hisse Al ve Sat. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/create-high-quality-images-with-stable-diffusion-models-and-deploy-them-cost-efficiently-with-amazon-sagemaker/