Industri fashion adalah bisnis yang sangat menguntungkan, dengan perkiraan nilai $2.1 triliun pada tahun 2025, seperti yang dilaporkan oleh Bank Dunia. Bidang ini mencakup beragam segmen, seperti kreasi, manufaktur, distribusi, dan penjualan pakaian, sepatu, dan aksesori. Industri ini terus berubah, dengan gaya dan tren baru yang sering muncul. Oleh karena itu, perusahaan fesyen harus fleksibel dan mampu beradaptasi untuk mempertahankan relevansinya dan meraih kesuksesan di pasar.
Kecerdasan Buatan Generatif (AI) mengacu pada algoritme AI yang dirancang untuk menghasilkan konten baru, seperti gambar, teks, audio, atau video, berdasarkan serangkaian pola dan data yang dipelajari. Ini dapat digunakan untuk menghasilkan desain pakaian baru dan inovatif sambil menawarkan personalisasi dan efektivitas biaya yang lebih baik. Alat desain berbasis AI dapat membuat desain pakaian unik berdasarkan parameter input atau gaya yang ditentukan oleh calon pelanggan melalui perintah teks. Selain itu, AI dapat digunakan untuk mempersonalisasi desain sesuai preferensi pelanggan. Misalnya, pelanggan dapat memilih dari berbagai warna, pola, dan gaya, dan model AI akan menghasilkan desain unik berdasarkan pilihan tersebut. Adopsi AI di industri fesyen saat ini terhalang oleh berbagai tantangan teknis, kelayakan, dan biaya. Namun, hambatan ini sekarang dapat dikurangi dengan memanfaatkan metode AI generatif canggih seperti segmentasi semantik gambar berbasis bahasa alami dan difusi untuk gaya virtual.
Posting blog ini merinci penerapan gaya online mode berbantuan AI generatif menggunakan petunjuk teks. Insinyur pembelajaran mesin (ML) dapat menyempurnakan dan menerapkan segmentasi teks ke semantik dan model dalam lukisan berdasarkan CLIPSeq dan Difusi Stabil yang telah dilatih sebelumnya dengan Amazon SageMaker. Ini memungkinkan perancang busana dan konsumen untuk membuat gambar pemodelan virtual berdasarkan permintaan teks dan memilih gaya yang mereka sukai.
Solusi AI Generatif
Grafik KLIPeg model memperkenalkan metode segmentasi semantik gambar baru yang memungkinkan Anda dengan mudah mengidentifikasi item fesyen dalam gambar menggunakan perintah teks sederhana. Ini menggunakan prompt teks atau encoder gambar untuk menyandikan informasi tekstual dan visual ke dalam ruang penyematan multimoda, memungkinkan segmentasi objek target yang sangat akurat berdasarkan prompt. Model ini telah dilatih pada sejumlah besar data dengan teknik seperti transfer tanpa tembakan, pengawasan bahasa alami, dan pembelajaran kontrastif multimodal yang diawasi sendiri. Ini berarti Anda dapat menggunakan model pra-terlatih yang tersedia untuk umum Timo Luddecke dkk tanpa perlu penyesuaian.
CLIPSeg adalah model yang menggunakan encoder teks dan gambar untuk mengkodekan informasi tekstual dan visual ke dalam ruang penyematan multimoda untuk melakukan segmentasi semantik berdasarkan prompt teks. Arsitektur CLIPSeg terdiri dari dua komponen utama: encoder teks dan encoder gambar. Encoder teks mengambil prompt teks dan mengubahnya menjadi penyematan teks, sedangkan pembuat enkode gambar mengambil gambar dan mengubahnya menjadi penyematan gambar. Kedua penyematan kemudian digabungkan dan dilewatkan melalui lapisan yang terhubung sepenuhnya untuk menghasilkan mask segmentasi akhir.
Dalam hal aliran data, model dilatih pada kumpulan data gambar dan petunjuk teks yang sesuai, di mana petunjuk teks menjelaskan objek target yang akan disegmentasi. Selama proses pelatihan, encoder teks dan encoder gambar dioptimalkan untuk mempelajari pemetaan antara petunjuk teks dan gambar untuk menghasilkan mask segmentasi akhir. Setelah model dilatih, model dapat mengambil teks dan gambar baru dan menghasilkan masker segmentasi untuk objek yang dijelaskan dalam prompt.
Difusi Stabil adalah teknik yang memungkinkan perancang busana menghasilkan citra yang sangat realistis dalam jumlah besar murni berdasarkan deskripsi teks tanpa perlu penyesuaian yang panjang dan mahal. Ini bermanfaat bagi desainer yang ingin menciptakan gaya mode dengan cepat, dan produsen yang ingin menghasilkan produk yang dipersonalisasi dengan biaya lebih rendah.
Diagram berikut mengilustrasikan arsitektur Difusi Stabil dan aliran data.
Dibandingkan dengan metode tradisional berbasis GAN, Stable Diffusion adalah AI generatif yang mampu menghasilkan gambar yang lebih stabil dan foto-realistis yang sesuai dengan distribusi gambar aslinya. Model ini dapat dikondisikan pada berbagai tujuan, seperti teks untuk pembuatan teks-ke-gambar, kotak pembatas untuk pembuatan tata letak-ke-gambar, gambar bertopeng untuk lukisan dalam, dan gambar beresolusi rendah untuk resolusi super. Model difusi memiliki berbagai aplikasi bisnis, dan penggunaan praktisnya terus berkembang. Model-model ini akan sangat menguntungkan berbagai industri seperti fashion, ritel dan e-commerce, hiburan, media sosial, pemasaran, dan lainnya.
Hasilkan topeng dari permintaan teks menggunakan CLIPSeg
Vogue online styling adalah layanan yang memungkinkan pelanggan menerima saran dan rekomendasi mode dari AI melalui platform online. Ini dilakukan dengan memilih pakaian dan aksesori yang melengkapi penampilan pelanggan, sesuai dengan anggaran mereka, dan sesuai dengan preferensi pribadi mereka. Dengan pemanfaatan AI generatif, tugas dapat diselesaikan dengan lebih mudah, sehingga meningkatkan kepuasan pelanggan dan mengurangi biaya.
Solusinya dapat digunakan pada Amazon Elastic Compute Cloud (EC2) p3.2xlarge, yang memiliki satu GPU V100 tunggal dengan memori 16G. Beberapa teknik digunakan untuk meningkatkan kinerja dan mengurangi penggunaan memori GPU, menghasilkan pembuatan gambar yang lebih cepat. Ini termasuk menggunakan fp16 dan mengaktifkan perhatian hemat memori untuk mengurangi bandwidth di blok perhatian.
Kami mulai dengan meminta pengguna mengunggah gambar fesyen, diikuti dengan mengunduh dan mengekstrak model terlatih dari CLIPSeq. Gambar kemudian dinormalisasi dan diubah ukurannya untuk memenuhi batas ukuran. Stable Diffusion V2 mendukung resolusi gambar hingga 768×768 sedangkan V1 mendukung hingga 512×512. Lihat kode berikut:
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)
Dengan menggunakan model CLIPSeq yang telah dilatih sebelumnya, kami dapat mengekstrak objek target dari gambar menggunakan prompt teks. Ini dilakukan dengan memasukkan prompt teks ke dalam pembuat enkode teks, yang mengubahnya menjadi penyisipan teks. Gambar tersebut kemudian dimasukkan ke dalam encoder gambar, yang mengubahnya menjadi penyisipan gambar. Kedua penyematan kemudian digabungkan dan diteruskan melalui lapisan yang terhubung sepenuhnya untuk menghasilkan mask segmentasi akhir, yang menyorot objek target yang dijelaskan dalam prompt teks. Lihat kode berikut:
# 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]))
Dengan citra mask yang akurat dari segmentasi semantik, kita dapat menggunakan in-painting untuk substitusi konten. In-painting adalah proses menggunakan model generatif terlatih untuk mengisi bagian gambar yang hilang. Dengan menggunakan gambar topeng untuk mengidentifikasi objek target, kita dapat menerapkan teknik in-painting untuk mengganti objek target dengan sesuatu yang lain, seperti item pakaian atau aksesoris yang berbeda. Model Stable Diffusion V2 dapat digunakan untuk tujuan ini, karena mampu menghasilkan gambar foto-realistis beresolusi tinggi yang sesuai dengan distribusi gambar aslinya.
Penyempurnaan dari model terlatih menggunakan DreamBooth
Penyesuaian halus adalah proses dalam pembelajaran mendalam di mana model yang telah dilatih sebelumnya dilatih lebih lanjut pada tugas baru menggunakan sejumlah kecil data berlabel. Daripada melatih dari awal, idenya adalah mengambil jaringan yang telah dilatih pada kumpulan data besar untuk tugas serupa dan selanjutnya melatihnya pada kumpulan data baru agar lebih terspesialisasi untuk tugas tertentu tersebut.
Perancang busana juga dapat menggunakan model in-painting Stable Diffusion yang digerakkan oleh subjek dan disetel halus untuk menghasilkan kelas gaya tertentu, seperti rok panjang kasual untuk wanita. Untuk melakukan ini, langkah pertama adalah menyediakan sekumpulan gambar sampel di domain target, kira-kira sekitar 1 lusin, dengan label teks yang tepat seperti berikut dan mengikatnya ke pengidentifikasi unik yang mereferensikan desain, gaya, warna, dan bahan. . Label pada teks memainkan peran penting dalam menentukan hasil model yang disesuaikan. Ada beberapa cara untuk meningkatkan fine tuning melalui efektif rekayasa cepat dan berikut beberapa contohnya.
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.
Menggunakan sekumpulan kecil gambar untuk menyempurnakan Difusi Stabil dapat menyebabkan overfitting model. DreamBooth[5] mengatasi ini dengan menggunakan kehilangan preservasi khusus kelas. Itu belajar untuk mengikat pengidentifikasi unik dengan subjek spesifik itu dalam dua langkah. Pertama, menyempurnakan model resolusi rendah dengan gambar input yang dipasangkan dengan perintah teks yang berisi pengidentifikasi unik dan nama kelas subjek, seperti "rok". Dalam praktiknya, ini berarti memiliki model yang sesuai dengan gambar dan gambar yang diambil sampelnya dari visual prior kelas non-fine-tuned secara bersamaan. Gambar-gambar yang sebelumnya diawetkan ini diambil sampelnya dan diberi label menggunakan prompt "kata benda kelas". Kedua, ini akan menyempurnakan komponen beresolusi super tinggi dengan memasangkan gambar beresolusi rendah dan beresolusi tinggi dari kumpulan gambar masukan, yang memungkinkan keluaran model yang disetel halus untuk mempertahankan ketelitian hingga detail kecil.
Menyempurnakan encoder teks dalam lukisan terlatih dengan UNet untuk gambar beresolusi 512×512 memerlukan sekitar 22 GB VRAM atau lebih tinggi untuk resolusi 768×768. Idealnya sampel fine-tune harus diubah ukurannya agar sesuai dengan resolusi gambar keluaran yang diinginkan untuk menghindari penurunan kinerja. Encoder teks menghasilkan detail yang lebih akurat seperti wajah model. Salah satu opsinya adalah menjalankan instans AWS EC2 g5.2xlarge tunggal, yang kini tersedia di delapan wilayah atau gunakan Hugging Face Accelerate untuk menjalankan kode yang telah disempurnakan di seluruh konfigurasi terdistribusi. Untuk penghematan memori tambahan, Anda dapat memilih versi potongan dari perhatian yang melakukan komputasi dalam langkah-langkah alih-alih sekaligus dengan hanya memodifikasi skrip pelatihan DreamBooth train_dreambooth_inpaint.py untuk menambahkan fungsi pipeline enable_attention_slicing() .
Mempercepat adalah perpustakaan yang memungkinkan satu kode fine tuning dijalankan di semua konfigurasi terdistribusi. Memeluk Wajah dan Amazon diperkenalkan Memeluk Wadah Pembelajaran Dalam Wajah (DLC) untuk menskalakan tugas fine tuning di beberapa GPU dan node. Anda dapat mengonfigurasi konfigurasi peluncuran untuk Amazon SageMaker dengan satu perintah CLI.
# 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')
Untuk meluncurkan pekerjaan fine-tune, verifikasi konfigurasi Accelerate menggunakan CLI dan berikan argumen pelatihan yang diperlukan, lalu gunakan skrip shell berikut.
# 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
Model in-painting yang disempurnakan memungkinkan pembuatan gambar yang lebih spesifik ke kelas mode yang dijelaskan oleh prompt teks. Karena telah disesuaikan dengan serangkaian gambar beresolusi tinggi dan petunjuk teks, model dapat menghasilkan gambar yang lebih disesuaikan dengan kelasnya, seperti gaun malam formal. Penting untuk diperhatikan bahwa semakin spesifik kelas dan semakin banyak data yang digunakan untuk fine-tuning, semakin akurat dan realistis gambar keluarannya.
%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
Terapkan model lukisan yang disempurnakan menggunakan SageMaker untuk inferensi
Dengan Amazon SageMaker, Anda dapat menerapkan model Difusi Stabil yang disesuaikan untuk inferensi real-time. Untuk mengunggah model ke Layanan Penyimpanan Sederhana Amazon (S3) untuk penerapan, tarbal arsip model.tar.gz harus dibuat. Pastikan arsip langsung menyertakan semua file, bukan folder yang memuatnya. Folder arsip fine-tuning DreamBooth akan muncul sebagai berikut setelah menghilangkan titik pemeriksaan intermiten:
Langkah awal dalam membuat penangan inferensi melibatkan pembuatan file inference.py. File ini berfungsi sebagai hub pusat untuk memuat model dan menangani semua permintaan inferensi yang masuk. Setelah model dimuat, fungsi model_fn() dijalankan. Ketika kebutuhan muncul untuk melakukan inferensi, fungsi predict_fn() dipanggil. Selain itu, fungsi decode_base64() digunakan untuk mengonversi string JSON, yang terdapat di dalam payload, menjadi tipe data gambar PIL.
%%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}
Untuk mengunggah model ke bucket Amazon S3, pertama-tama Anda perlu membuat arsip model.tar.gz. Sangat penting untuk dicatat bahwa arsip harus terdiri dari file secara langsung dan bukan folder yang menyimpannya. Misalnya, file akan muncul sebagai berikut:
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")
Setelah arsip model diunggah, kami dapat menerapkannya di Amazon SageMaker menggunakan HuggingfaceModel untuk inferensi real-time. Anda dapat menghosting titik akhir menggunakan instans g4dn.xlarge, yang dilengkapi dengan satu GPU NVIDIA Tesla T4 dengan VRAM 16 GB. Penskalaan otomatis dapat diaktifkan untuk menangani permintaan lalu lintas yang bervariasi. Untuk informasi tentang menggabungkan penskalaan otomatis di titik akhir Anda, lihat Going Production: Auto-scaling Hugging Face Transformers dengan Amazon SageMaker.
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" )
Metode huggingface_model.deploy() mengembalikan objek HuggingFacePredictor yang dapat digunakan untuk meminta inferensi. Titik akhir memerlukan JSON dengan kunci input, yang mewakili prompt input untuk model untuk menghasilkan gambar. Anda juga dapat mengontrol pembuatan dengan parameter seperti num_inference_steps, guidance_scale, dan “num_images_per_prompt”. Fungsi predictor.predict() mengembalikan JSON dengan kunci "generated_images", yang menampung empat gambar yang dihasilkan sebagai string berenkode base64. Kami menambahkan dua fungsi pembantu, decode_base64_to_image dan display_images, untuk mendekode respons dan menampilkan masing-masing gambar. Yang pertama mendekode string yang disandikan base64 dan mengembalikan objek PIL.Image, dan yang terakhir menampilkan daftar objek PIL.Image. Lihat kode berikut:
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
Mari kita lanjutkan dengan tugas melukis. Diperkirakan akan memakan waktu sekitar 15 detik untuk menghasilkan tiga gambar, mengingat gambar masukan dan topeng yang dibuat menggunakan CLIPSeg dengan perintah teks yang dibahas sebelumnya. Lihat kode berikut:
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)
Gambar dalam lukisan dapat ditampilkan bersama dengan gambar asli untuk perbandingan visual. Selain itu, proses in-painting dapat dibatasi menggunakan berbagai parameter seperti guidance_scale, yang mengontrol kekuatan gambar panduan selama proses in-painting. Ini memungkinkan pengguna untuk menyesuaikan gambar keluaran dan mencapai hasil yang diinginkan.
Jumpstart Amazon SageMaker menawarkan templat Difusi Stabil untuk berbagai model, termasuk teks-ke-gambar dan peningkatan skala. Untuk informasi lebih lanjut, silakan merujuk ke SageMaker JumpStart kini menyediakan model Stable Diffusion dan Bloom. Template Jumpstart tambahan akan tersedia dalam waktu dekat.
keterbatasan
Meskipun CLIPSeg biasanya bekerja dengan baik dalam mengenali objek umum, ia kesulitan dalam tugas yang lebih abstrak atau sistematis seperti menghitung jumlah objek dalam gambar dan tugas yang lebih kompleks seperti memprediksi seberapa dekat objek terdekat seperti tas tangan di dalam foto. CLIPSeq zero-shot juga berjuang dibandingkan dengan model khusus tugas pada klasifikasi yang sangat halus, seperti membedakan antara dua desain yang tidak jelas, varian pakaian, atau klasifikasi gaya. CLIPSeq juga masih memiliki generalisasi yang buruk untuk gambar yang tidak tercakup dalam dataset pra-pelatihannya. Akhirnya, telah diamati bahwa pengklasifikasi zero-shot CLIP dapat peka terhadap kata-kata atau ungkapan dan kadang-kadang memerlukan "rekayasa cepat" coba-coba untuk bekerja dengan baik. Beralih ke model segmentasi semantik yang berbeda untuk tulang punggung CLIPSeq, seperti BEIT, yang membanggakan 62.8% mIOU pada kumpulan data ADE20K, berpotensi meningkatkan hasil.
Desain fesyen yang dihasilkan dengan menggunakan Stable Diffusion ternyata terbatas pada bagian pakaian yang setidaknya dapat diprediksi ditempatkan dalam konteks yang lebih luas dari model fesyen, dan yang sesuai dengan penyematan tingkat tinggi yang secara wajar dapat Anda harapkan untuk ditemukan di kumpulan data hiperskala yang digunakan selama melatih model yang telah dilatih sebelumnya. Batas sebenarnya dari AI generatif adalah bahwa model tersebut pada akhirnya akan menghasilkan keluaran yang benar-benar imajiner dan kurang otentik. Oleh karena itu, desain fesyen yang dihasilkan oleh AI mungkin tidak sevariatif atau seunik yang dibuat oleh desainer manusia.
Kesimpulan
Kecerdasan Buatan generatif memberikan peluang bagi sektor fesyen untuk mengubah praktik mereka melalui pengalaman pengguna yang lebih baik dan strategi bisnis yang hemat biaya. Dalam postingan ini, kami menunjukkan cara memanfaatkan AI generatif untuk memungkinkan perancang busana dan konsumen menciptakan gaya busana yang dipersonalisasi menggunakan pemodelan virtual. Dengan bantuan template Amazon SageMaker Jumpstart yang sudah ada dan yang akan datang, pengguna dapat dengan cepat menerapkan teknik canggih ini tanpa memerlukan keahlian teknis yang mendalam, sekaligus mempertahankan keserbagunaan dan menurunkan biaya.
Teknologi inovatif ini menghadirkan peluang baru bagi perusahaan dan profesional yang terlibat dalam pembuatan konten, di berbagai industri. AI generatif memberikan banyak kemampuan untuk menyempurnakan dan membuat konten. Coba tambahan terbaru pada template Jumpstart di Anda Studio SageMaker, seperti menyempurnakan kemampuan text-to-image dan kelas atas.
Kami ingin berterima kasih kepada Li Zhang, Karl Albertsen, Kristine Pearce, Nikhil Velpanur, Aaron Sengstacken, James Wu dan Neelam Koshiya atas dukungan dan masukan berharga mereka yang membantu menyempurnakan pekerjaan ini.
Tentang Penulis
Alfred Shen adalah Spesialis AI/ML Senior di AWS. Dia telah bekerja di Silicon Valley, memegang posisi teknis dan manajerial di berbagai sektor termasuk kesehatan, keuangan, dan teknologi tinggi. Dia adalah peneliti AI/ML terapan yang berdedikasi, berkonsentrasi pada CV, NLP, dan multimodalitas. Karyanya telah dipamerkan dalam publikasi seperti EMNLP, ICLR, dan Kesehatan Masyarakat.
Dr Vivek Madan adalah Ilmuwan Terapan dengan tim Amazon SageMaker JumpStart. Dia mendapatkan gelar PhD dari University of Illinois di Urbana-Champaign dan merupakan Post Doctoral Researcher di Georgia Tech. Dia adalah peneliti aktif dalam pembelajaran mesin dan desain algoritme dan telah menerbitkan makalah di konferensi EMNLP, ICLR, COLT, FOCS, dan SODA
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/virtual-fashion-styling-with-generative-ai-using-amazon-sagemaker/
- 1
- 10
- 100
- 7
- a
- Aaron
- Sanggup
- Tentang Kami
- ABSTRAK
- mempercepat
- akselerator
- mengakses
- aksesoris
- dicapai
- Akun
- tepat
- Mencapai
- di seluruh
- aktif
- menyesuaikan
- menambahkan
- Tambahan
- Selain itu
- tambahan
- alamat
- Adopsi
- maju
- nasihat
- Setelah
- AI
- AI / ML
- algoritma
- algoritma
- Semua
- Membiarkan
- memungkinkan
- sudah
- Amazon
- Amazon SageMaker
- Mulai Lompatan Amazon SageMaker
- jumlah
- dan
- Pakaian
- muncul
- aplikasi
- terapan
- Mendaftar
- sekitar
- arsitektur
- arsip
- DAERAH
- argumen
- buatan
- kecerdasan buatan
- ASA
- Bantuan
- perhatian
- audio
- Asli
- tersedia
- AWS
- Tulang punggung
- Bandwidth
- Bank
- mendasarkan
- berdasarkan
- karena
- mulai
- bermanfaat
- manfaat
- Lebih baik
- antara
- mengikat
- mengikat
- Memblokir
- Blog
- Berkembang
- Biru
- membanggakan
- tubuh
- pin
- kotak
- Bright
- lebih cerah
- anggaran belanja
- bisnis
- Aplikasi Bisnis
- menghitung
- bernama
- kemampuan
- mampu
- kasus
- lepas
- pusat
- tantangan
- kesempatan
- perubahan
- Pilih
- kelas
- klasifikasi
- Penyelesaian
- penutupan
- Pakaian
- awan
- kode
- mengumpulkan
- warna
- Kolom
- bagaimana
- kenyamanan
- Umum
- Perusahaan
- membandingkan
- dibandingkan
- perbandingan
- Melengkapi
- kompleks
- komponen
- komputasi
- menghitung
- komputasi
- konsep
- konfigurasi
- terhubung
- konstan
- Konsumen
- Wadah
- mengandung
- Konten
- Pembuatan Konten
- konteks
- terus
- kontrol
- kontrol
- mengubah
- Sesuai
- Biaya
- bisa
- tercakup
- membuat
- dibuat
- membuat
- penciptaan
- kritis
- sangat penting
- Sekarang
- adat
- pelanggan
- Kepuasan pelanggan
- pelanggan
- disesuaikan
- kustomisasi
- data
- mengurangi
- dedicated
- mendalam
- belajar mendalam
- tuntutan
- denim
- menyebarkan
- dikerahkan
- penyebaran
- menggambarkan
- dijelaskan
- Mendesain
- dirancang
- desainer
- desain
- diinginkan
- terperinci
- rincian
- menentukan
- perbedaan
- berbeda
- Difusi
- langsung
- dibahas
- Display
- menampilkan
- didistribusikan
- distribusi
- beberapa
- domain
- Download
- puluhan
- daya tahan
- selama
- e-commerce
- mudah
- Efektif
- efisien
- elemen
- menghilangkan
- merangkul
- aktif
- memungkinkan
- memungkinkan
- meliputi
- Titik akhir
- Insinyur
- meningkatkan
- memastikan
- Menghibur
- lengkap
- kesalahan
- diperkirakan
- malam
- akhirnya
- berkembang
- contoh
- contoh
- ada
- mengharapkan
- biaya
- mahal
- Pengalaman
- keahlian
- ekspor
- ekstrak
- kain
- kain
- Menghadapi
- wajah
- Fashion
- lebih cepat
- Fitur
- wanita
- beberapa
- kesetiaan
- bidang
- File
- File
- mengisi
- terakhir
- Akhirnya
- keuangan
- Menemukan
- akhir
- Pertama
- cocok
- suar
- fleksibel
- aliran
- Fokus
- diikuti
- berikut
- berikut
- resmi
- Bekas
- Depan
- ditemukan
- sering
- dari
- penuh
- sepenuhnya
- fungsi
- fungsi
- lebih lanjut
- Selanjutnya
- masa depan
- pakaian
- menghasilkan
- dihasilkan
- generasi
- generatif
- AI generatif
- Georgia
- mendapatkan
- diberikan
- GPU
- GPU
- Grafis
- abu-abu
- lebih besar
- sangat
- kisi
- menangani
- Penanganan
- memanfaatkan
- memiliki
- Kesehatan
- kesehatan
- tinggi
- membantu
- di sini
- High
- tingkat tinggi
- resolusi tinggi
- lebih tinggi
- highlight
- sangat
- memegang
- memegang
- tuan rumah
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- Namun
- HTML
- HTTPS
- Pusat
- MemelukWajah
- manusia
- ide
- identifier
- mengenali
- Illinois
- gambar
- gambar
- imajiner
- implementasi
- mengimpor
- penting
- memperbaiki
- ditingkatkan
- in
- secara mendalam
- memasukkan
- termasuk
- Termasuk
- masuk
- menggabungkan
- Pada meningkat
- industri
- industri
- informasi
- mulanya
- inovatif
- memasukkan
- install
- contoh
- sebagai gantinya
- Intelijen
- diperkenalkan
- terlibat
- IT
- item
- Pekerjaan
- json
- kunci
- label
- Label
- bahasa
- besar
- jalankan
- lapisan
- terkemuka
- BELAJAR
- belajar
- pengetahuan
- Panjang
- adalah ide yang bagus
- Li
- Perpustakaan
- MEMBATASI
- Terbatas
- Daftar
- memuat
- pemuatan
- Panjang
- lepas
- Penurunan
- menguntungkan
- mesin
- Mesin belajar
- Utama
- memelihara
- mempertahankan
- membuat
- Membuat
- manajerial
- Produsen
- pemetaan
- Pasar
- Marketing
- masker
- masker
- Cocok
- bahan
- matplotlib.dll
- cara
- Media
- Memori
- metode
- metode
- hilang
- ML
- model
- model
- lebih
- paling
- pindah
- gerakan
- beberapa
- nama
- Alam
- Dekat
- perlu
- Perlu
- membutuhkan
- kebutuhan
- jaringan
- Netral
- New
- nLP
- node
- normal
- novel
- jumlah
- Nvidia
- obyek
- objek
- hambatan
- menawarkan
- menawarkan
- Penawaran
- ONE
- Satu diantara
- secara online
- Kesempatan
- dioptimalkan
- pilihan
- urutan
- asli
- OS
- sendiri
- dipasangkan
- pasangan
- dokumen
- parameter
- tertentu
- bagian
- Lulus
- path
- pola
- pola
- Melakukan
- prestasi
- melakukan
- Izin
- pribadi
- Personalisasi
- Personalisasi
- Personalized
- Fotorealistik
- Film
- pipa
- pipa saluran
- Platform
- plato
- Kecerdasan Data Plato
- Data Plato
- silahkan
- miskin
- Populer
- pose
- posisi
- Pos
- potensi
- berpotensi
- Praktis
- praktek
- praktek
- meramalkan
- memprediksi
- ramalan
- Predictor
- preferensi
- disukai
- hadiah
- mencegah
- sebelumnya
- Sebelumnya
- proses
- menghasilkan
- Produksi
- Produk
- profesional
- tepat
- memberikan
- menyediakan
- publik
- kesehatan masyarakat
- publikasi
- di depan umum
- diterbitkan
- murni
- tujuan
- tujuan
- Ular sanca
- pytorch
- kualitas
- segera
- jarak
- nyata
- real-time
- realistis
- menerima
- baru
- rekomendasi
- Merah
- menurunkan
- mengurangi
- referensi
- mengacu
- relevansi
- Dilaporkan
- merupakan
- permintaan
- permintaan
- membutuhkan
- membutuhkan
- peneliti
- Resolusi
- tanggapan
- mengakibatkan
- dihasilkan
- Hasil
- eceran
- kembali
- Pengembalian
- RGB
- Peran
- kira-kira
- Run
- berjalan
- pembuat bijak
- penjualan
- kepuasan
- Save
- Tabungan
- Skala
- ilmuwan
- SDK
- Kedua
- detik
- sektor
- Sektor
- segmentasi
- segmen
- memilih
- senior
- peka
- melayani
- layanan
- Sidang
- set
- beberapa
- tajam
- Kulit
- Pendek
- harus
- menampilkan
- sisi
- Silikon
- Silicon Valley
- mirip
- Sederhana
- hanya
- serentak
- tunggal
- Ukuran
- kecil
- So
- Sosial
- media sosial
- larutan
- beberapa
- sesuatu
- Space
- khusus
- spesialis
- khusus
- tertentu
- ditentukan
- stabil
- standar
- Negara
- Langkah
- Tangga
- Masih
- penyimpanan
- tersimpan
- strategi
- kekuatan
- Stripes
- Perjuangan
- gaya
- subyek
- sukses
- seperti itu
- musim panas
- Supermodel
- pengawasan
- Mendukung
- disesuaikan
- Mengambil
- Dibutuhkan
- target
- tugas
- tugas
- tim
- tech
- Teknis
- teknik
- Teknologi
- template
- istilah
- Tesla
- Grafik
- Daerah
- Dunia
- mereka
- karena itu
- tiga
- Melalui
- Terjalin
- untuk
- alat
- obor
- SAMA SEKALI
- tradisional
- lalu lintas
- Pelatihan VE
- terlatih
- Pelatihan
- transfer
- Mengubah
- transformer
- perjalanan
- Tren
- percobaan
- Triliun
- bawah
- unik
- universitas
- upload
- penggunaan
- menggunakan
- Pengguna
- Pengguna
- biasanya
- Penggunaan
- dimanfaatkan
- memanfaatkan
- Memanfaatkan
- liburan
- Lembah
- Berharga
- nilai
- variasi
- berbagai
- Luas
- memeriksa
- versi
- Video
- maya
- W
- cara
- yang
- sementara
- putih
- SIAPA
- lebar
- Rentang luas
- lebih luas
- lebar
- akan
- dalam
- tanpa
- susunan kata
- Kerja
- bekerja
- dunia
- Bank Dunia
- akan
- membungkus
- wu
- X
- Kamu
- Anda
- zephyrnet.dll
- Zip