Moda endüstrisi bir çok karlı işDünya Bankası tarafından bildirildiği üzere, 2.1 yılına kadar tahmini değeri 2025 trilyon dolar olacak. Bu alan, giyim, ayakkabı ve aksesuarların yaratılması, üretilmesi, dağıtılması ve satışı gibi çok çeşitli segmentleri kapsar. Sektör, sık sık ortaya çıkan yeni stiller ve trendlerle sürekli bir değişim halindedir. Bu nedenle, moda şirketleri pazarda ilgilerini korumak ve başarıya ulaşmak için esnek olmalı ve uyum sağlayabilmelidir.
Üretken yapay zeka (AI), öğrenilen bir dizi model ve veriye dayalı olarak resim, metin, ses veya video gibi yeni içerik oluşturmak için tasarlanmış yapay zeka algoritmalarını ifade eder. Gelişmiş kişiselleştirme ve maliyet etkinliği sunarken yeni ve yenilikçi giyim tasarımları oluşturmak için kullanılabilir. Yapay zeka güdümlü tasarım araçları, metin istemleri aracılığıyla potansiyel müşteriler tarafından belirtilen girdi parametrelerine veya stillerine dayalı olarak benzersiz giyim tasarımları oluşturabilir. Ayrıca, tasarımları müşterinin tercihlerine göre kişiselleştirmek için AI kullanılabilir. Örneğin, bir müşteri çeşitli renkler, desenler ve stiller arasından seçim yapabilir ve yapay zeka modelleri bu seçimlere dayalı olarak türünün tek örneği bir tasarım oluşturabilir. Yapay zekanın moda endüstrisinde benimsenmesi şu anda çeşitli teknik, fizibilite ve maliyet zorlukları nedeniyle engellenmektedir. Bununla birlikte, bu engeller artık doğal dil tabanlı görüntü semantik bölümleme ve sanal stil için difüzyon gibi gelişmiş üretken yapay zeka yöntemleri kullanılarak hafifletilebilir.
Bu blog gönderisi, metin istemlerini kullanarak üretken yapay zeka destekli çevrimiçi moda stilinin uygulanmasını ayrıntılarıyla anlatıyor. Makine öğrenimi (ML) mühendisleri, önceden eğitilmiş CLIPSeq ve Stable Diffusion'a dayalı olarak metinden anlamsal segmentasyona ve boyama modellerine ince ayar yapabilir ve devreye alabilir. Amazon Adaçayı Yapıcı. Bu, moda tasarımcılarının ve tüketicilerin metin istemlerine dayalı olarak sanal modelleme görüntüleri oluşturmasına ve tercih ettikleri stilleri seçmelerine olanak tanır.
Üretken Yapay Zeka Çözümleri
The KLİPLER model, basit metin komutlarını kullanarak resimlerdeki moda öğelerini kolayca tanımlamanıza olanak tanıyan yeni bir görüntü semantik bölümleme yöntemini tanıttı. Metinsel ve görsel bilgileri çok modlu bir gömme alanına kodlamak için bir metin istemi veya bir görüntü kodlayıcı kullanır ve istem temelinde hedef nesnelerin son derece doğru bir şekilde bölümlenmesini sağlar. Model, sıfır vuruşlu aktarım, doğal dil denetimi ve çok modlu kendi kendini denetleyen karşılaştırmalı öğrenme gibi tekniklerle çok miktarda veri üzerinde eğitilmiştir. Bu, tarafından halka açık olan önceden eğitilmiş bir modeli kullanabileceğiniz anlamına gelir. Timo Lüddecke ve diğerleri özelleştirmeye ihtiyaç duymadan.
CLIPSeg, bir metin bilgi istemine dayalı anlamsal bölümleme gerçekleştirmek için metinsel ve görsel bilgileri çok modlu bir gömme alanına kodlamak için bir metin ve görüntü kodlayıcı kullanan bir modeldir. CLIPSeg mimarisi iki ana bileşenden oluşur: bir metin kodlayıcı ve bir görüntü kodlayıcı. Metin kodlayıcı, metin istemini alır ve onu bir metin gömmeye dönüştürürken, görüntü kodlayıcı görüntüyü alır ve onu bir görüntü gömmeye dönüştürür. Her iki gömme daha sonra birleştirilir ve nihai segmentasyon maskesini üretmek için tamamen bağlı bir katmandan geçirilir.
Veri akışı açısından, model, metin istemlerinin bölümlere ayrılacak hedef nesneyi tanımladığı bir görüntü veri kümesi ve karşılık gelen metin istemleri üzerinde eğitilir. Eğitim sürecinde, metin kodlayıcı ve görüntü kodlayıcı, son segmentasyon maskesini üretmek için metin istemleri ile görüntü arasındaki eşlemeyi öğrenmek üzere optimize edilir. Model eğitildikten sonra, yeni bir metin istemi ve resim alabilir ve bilgi isteminde açıklanan nesne için bir segmentasyon maskesi üretebilir.
Kararlı Yayılma, moda tasarımcılarının uzun ve pahalı özelleştirmelere ihtiyaç duymadan yalnızca metin açıklamalarına dayalı olarak büyük miktarlarda son derece gerçekçi görüntüler oluşturmasına olanak tanıyan bir tekniktir. Bu, hızlı bir şekilde moda stilleri yaratmak isteyen tasarımcılar ve kişiselleştirilmiş ürünleri daha düşük maliyetle üretmek isteyen üreticiler için faydalıdır.
Aşağıdaki diyagram, Kararlı Difüzyon mimarisini ve veri akışını göstermektedir.
Geleneksel GAN tabanlı yöntemlerle karşılaştırıldığında Stable Diffusion, orijinal görüntünün dağılımına uyan daha kararlı ve foto-gerçekçi görüntüler üretebilen üretken bir yapay zekadır. Model, metinden görüntüye oluşturma için metin, düzenden görüntüye oluşturma için sınırlayıcı kutular, boyama içi için maskelenmiş görüntüler ve süper çözünürlük için daha düşük çözünürlüklü görüntüler gibi çok çeşitli amaçlara göre koşullandırılabilir. Difüzyon modelleri çok çeşitli iş uygulamalarına sahiptir ve pratik kullanımları gelişmeye devam etmektedir. Bu modeller, moda, perakende ve e-ticaret, eğlence, sosyal medya, pazarlama ve daha fazlası gibi çeşitli sektörlere büyük fayda sağlayacaktır.
CLIPSeg kullanarak metin istemlerinden maskeler oluşturun
Vogue çevrimiçi tasarım, müşterilerin çevrimiçi bir platform aracılığıyla yapay zekadan moda tavsiyesi ve önerileri almasını sağlayan bir hizmettir. Bunu, müşterinin görünümünü tamamlayan, bütçesine uygun ve kişisel tercihlerine uygun giysi ve aksesuarları seçerek yapar. Üretken yapay zekanın kullanılmasıyla görevler daha kolay gerçekleştirilebilir, bu da müşteri memnuniyetinin artmasına ve giderlerin azalmasına yol açar.
Çözüm, bir Amazon Elastik Bilgi İşlem Bulutu (EC2) 3.2G belleğe sahip tek bir V100 GPU'ya sahip p16xlarge bulut sunucusu. Performansı artırmak ve GPU bellek kullanımını azaltmak için çeşitli teknikler kullanıldı ve bu da daha hızlı görüntü üretimi sağladı. Bunlar, fp16'yı kullanmayı ve dikkat bloğundaki bant genişliğini azaltmak için belleği verimli dikkati etkinleştirmeyi içerir.
Kullanıcının bir moda görseli yüklemesiyle başladık, ardından önceden eğitilmiş modeli CLIPSeq'ten indirip çıkardık. Görüntü daha sonra normalleştirilir ve boyut sınırına uyacak şekilde yeniden boyutlandırılır. Stable Diffusion V2, 768×768'e kadar görüntü çözünürlüğünü desteklerken V1, 512×512'ye kadar destekler. Aşağıdaki koda bakın:
from models.clipseg import CLIPDensePredT # The original image
image = download_image(img_url).resize((768, 768)) # Download pre-trained CLIPSeq model and unzip the pkg
! wget https://owncloud.gwdg.de/index.php/s/ioHbRzFx6th32hn/download -O weights.zip
! unzip -d weights -j weights.zip # Load CLIP model. Available models = ['RN50', 'RN101', 'RN50x4', # 'RN50x16', 'RN50x64', 'ViT-B/32', 'ViT-B/16', 'ViT-L/14', 'ViT-L/14@336px']
model = CLIPDensePredT(version='ViT-B/16', reduce_dim=64)
model.eval() # non-strict, because we only stored decoder weights (not CLIP weights)
model.load_state_dict(torch.load('weights/rd64-uni.pth', map_location=torch.device('cuda')), strict=False) # Image normalization and resizing
transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), transforms.Resize((768, 768)),
])
img = transform(image).unsqueeze(0)
Önceden eğitilmiş CLIPSeq modelinin kullanımıyla, bir metin istemi kullanarak hedef nesneyi bir görüntüden çıkarabiliyoruz. Bu, metin istemini metin kodlayıcıya girerek, onu bir metin gömmeye dönüştürerek yapılır. Ardından görüntü, onu bir görüntü gömmeye dönüştüren görüntü kodlayıcıya girilir. Her iki gömme daha sonra birleştirilir ve metin isteminde açıklanan hedef nesneyi vurgulayan nihai segmentasyon maskesini üretmek için tamamen bağlı bir katmandan geçirilir. Aşağıdaki koda bakın:
# Text prompt
prompt = 'Get the dress only.' # predict
mask_image_filename = 'the_mask_image.png'
with torch.no_grad(): preds = model(img.repeat(4,1,1,1), prompt)[0] # save the mask image after computing the area under the standard # Gaussian probability density function and calculates the cumulative # distribution function of the normal distribution with ndtr. plt.imsave(mask_image_filename,torch.special.ndtr(preds[0][0]))
Anlamsal bölümlendirmeden elde edilen doğru maske görüntüsüyle, içerik ikamesi için boyamayı kullanabiliriz. In-painting, bir görüntünün eksik kısımlarını doldurmak için eğitilmiş bir üretken model kullanma sürecidir. Hedef nesneyi tanımlamak için maske görüntüsünü kullanarak, hedef nesneyi farklı bir giysi veya aksesuar gibi başka bir şeyle değiştirmek için boyama içi tekniği uygulayabiliriz. Stable Diffusion V2 modeli, orijinal görüntünün dağılımına uyan yüksek çözünürlüklü, fotoğraf gerçekliğinde görüntüler üretebildiği için bu amaç için kullanılabilir.
DreamBooth kullanarak önceden eğitilmiş modellerden ince ayar
İnce ayar, derin öğrenmede, önceden eğitilmiş bir modelin az miktarda etiketlenmiş veri kullanılarak yeni bir görev üzerinde daha fazla eğitildiği bir süreçtir. Sıfırdan eğitim almak yerine, benzer bir görev için büyük bir veri kümesi üzerinde zaten eğitilmiş bir ağı alıp söz konusu görev için daha özel hale getirmek için yeni bir veri kümesi üzerinde daha fazla eğitmek fikridir.
Moda tasarımcıları ayrıca bayanlar için gündelik uzun etekler gibi belirli bir stil sınıfı oluşturmak için konuya dayalı, ince ayarlı Stable Difüzyon boyama modelini kullanabilirler. Bunu yapmak için ilk adım, hedef etki alanında aşağıdaki gibi uygun metin etiketleriyle yaklaşık 1 düzine kadar bir dizi örnek görüntü sağlamak ve bunları tasarım, stil, renk ve kumaşa atıfta bulunan benzersiz bir tanımlayıcıya bağlamaktır. . Metin üzerindeki etiket, ince ayarlı modelin sonuçlarının belirlenmesinde kritik bir rol oynar. Etkili şekilde ince ayarı geliştirmenin birkaç yolu vardır. hızlı mühendislik ve işte birkaç örnek.
Sample text prompts to descibe some of the most common design elements of casual long skirts for ladies: Design Style: A-line, wrap, maxi, mini, and pleated skirts are some of the most popular styles for casual wear. A-line skirts are fitted at the waist and flare out at the hem, creating a flattering silhouette. Wrap skirts have a wrap closure and can be tied at the waist for a customizable fit. Maxi skirts are long and flowy, while mini skirts are short and flirty. Pleated skirts have folds that add texture and movement to the garment.
Pattern: Casual skirts can feature a variety of patterns, including stripes, florals, polka dots, and solids. These patterns can range from bold and graphic to subtle and understated.
Colors: Casual skirts come in a range of colors, including neutral shades likeblack, white, and gray, as well as brighter hues like pink, red, and blue. Some skirts may also feature multiple colors in a single garment, such asa skirt with a bold pattern that incorporates several shades.
Fabrics: Common fabrics used in casual skirts include cotton, denim, linen, and rayon. These materials offer different levels of comfort and durability, making it easy to find a skirt that suits your personal style and needs.
Kararlı Difüzyonda ince ayar yapmak için küçük bir görüntü seti kullanmak, modelin aşırı takılmasına neden olabilir. DreamBooth[5] bunu, sınıfa özgü bir ön koruma kaybı kullanarak ele alır. Benzersiz bir tanımlayıcıyı o belirli konuya iki adımda bağlamayı öğrenir. İlk olarak, benzersiz bir tanımlayıcı ve öznenin ait olduğu sınıfın adını, örneğin "etek" içeren bir metin istemiyle eşleştirilen giriş görüntüleriyle düşük çözünürlüklü modelde ince ayar yapar. Pratikte bu, modelin görüntülere ve ince ayar yapılmamış sınıfın görsel önceliğinden örneklenen görüntülere aynı anda uyması anlamına gelir. Önceden korunan bu görüntüler, "sınıf adı" istemi kullanılarak örneklenir ve etiketlenir. İkinci olarak, giriş görüntü setinden düşük çözünürlüklü ve yüksek çözünürlüklü görüntüleri eşleştirerek süper yüksek çözünürlüklü bileşenlere ince ayar yapacak, bu da ince ayarlı modelin çıktılarının küçük ayrıntılara aslına uygun kalmasını sağlıyor.
512×512 görüntü çözünürlüğü için UNet ile önceden eğitilmiş bir boyama içi metin kodlayıcının ince ayarı, 22×768 çözünürlük için yaklaşık 768 GB VRAM veya üzeri gerektirir. İdeal olarak ince ayar örnekleri, performans düşüşünü önlemek için istenen çıktı görüntü çözünürlüğüne uyacak şekilde yeniden boyutlandırılmalıdır. Metin kodlayıcı, model yüzleri gibi daha doğru ayrıntılar üretir. Tek bir AWS EC2 g5.2xlarge bulut sunucusunda çalıştırmak seçeneklerden biridir; sekiz bölge veya ince ayarlı kodu dağıtılmış bir yapılandırmada çalıştırmak için Hugging Face Accelerate'i kullanın. Ek bellek tasarrufu için, DreamBooth'un eğitim betiği train_dreambooth_inpaint.py'yi ardışık düzen enable_attention_slicing() işlevini eklemek üzere değiştirerek, hesaplamayı bir kerede yapmak yerine adımlar halinde gerçekleştiren dikkatin dilimlenmiş bir sürümünü seçebilirsiniz.
Accelerate, herhangi bir dağıtılmış yapılandırmada bir ince ayar kodunun çalıştırılmasını sağlayan bir kitaplıktır. Hugging Face ve Amazon tanıtıldı Hugging Face Deep Learning Kapsayıcıları (DLC'ler) ince ayar görevlerini birden çok GPU ve düğümde ölçeklendirmek için. Amazon SageMaker için başlatma yapılandırmasını tek bir CLI komutuyla yapılandırabilirsiniz.
# From your aws account, install the sagemaker sdk for Accelerate
pip install "accelerate[sagemaker]" --upgrade # Configure the launch configuration for Amazon SageMaker accelerate config # List and verify Accelerate configuration
accelerate env # Make necessary modification of the training script as the following to save # output on S3, if needed
# - torch.save('/opt/ml/model`)
# + accelerator.save('/opt/ml/model')
Bir ince ayar işi başlatmak için, Accelerate'in yapılandırmasını şunu kullanarak doğrulayın: CLI ve gerekli eğitim bağımsız değişkenlerini sağlayın, ardından aşağıdaki kabuk komut dosyasını kullanın.
# Instance images — Custom images that represents the specific # concept for dreambooth training. You should collect # high #quality images based on your use cases.
# Class images — Regularization images for prior-preservation # loss to prevent overfitting. You should generate these # images directly from the base pre-trained model. # You can choose to generate them on your own or generate # them on the fly when running the training script.
# # You can access train_dreambooth_inpaint.py from huggingface/diffuser export MODEL_NAME="stabilityai/stable-diffusion-2-inpainting"
export INSTANCE_DIR="/data/fashion/gowns/highres/"
export CLASS_DIR="/opt/data/fashion/generated_gowns/imgs"
export OUTPUT_DIR="/opt/model/diffuser/outputs/inpainting/" accelerate launch train_dreambooth_inpaint.py --pretrained_model_name_or_path=$MODEL_NAME --train_text_encoder --instance_data_dir=$INSTANCE_DIR --class_data_dir=$CLASS_DIR --output_dir=$OUTPUT_DIR --with_prior_preservation --prior_loss_weight=1.0 --instance_prompt="A supermodel poses in long summer travel skirt, photorealistic" --class_prompt="A supermodel poses in skirt, photorealistic" --resolution=512 --train_batch_size=1 --use_8bit_adam --gradient_checkpointing --learning_rate=2e-6 --lr_scheduler="constant" --lr_warmup_steps=0 --num_class_images=200 --max_train_steps=800
İnce ayarlı boyama içi model, metin istemi tarafından açıklanan moda sınıfına göre daha spesifik görüntülerin oluşturulmasına olanak tanır. Model, bir dizi yüksek çözünürlüklü görüntü ve metin istemiyle ince ayar yapıldığından, resmi gece elbiseleri gibi sınıfa daha uygun görüntüler üretebilir. Sınıf ne kadar spesifik olursa ve ince ayar için ne kadar çok veri kullanılırsa, çıktı görüntülerinin o kadar doğru ve gerçekçi olacağına dikkat etmek önemlidir.
%tree -d ./finetuned-stable-diffusion-v2-1-inpainting
finetuned-stable-diffusion-v2-1-inpainting
├── 512-inpainting-ema.ckpt
├── feature_extractor
├── code
│ └──inference.py
│ ├──requirements.txt
├── scheduler
├── text_encoder ├── tokenizer
├── unet
└── vae
Çıkarım için SageMaker'ı kullanarak ince ayarlı bir boyama içi modeli konuşlandırın
Amazon SageMaker ile gerçek zamanlı çıkarım için ince ayarlı Kararlı Yayılma modellerini dağıtabilirsiniz. Modeli yüklemek için Amazon Basit Depolama hizmeti (S3) dağıtım için bir model.tar.gz arşivi tarball'ı oluşturulmalıdır. Arşivin, onları içeren bir klasörü değil, tüm dosyaları doğrudan içerdiğinden emin olun. DreamBooth ince ayar arşiv klasörü, aralıklı kontrol noktalarını ortadan kaldırdıktan sonra aşağıdaki gibi görünmelidir:
Çıkarım işleyicimizi oluşturmanın ilk adımı inference.py dosyasının oluşturulmasını içerir. Bu dosya, modeli yüklemek ve gelen tüm çıkarım isteklerini işlemek için merkezi bir merkez görevi görür. Model yüklendikten sonra model_fn() işlevi yürütülür. Çıkarım gerçekleştirme ihtiyacı doğduğunda, tahmin_fn() işlevi çağrılır. Ek olarak, yük içinde bulunan bir JSON dizesini bir PIL görüntü veri türüne dönüştürmek için decode_base64() işlevi kullanılır.
%%writefile code/inference.py
import base64
import torch
from PIL import Image
from io import BytesIO
from diffusers import EulerDiscreteScheduler, StableDiffusionInpaintPipeline def decode_base64(base64_string): decoded_string = BytesIO(base64.b64decode(base64_string)) img = Image.open(decoded_string) return img def model_fn(model_dir): # Load stable diffusion and move it to the GPU scheduler = EulerDiscreteScheduler.from_pretrained(model_dir, subfolder="scheduler") pipe = StableDiffusionInpaintPipeline.from_pretrained(model_dir, scheduler=scheduler, revision="fp16", torch_dtype=torch.float16) pipe = pipe.to("cuda") pipe.enable_xformers_memory_efficient_attention() #pipe.enable_attention_slicing() return pipe def predict_fn(data, pipe): # get prompt & parameters prompt = data.pop("inputs", data) # Require json string input. Inference to convert imge to string. input_img = data.pop("input_img", data) mask_img = data.pop("mask_img", data) # set valid HP for stable diffusion num_inference_steps = data.pop("num_inference_steps", 25) guidance_scale = data.pop("guidance_scale", 6.5) num_images_per_prompt = data.pop("num_images_per_prompt", 2) image_length = data.pop("image_length", 512) # run generation with parameters generated_images = pipe( prompt, image = decode_base64(input_img), mask_image = decode_base64(mask_img), num_inference_steps=num_inference_steps, guidance_scale=guidance_scale, num_images_per_prompt=num_images_per_prompt, height=image_length, width=image_length, #)["images"] # for Stabel Diffusion v1.x ).images # create response encoded_images = [] for image in generated_images: buffered = BytesIO() image.save(buffered, format="JPEG") encoded_images.append(base64.b64encode(buffered.getvalue()).decode()) return {"generated_images": encoded_images}
Modeli bir Amazon S3 klasörüne yüklemek için önce bir model.tar.gz arşivi oluşturmak gerekir. Arşivin, dosyaları tutan bir klasörden değil, doğrudan dosyalardan oluşması gerektiğine dikkat etmek çok önemlidir. Örneğin, dosya aşağıdaki gibi görünmelidir:
import tarfile
import os # helper to create the model.tar.gz
def compress(tar_dir=None,output_file="model.tar.gz"): parent_dir=os.getcwd() os.chdir(tar_dir) with tarfile.open(os.path.join(parent_dir, output_file), "w:gz") as tar: for item in os.listdir('.'): print(item) tar.add(item, arcname=item) os.chdir(parent_dir) compress(str(model_tar)) # After we created the model.tar.gz archive we can upload it to Amazon S3. We will # use the sagemaker SDK to upload the model to our sagemaker session bucket.
from sagemaker.s3 import S3Uploader # upload model.tar.gz to s3
s3_model_uri=S3Uploader.upload(local_path="model.tar.gz", desired_s3_uri=f"s3://{sess.default_bucket()}/finetuned-stable-diffusion-v2-1-inpainting")
Model arşivi yüklendikten sonra, gerçek zamanlı çıkarım için HuggingfaceModel kullanarak onu Amazon SageMaker'da konuşlandırabiliriz. 4 GB VRAM'e sahip tek bir NVIDIA Tesla T4 GPU ile donatılmış bir g16dn.xlarge bulut sunucusu kullanarak uç noktayı barındırabilirsiniz. Değişken trafik taleplerini karşılamak için otomatik ölçeklendirme etkinleştirilebilir. Otomatik ölçeklendirmeyi uç noktanıza dahil etme hakkında bilgi için bkz. Prodüksiyona Geçiş: Amazon SageMaker ile Sarılma Yüz Transformatörlerini Otomatik Olarak Ölçeklendirme.
from sagemaker.huggingface.model import HuggingFaceModel # create Hugging Face Model Class
huggingface_model = HuggingFaceModel( model_data=s3_model_uri, # path to your model and script role=role, # iam role with permissions to create an Endpoint transformers_version="4.17", # transformers version used pytorch_version="1.10", # pytorch version used py_version='py38', # python version used
) # deploy the endpoint endpoint
predictor = huggingface_model.deploy( initial_instance_count=1, instance_type="ml.g4dn.xlarge" )
huggingface_model.deploy() yöntemi, çıkarım istemek için kullanılabilecek bir HuggingFacePredictor nesnesi döndürür. Uç nokta, modelin bir görüntü oluşturması için giriş istemini temsil eden bir giriş anahtarına sahip bir JSON gerektirir. Ayrıca num_inference_steps,guidement_scale ve “num_images_per_prompt” gibi parametrelerle de üretimi kontrol edebilirsiniz. predictor.predict() işlevi, oluşturulan dört görüntüyü base64 kodlu dizeler olarak tutan "generated_images" anahtarına sahip bir JSON döndürür. Yanıtın kodunu çözmek ve sırasıyla görüntüleri görüntülemek için iki yardımcı işlev, decode_base64_to_image ve display_images ekledik. İlki, base64 kodlu dizenin kodunu çözer ve bir PIL.Image nesnesi döndürür ve ikincisi, PIL.Image nesnelerinin bir listesini görüntüler. Aşağıdaki koda bakın:
import PIL
from io import BytesIO
from IPython.display import display
import base64
import matplotlib.pyplot as plt
import json # Encoder to convert an image to json string
def encode_base64(file_name): with open(file_name, "rb") as image: image_string = base64.b64encode(bytearray(image.read())).decode() return image_string # Decode to to convert a json str to an image def decode_base64_image(base64_string): decoded_string = BytesIO(base64.b64decode(base64_string)) img = PIL.Image.open(decoded_string) return img # display PIL images as grid
def display_images(images=None,columns=3, width=100, height=100): plt.figure(figsize=(width, height)) for i, image in enumerate(images): plt.subplot(int(len(images) / columns + 1), columns, i + 1) plt.axis('off') plt.imshow(image) # Display images in a row/col grid
def image_grid(imgs, rows, cols): assert len(imgs) == rows*cols w, h = imgs[0].size grid = PIL.Image.new('RGB', size=(cols*w, rows*h)) grid_w, grid_h = grid.size for i, img in enumerate(imgs): grid.paste(img, box=(i%cols*w, i//cols*h)) return grid
Boyama içi görevde ilerleyelim. Giriş görüntüsü ve daha önce tartışılan metin istemi ile CLIPSeg kullanılarak oluşturulan maske göz önüne alındığında, üç görüntü üretmenin yaklaşık 15 saniye süreceği tahmin edilmektedir. Aşağıdaki koda bakın:
num_images_per_prompt = 3
prompt = "A female super-model poses in a casual long vacation skirt, with full body length, bright colors, photorealistic, high quality, highly detailed, elegant, sharp focus" # Convert image to string
input_image_filename = "./imgs/skirt-model-2.jpg"
encoded_input_image = encode_base64(input_image_filename)
encoded_mask_image = encode_base64("./imgs/skirt-model-2-mask.jpg") # Set in-painint parameters
guidance_scale = 6.7
num_inference_steps = 45 # run prediction
response = predictor.predict(data={ "inputs": prompt, "input_img": encoded_input_image, "mask_img": encoded_mask_image, "num_images_per_prompt" : num_images_per_prompt, "image_length": 768 }
) # decode images
decoded_images = [decode_base64_image(image) for image in response["generated_images"]] # visualize generation
display_images(decoded_images, columns=num_images_per_prompt, width=100, height=100) # insert initial image in the list so we can compare side by side
image = PIL.Image.open(input_image_filename).convert("RGB")
decoded_images.insert(0, image) # Display inpainting images in grid
image_grid(decoded_images, 1, num_images_per_prompt + 1)
Boyalı görüntüler, görsel karşılaştırma için orijinal görüntüyle birlikte görüntülenebilir. Ek olarak, boyama işlemi sırasında yönlendirme görüntüsünün gücünü kontrol edenguidement_scale gibi çeşitli parametreler kullanılarak boyama işlemi sınırlandırılabilir. Bu, kullanıcının çıktı görüntüsünü ayarlamasını ve istenen sonuçları elde etmesini sağlar.
Amazon SageMaker Hızlı Başlangıç metinden görüntüye ve yükseltme dahil olmak üzere çeşitli modeller için Kararlı Difüzyon şablonları sunar. Daha fazla bilgi için lütfen şuraya bakın: SageMaker JumpStart artık Kararlı Difüzyon ve Bloom modelleri sağlıyor. Ek Hızlı Başlangıç şablonları yakın gelecekte kullanıma sunulacaktır.
Sınırlamalar
CLIPSeg genellikle ortak nesneleri tanımada iyi performans gösterse de, bir görüntüdeki nesnelerin sayısını saymak gibi daha soyut veya sistematik görevlerde ve bir fotoğrafta en yakın nesnenin (örneğin bir el çantasının) ne kadar yakın olduğunu tahmin etmek gibi daha karmaşık görevlerde mücadele eder. Zero-shot CLIPSeq, göreve özgü modellerle karşılaştırıldığında, iki belirsiz tasarım, elbise çeşitleri veya stil sınıflandırması arasındaki farkı söylemek gibi çok ince taneli sınıflandırma konusunda da mücadele ediyor. CLIPSeq ayrıca, eğitim öncesi veri setinde yer almayan görüntülere genelleme konusunda hala yetersizdir. Son olarak, CLIP'in sıfır vuruşlu sınıflandırıcılarının ifadeye veya kelime öbeğine duyarlı olabileceği ve bazen iyi performans göstermesi için deneme yanılma "hızlı mühendislik" gerektirdiği gözlemlenmiştir. CLIPSeq'in omurgası için farklı bir semantik segmentasyon modeline geçiş, örneğin BEİTADE62.8K veri setinde %20 mIOU'ya sahip olan , potansiyel olarak sonuçları iyileştirebilir.
Kararlı Yayılma kullanılarak oluşturulan moda tasarımlarının, en azından tahmin edilebileceği gibi moda modellerinin daha geniş bağlamına yerleştirilmiş ve içinde bulmayı makul bir şekilde bekleyebileceğiniz üst düzey gömmelere uyan giysi parçalarıyla sınırlı olduğu bulunmuştur. önceden eğitilmiş modelin eğitimi sırasında kullanılan hiper ölçekli bir veri kümesi. Üretken yapay zekanın gerçek sınırı, modelin sonunda tamamen hayali ve daha az özgün çıktılar üretmesidir. Bu nedenle, AI tarafından oluşturulan moda tasarımları, insan tasarımcılar tarafından oluşturulanlar kadar çeşitli veya benzersiz olmayabilir.
Sonuç
Üretken yapay zeka, moda sektörüne uygulamalarını daha iyi kullanıcı deneyimleri ve uygun maliyetli iş stratejileri yoluyla dönüştürme fırsatı sunuyor. Bu gönderide, moda tasarımcılarının ve tüketicilerin sanal modellemeyi kullanarak kişiselleştirilmiş moda stilleri oluşturmasını sağlamak için üretken yapay zekadan nasıl yararlanılacağını gösteriyoruz. Mevcut Amazon SageMaker Jumpstart şablonlarının ve gelecek olanların yardımıyla, kullanıcılar çok yönlülüğü korurken ve giderleri düşürürken derinlemesine teknik uzmanlığa ihtiyaç duymadan bu gelişmiş teknikleri hızla benimseyebilir.
Bu yenilikçi teknoloji, çeşitli sektörlerde içerik üretimiyle uğraşan şirketler ve profesyoneller için yeni fırsatlar sunuyor. Generative AI, içeriği geliştirmek ve oluşturmak için geniş yetenekler sağlar. Hızlı Başlangıç şablonlarına son eklenenleri deneyin. Adaçayı Yapıcı Stüdyometinden görüntüye ince ayar ve üst düzey yetenekler gibi.
Destekleri ve bu çalışmanın geliştirilmesine yardımcı olan değerli girdileri için Li Zhang, Karl Albertsen, Kristine Pearce, Nikhil Velpanur, Aaron Sengstacken, James Wu ve Neelam Koshiya'ya teşekkür ederiz.
Yazarlar Hakkında
alfred shen AWS'de Kıdemli Yapay Zeka/ML Uzmanıdır. Silikon Vadisi'nde sağlık, finans ve yüksek teknoloji dahil olmak üzere çeşitli sektörlerde teknik ve yönetimsel pozisyonlarda çalıştı. Özgeçmiş, NLP ve multimodalite üzerine yoğunlaşan özel bir uygulamalı AI/ML araştırmacısıdır. Çalışmaları EMNLP, ICLR ve Halk Sağlığı gibi yayınlarda sergilendi.
Dr.Vivek Madan Amazon SageMaker JumpStart ekibinde bir Uygulamalı Bilim Adamıdır. Doktora derecesini Urbana-Champaign'deki Illinois Üniversitesi'nden aldı ve Georgia Tech'te Doktora Sonrası Araştırmacıydı. Makine öğrenimi ve algoritma tasarımında aktif bir araştırmacıdır ve EMNLP, ICLR, COLT, FOCS ve SODA konferanslarında yayınlanmış makaleleri vardır.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- Plato blok zinciri. Web3 Metaverse Zekası. Bilgi Güçlendirildi. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/virtual-fashion-styling-with-generative-ai-using-amazon-sagemaker/
- 1
- 10
- 100
- 7
- a
- aaron
- Yapabilmek
- Hakkımızda
- ÖZET
- hızlandırmak
- hızlandırıcı
- erişim
- aksesuarlar
- başarılı
- Hesap
- doğru
- Başarmak
- karşısında
- aktif
- uyarlamak
- katma
- Ek
- Ayrıca
- ilave
- adresleri
- Benimseme
- ileri
- tavsiye
- Sonra
- AI
- AI / ML
- algoritma
- algoritmalar
- Türkiye
- Izin
- veriyor
- zaten
- Amazon
- Amazon Adaçayı Yapıcı
- Amazon SageMaker Hızlı Başlangıç
- miktar
- ve
- giysi
- görünmek
- uygulamaları
- uygulamalı
- Tamam
- yaklaşık olarak
- mimari
- Arşiv
- ALAN
- argümanlar
- yapay
- yapay zeka
- ASA
- Yardım
- Dikkat
- ses
- Otantik
- mevcut
- AWS
- Omurga
- Bant genişliği
- Banka
- baz
- merkezli
- Çünkü
- başladı
- faydalı
- yarar
- Daha iyi
- arasında
- bağlamak
- bağlayıcı
- Engellemek
- Blog
- Çiçek açmak
- Mavi
- övünme
- vücut
- pim
- kutular
- Parlak
- parlak
- bütçe
- iş
- İş Uygulamaları
- hesaplar
- denilen
- yetenekleri
- yetenekli
- durumlarda
- gündelik
- merkezi
- zorluklar
- şansı
- değişiklik
- Klinik
- sınıf
- sınıflandırma
- Kapanış
- kapatma
- Giyim
- bulut
- kod
- toplamak
- renk
- Sütunlar
- nasıl
- konfor
- ortak
- Şirketler
- karşılaştırmak
- karşılaştırıldığında
- karşılaştırma
- Tamamlayıcı
- karmaşık
- bileşenler
- hesaplama
- hesaplamak
- bilgisayar
- kavram
- yapılandırma
- bağlı
- sabit
- Tüketiciler
- Konteynerler
- içeren
- içerik
- İçerik Üretimi
- bağlam
- devam etmek
- kontrol
- kontroller
- dönüştürmek
- uyan
- Ücret
- olabilir
- kaplı
- yaratmak
- çevrimiçi kurslar düzenliyorlar.
- Oluşturma
- oluşturma
- kritik
- çok önemli
- Şu anda
- görenek
- müşteri
- Müşteri memnuniyeti
- Müşteriler
- özelleştirilebilir
- özelleştirme
- veri
- azaltmak
- adanmış
- derin
- derin öğrenme
- talepleri
- Denim
- dağıtmak
- konuşlandırılmış
- açılma
- tanımlamak
- tarif edilen
- Dizayn
- tasarlanmış
- tasarımcıları
- tasarımlar
- İstediğiniz
- detaylı
- ayrıntılar
- belirlenmesi
- fark
- farklı
- Yayılma
- direkt olarak
- tartışılan
- ekran
- görüntüler
- dağıtıldı
- dağıtım
- çeşitli
- domain
- indir
- onlarca
- dayanıklılık
- sırasında
- e-ticaret
- kolayca
- Etkili
- verimli
- elemanları
- ortadan
- kucaklamak
- etkinleştirmek
- sağlar
- etkinleştirme
- kapsar
- Son nokta
- Mühendisler
- artırılması
- sağlamak
- Entertainment
- donanımlı
- hata
- tahmini
- akşam
- sonunda
- gelişmek
- örnek
- örnekler
- mevcut
- beklemek
- giderler
- pahalı
- Deneyimler
- Uzmanlık
- ihracat
- çıkarmak
- kumaş
- kumaşlar
- Yüz
- yüzler
- Moda
- Daha hızlı
- Özellikler(Hazırlık aşamasında)
- kadın
- az
- vefa
- alan
- fileto
- dosyalar
- doldurmak
- son
- Nihayet
- maliye
- bulmak
- ince
- Ad
- uygun
- parlama
- esnek
- akış
- odak
- takip
- takip etme
- şu
- resmi
- Eski
- ileri
- bulundu
- sık sık
- itibaren
- tam
- tamamen
- işlev
- fonksiyonlar
- daha fazla
- Ayrıca
- gelecek
- giysiler
- oluşturmak
- oluşturulan
- nesil
- üretken
- üretken yapay zeka
- almak
- verilmiş
- GPU
- GPU'lar
- grafik
- gri
- büyük
- çok
- Grid
- sap
- kullanma
- koşum
- sahip olan
- Sağlık
- sağlık
- yükseklik
- yardım
- okuyun
- Yüksek
- üst düzey
- yüksek çözünürlük
- daha yüksek
- özeti
- büyük ölçüde
- tutma
- tutar
- ev sahibi
- Ne kadar
- Nasıl Yapılır
- Ancak
- HTML
- HTTPS
- merkez
- SarılmaYüz
- insan
- Fikir
- tanımlayıcı
- belirlemek
- Illinois
- görüntü
- görüntüleri
- hayali
- uygulama
- ithalat
- önemli
- iyileştirmek
- gelişmiş
- in
- derinlemesine
- dahil
- içerir
- Dahil olmak üzere
- Gelen
- birleşmeyle
- artmış
- Endüstri
- sanayi
- bilgi
- ilk
- yenilikçi
- giriş
- kurmak
- örnek
- yerine
- İstihbarat
- tanıttı
- ilgili
- IT
- ürün
- İş
- json
- anahtar
- etiket
- Etiketler
- dil
- büyük
- başlatmak
- tabaka
- önemli
- ÖĞRENİN
- öğrendim
- öğrenme
- uzunluk
- seviyeleri
- Li
- Kütüphane
- LİMİT
- Sınırlı
- Liste
- yük
- yükleme
- Uzun
- kayıp
- Indirme
- kazançlı
- makine
- makine öğrenme
- Ana
- korumak
- Bakımı
- yapmak
- Yapımı
- yönetimsel
- Üreticiler
- haritalama
- pazar
- Pazarlama
- maske
- Maskeler
- Maç
- malzemeler
- matplotlib
- anlamına geliyor
- medya
- Bellek
- yöntem
- yöntemleri
- eksik
- ML
- model
- modelleri
- Daha
- çoğu
- hareket
- hareket
- çoklu
- isim
- Doğal (Madenden)
- yakın
- gerekli
- gerek
- gerek
- ihtiyaçlar
- ağ
- Nötr
- yeni
- nlp
- düğümler
- normal
- roman
- numara
- Nvidia
- nesne
- nesneler
- engeller
- teklif
- teklif
- Teklifler
- ONE
- Türünün tek örneği
- Online
- Fırsat
- optimize
- seçenek
- sipariş
- orijinal
- OS
- kendi
- eşleştirilmiş
- eşleştirme
- kâğıtlar
- parametreler
- belirli
- parçalar
- geçti
- yol
- model
- desen
- Yapmak
- performans
- gerçekleştirir
- izinleri
- kişisel
- Kişiselleştirme
- kişiselleştirmek
- Kişiselleştirilmiş
- fotogerçekçi
- Fotoğraf Galerisi
- boru
- boru hattı
- platform
- Platon
- Plato Veri Zekası
- PlatoVeri
- Lütfen
- yoksul
- Popüler
- pozlar
- pozisyonları
- Çivi
- potansiyel
- potansiyel
- Pratik
- uygulama
- uygulamalar
- tahmin
- tahmin
- tahmin
- Predictor
- tercihleri
- tercihli
- hediyeler
- önlemek
- Önceden
- Önceki
- süreç
- üretmek
- üretim
- Ürünler
- profesyoneller
- uygun
- sağlamak
- sağlar
- halka açık
- halk sağlığı
- yayınlar
- alenen
- yayınlanan
- yalnızca
- amaç
- amaçlı
- Python
- pytorch
- kalite
- hızla
- menzil
- gerçek
- gerçek zaman
- реалистичный,en
- teslim almak
- son
- tavsiyeler
- Kırmızı
- azaltmak
- Indirimli
- referanslar
- ifade eder
- ilgisi
- Bildirilen
- temsil
- talep
- isteklerinizi
- gerektirir
- gerektirir
- araştırmacı
- çözüm
- yanıt
- sonuç
- Ortaya çıkan
- Sonuçlar
- perakende
- dönüş
- İade
- RGB
- Rol
- kabaca
- koşmak
- koşu
- sagemaker
- satış
- memnuniyet
- İndirim
- Tasarruf
- ölçek
- bilim adamı
- sdk
- İkinci
- saniye
- sektör
- Sektörler
- bölünme
- segmentler
- seçme
- kıdemli
- hassas
- vermektedir
- hizmet
- Oturum
- set
- birkaç
- keskin
- Kabuk
- kısa
- meli
- vitrin
- yan
- Silikon
- Silikon Vadisi
- benzer
- Basit
- sadece
- aynı anda
- tek
- beden
- küçük
- So
- Sosyal Medya
- sosyal medya
- çözüm
- biraz
- bir şey
- uzay
- özel
- uzman
- özel
- özel
- Belirtilen
- kararlı
- standart
- Eyalet
- adım
- Basamaklar
- Yine
- hafızası
- saklı
- stratejileri
- kuvvet
- Stripes
- mücadeleler
- stil
- konu
- başarı
- böyle
- yaz
- Supermodel
- denetleme
- Destekler
- ısmarlama
- Bizi daha iyi tanımak için
- alır
- Hedef
- Görev
- görevleri
- takım
- teknoloji
- Teknik
- teknikleri
- Teknoloji
- şablonları
- şartlar
- Tesla
- The
- Alan
- Dünya
- ve bazı Asya
- bu nedenle
- üç
- İçinden
- bağlı
- için
- araçlar
- meşale
- TAMAMEN
- geleneksel
- trafik
- Tren
- eğitilmiş
- Eğitim
- transfer
- Dönüştürmek
- transformatörler
- seyahat
- Trendler
- deneme
- Trilyon
- altında
- benzersiz
- üniversite
- Yüklenen
- kullanım
- kullanım
- kullanıcı
- kullanıcılar
- genellikle
- kullanmak
- kullanılan
- kullanır
- Kullanılması
- tatil
- Vadi
- Değerli
- değer
- çeşitlilik
- çeşitli
- Geniş
- doğrulamak
- versiyon
- Video
- Sanal
- W
- yolları
- hangi
- süre
- beyaz
- DSÖ
- geniş
- Geniş ürün yelpazesi
- Daha geniş
- genişlik
- irade
- içinde
- olmadan
- üslup
- İş
- işlenmiş
- Dünya
- Dünya Bankası
- olur
- sarın
- wu
- X
- Sen
- zefirnet
- zip