صنعت مد یک است تجارت بسیار سودآورطبق گزارش بانک جهانی، ارزش تخمینی آن تا سال 2.1 به 2025 تریلیون دلار می رسد. این حوزه طیف متنوعی از بخشها مانند ایجاد، ساخت، توزیع و فروش پوشاک، کفش و لوازم جانبی را در بر میگیرد. این صنعت در حال تغییر دائمی است و سبک ها و روندهای جدید اغلب ظاهر می شوند. بنابراین، شرکت های مد باید انعطاف پذیر و قادر به تطبیق برای حفظ ارتباط خود و دستیابی به موفقیت در بازار باشند.
هوش مصنوعی مولد (AI) به الگوریتمهای هوش مصنوعی اطلاق میشود که برای تولید محتوای جدید، مانند تصاویر، متن، صدا یا ویدئو، بر اساس مجموعهای از الگوها و دادههای آموخته شده طراحی شدهاند. می توان از آن برای تولید طرح های پوشاک جدید و نوآورانه استفاده کرد و در عین حال شخصی سازی و مقرون به صرفه بودن را بهبود بخشید. ابزارهای طراحی مبتنی بر هوش مصنوعی می توانند طرح های پوشاک منحصر به فرد را بر اساس پارامترهای ورودی یا سبک های مشخص شده توسط مشتریان بالقوه از طریق پیام های متنی ایجاد کنند. علاوه بر این، هوش مصنوعی می تواند برای شخصی سازی طرح ها بر اساس ترجیحات مشتری استفاده شود. برای مثال، یک مشتری میتواند از بین رنگها، الگوها و سبکهای مختلف انتخاب کند و مدلهای هوش مصنوعی بر اساس آن انتخابها، طراحی منحصربهفردی ایجاد میکنند. پذیرش هوش مصنوعی در صنعت مد در حال حاضر توسط چالش های فنی، امکان سنجی و هزینه های مختلف با مانع مواجه شده است. با این حال، اکنون میتوان این موانع را با استفاده از روشهای پیشرفته هوش مصنوعی مولد مانند تقسیمبندی معنایی تصویر مبتنی بر زبان طبیعی و انتشار برای استایل مجازی کاهش داد.
این پست وبلاگ به جزئیات پیاده سازی یک ظاهر طراحی آنلاین مد با کمک هوش مصنوعی با استفاده از اعلان های متنی می پردازد. مهندسان یادگیری ماشین (ML) میتوانند مدلهای تقسیمبندی متن به معنایی و درون نقاشی را بر اساس CLIPseq و Stable Diffusion از پیش آموزشدیده تنظیم و به کار ببرند. آمازون SageMaker. این به طراحان مد و مصرفکنندگان امکان میدهد تا تصاویر مدلسازی مجازی را بر اساس پیامهای متنی ایجاد کنند و سبکهای دلخواه خود را انتخاب کنند.
راه حل های مولد هوش مصنوعی
La CLIPSeg مدل یک روش جدید تقسیم بندی معنایی تصویر را معرفی کرد که به شما امکان می دهد به راحتی موارد مد را در تصاویر با استفاده از دستورات متنی ساده شناسایی کنید. این برنامه از یک اعلان متن یا یک رمزگذار تصویر برای رمزگذاری اطلاعات متنی و بصری در فضای تعبیه چندوجهی استفاده میکند که امکان تقسیم بندی دقیق اشیاء هدف را بر اساس درخواست فراهم میکند. این مدل بر روی حجم وسیعی از داده ها با تکنیک هایی مانند انتقال شات صفر، نظارت زبان طبیعی، و یادگیری متضاد خود نظارتی چندوجهی آموزش دیده است. این بدان معنی است که شما می توانید از یک مدل از پیش آموزش دیده استفاده کنید که توسط عموم در دسترس است تیمو لودکه و همکاران بدون نیاز به سفارشی سازی.
CLIPSeg مدلی است که از یک رمزگذار متن و تصویر برای رمزگذاری اطلاعات متنی و بصری در یک فضای تعبیه چندوجهی برای انجام تقسیم بندی معنایی بر اساس یک اعلان متن استفاده می کند. معماری CLIPSeg از دو جزء اصلی تشکیل شده است: یک رمزگذار متن و یک رمزگذار تصویر. رمزگذار متن، اعلان متن را دریافت می کند و آن را به جاسازی متن تبدیل می کند، در حالی که رمزگذار تصویر، تصویر را می گیرد و آن را به جاسازی تصویر تبدیل می کند. سپس هر دو جاسازی به هم متصل می شوند و از یک لایه کاملاً متصل عبور می کنند تا ماسک قطعه بندی نهایی تولید شود.
از نظر جریان داده، مدل بر روی مجموعه دادهای از تصاویر و اعلانهای متنی مربوطه آموزش داده میشود، جایی که اعلانهای متن شی مورد نظر را که باید قطعهبندی شود، توصیف میکنند. در طول فرآیند آموزش، رمزگذار متن و رمزگذار تصویر بهینهسازی میشوند تا نگاشت بین پیامهای متن و تصویر را برای تولید ماسک تقسیمبندی نهایی بیاموزند. هنگامی که مدل آموزش داده شد، می تواند یک پیام متنی و تصویر جدید دریافت کند و یک ماسک تقسیم بندی برای شی توضیح داده شده در اعلان تولید کند.
Stable Diffusion تکنیکی است که به طراحان مد اجازه میدهد تا تصاویر بسیار واقعی را در مقادیر زیاد و صرفاً بر اساس توضیحات متنی بدون نیاز به سفارشیسازی طولانی و پرهزینه تولید کنند. این برای طراحانی که می خواهند سبک های مد را به سرعت ایجاد کنند و تولید کنندگانی که می خواهند محصولات شخصی سازی شده را با هزینه کمتر تولید کنند مفید است.
نمودار زیر معماری Stable Diffusion و جریان داده را نشان می دهد.
در مقایسه با روشهای سنتی مبتنی بر GAN، Stable Diffusion یک هوش مصنوعی مولد است که میتواند تصاویر پایدارتر و واقعیتری تولید کند که با توزیع تصویر اصلی مطابقت داشته باشد. این مدل را میتوان در طیف وسیعی از اهداف، مانند متن برای تولید متن به تصویر، کادرهای محدود برای تولید طرحبندی به تصویر، تصاویر ماسکدار برای نقاشی درونرنگ و تصاویر با وضوح پایینتر برای وضوح فوقالعاده شرطیسازی کرد. مدلهای انتشار طیف وسیعی از کاربردهای تجاری دارند و کاربردهای عملی آنها همچنان در حال تکامل است. این مدلها برای صنایع مختلف مانند مد، خردهفروشی و تجارت الکترونیک، سرگرمی، رسانههای اجتماعی، بازاریابی و غیره بسیار سودمند خواهند بود.
با استفاده از CLIPSeg، ماسکهایی را از پیامهای متنی ایجاد کنید
استایلسازی آنلاین Vogue سرویسی است که مشتریان را قادر میسازد از طریق یک پلتفرم آنلاین، توصیهها و توصیههای مربوط به مد را از هوش مصنوعی دریافت کنند. این کار را با انتخاب لباسها و اکسسوریهایی انجام میدهد که ظاهر مشتری را تکمیل میکند، با بودجهاش متناسب است و با ترجیحات شخصی او مطابقت دارد. با استفاده از هوش مصنوعی مولد، وظایف را می توان با سهولت بیشتری انجام داد که منجر به افزایش رضایت مشتری و کاهش هزینه ها می شود.
راه حل را می توان بر روی یک مستقر کرد ابر محاسباتی الاستیک آمازون (EC2) نمونه p3.2xlarge که دارای یک واحد گرافیکی V100 با حافظه 16G است. چندین تکنیک برای بهبود عملکرد و کاهش استفاده از حافظه GPU استفاده شد که منجر به تولید سریعتر تصویر شد. اینها شامل استفاده از fp16 و فعال کردن توجه کارآمد حافظه برای کاهش پهنای باند در بلوک توجه است.
ما با آپلود تصویر مد توسط کاربر شروع کردیم و سپس مدل از پیش آموزش دیده را از CLIPseq دانلود و استخراج کردیم. سپس تصویر عادی می شود و اندازه آن برای مطابقت با محدودیت اندازه تغییر می کند. Stable Diffusion V2 از وضوح تصویر تا 768×768 پشتیبانی می کند در حالی که V1 تا 512×512 را پشتیبانی می کند. کد زیر را ببینید:
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)
با استفاده از مدل CLIPseq از قبل آموزش دیده، میتوانیم شی مورد نظر را با استفاده از یک پیام متنی از یک تصویر استخراج کنیم. این کار با وارد کردن اعلان متن در رمزگذار متن انجام می شود که آن را به یک جاسازی متن تبدیل می کند. سپس تصویر به رمزگذار تصویر وارد می شود که آن را به یک جاسازی تصویر تبدیل می کند. سپس هر دو جاسازی به هم متصل میشوند و از یک لایه کاملاً متصل عبور میکنند تا ماسک قطعهبندی نهایی تولید شود، که شی هدف شرح داده شده در اعلان متن را برجسته میکند. کد زیر را ببینید:
# 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]))
با تصویر ماسک دقیق از تقسیم بندی معنایی، می توانیم از نقاشی درونی برای جایگزینی محتوا استفاده کنیم. In-Painting فرآیند استفاده از یک مدل مولد آموزش دیده برای پر کردن قسمت های از دست رفته یک تصویر است. با استفاده از تصویر ماسک برای شناسایی شی مورد نظر، میتوانیم از تکنیک نقاشی درون نقاشی استفاده کنیم تا شی مورد نظر را با چیز دیگری، مانند یک لباس یا لوازم جانبی متفاوت جایگزین کنیم. برای این منظور می توان از مدل Stable Diffusion V2 استفاده کرد، زیرا می تواند تصاویری با وضوح بالا و واقعی را تولید کند که با توزیع تصویر اصلی مطابقت دارند.
تنظیم دقیق مدل های از پیش آموزش دیده با استفاده از DreamBooth
تنظیم دقیق فرآیندی در یادگیری عمیق است که در آن یک مدل از پیش آموزش دیده با استفاده از مقدار کمی از دادههای برچسبگذاری شده در مورد یک کار جدید بیشتر آموزش داده میشود. بهجای آموزش از ابتدا، ایده این است که شبکهای را انتخاب کنیم که قبلاً روی یک مجموعه داده بزرگ برای یک کار مشابه آموزش داده شده است و آن را بیشتر روی یک مجموعه داده جدید آموزش دهیم تا برای آن کار خاص تخصصیتر شود.
طراحان مد همچنین میتوانند از مدلهای رنگآمیزی Stable Diffusion مبتنی بر موضوع و با تنظیم دقیق استفاده کنند تا یک کلاس خاص از سبک، مانند دامنهای بلند معمولی برای خانمها ایجاد کنند. برای انجام این کار، اولین گام این است که مجموعهای از تصاویر نمونه را در دامنه هدف، تقریباً حدود 1 ده، با برچسبهای متنی مناسب مانند موارد زیر ارائه دهید و آنها را به یک شناسه منحصر به فرد متصل کنید که به طرح، سبک، رنگ و پارچه اشاره دارد. . برچسب روی متن نقش مهمی در تعیین نتایج مدل تنظیم شده دارد. راه های مختلفی برای بهبود تنظیم دقیق از طریق موثر وجود دارد مهندسی سریع و در اینجا چند نمونه آورده شده است.
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.
استفاده از مجموعه کوچکی از تصاویر برای تنظیم دقیق Stable Diffusion ممکن است منجر به تطبیق بیش از حد مدل شود. DreamBooth[5] این موضوع را با استفاده از یک کلاس خاص از دست دادن حفاظت قبلی برطرف می کند. یاد می گیرد که یک شناسه منحصر به فرد را با آن موضوع خاص در دو مرحله پیوند دهد. ابتدا، مدل با وضوح پایین را با تصاویر ورودی جفت شده با یک پیام متنی که حاوی یک شناسه منحصر به فرد و نام کلاسی است که موضوع به آن تعلق دارد، مانند « دامن » تنظیم می کند. در عمل، این بدان معنی است که مدل متناسب با تصاویر و تصاویر نمونه برداری شده از تصویر قبلی کلاس بدون تنظیم دقیق به طور همزمان. این تصاویر از قبل حفظ شده با استفاده از اعلان "اسم کلاس" نمونه برداری و برچسب گذاری می شوند. دوم، اجزای با وضوح فوقالعاده بالا را با جفت کردن تصاویر با وضوح پایین و وضوح بالا از مجموعه تصاویر ورودی تنظیم میکند، که به خروجیهای مدل تنظیمشده اجازه میدهد تا وفاداری به جزئیات کوچک را حفظ کنند.
تنظیم دقیق یک رمزگذار متنی از قبل آموزش دیده با UNet برای تصاویر با وضوح 512×512 به تقریباً 22 گیگابایت VRAM یا بالاتر برای وضوح 768×768 نیاز دارد. در حالت ایدهآل، اندازه نمونههای تنظیم دقیق باید تغییر اندازه داده شود تا با وضوح تصویر خروجی مطلوب مطابقت داشته باشد تا از کاهش عملکرد جلوگیری شود. رمزگذار متن جزئیات دقیق تری مانند چهره مدل را تولید می کند. یکی از گزینه ها اجرای روی یک نمونه AWS EC2 g5.2xlarge است که اکنون در دسترس است هشت منطقه یا از Hugging Face Accelerate برای اجرای کد تنظیم شده در یک پیکربندی توزیع شده استفاده کنید. برای صرفه جویی در حافظه اضافی، می توانید یک نسخه تکه تکه شده از توجه را انتخاب کنید که محاسبات را به جای همه به یکباره در مراحل انجام می دهد و به سادگی با تغییر اسکریپت آموزشی DreamBooth train_dreambooth_inpaint.py برای افزودن تابع () enable_attention_slicing خط لوله را انجام می دهد.
Accelerate یک کتابخانه است که یک کد تنظیم دقیق را قادر می سازد تا در هر پیکربندی توزیع شده اجرا شود. Hugging Face و آمازون معرفی شدند ظروف یادگیری عمیق چهره در آغوش گرفتن (DLC) برای مقیاس بندی وظایف تنظیم دقیق در چندین GPU و گره. شما می توانید پیکربندی راه اندازی را برای Amazon SageMaker با یک دستور 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')
برای راهاندازی یک کار تنظیم دقیق، پیکربندی Accelerate را با استفاده از آن تأیید کنید CLI و آرگومان های آموزشی لازم را ارائه کنید، سپس از پوسته اسکریپت زیر استفاده کنید.
# 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
مدل رنگ آمیزی دقیق، امکان تولید تصاویر خاص تری را برای کلاس مد توضیح داده شده توسط اعلان متن فراهم می کند. از آنجایی که با مجموعهای از تصاویر با وضوح بالا و اعلانهای متنی تنظیم شده است، این مدل میتواند تصاویری را تولید کند که بیشتر متناسب با کلاس هستند، مانند لباسهای شب رسمی. توجه به این نکته ضروری است که هرچه کلاس خاص تر باشد و داده های بیشتری برای تنظیم دقیق استفاده شود، تصاویر خروجی دقیق تر و واقعی تر خواهند بود.
%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
با استفاده از SageMaker برای استنباط، یک مدل دقیق تنظیم شده در نقاشی را اجرا کنید
با آمازون SageMaker، میتوانید مدلهای پخش پایدار پایدار را برای استنتاج بلادرنگ مستقر کنید. برای آپلود مدل در سرویس ذخیره سازی ساده آمازون (S3) برای استقرار، یک tarball بایگانی model.tar.gz باید ایجاد شود. مطمئن شوید که آرشیو مستقیماً شامل همه فایلها میشود، نه پوشهای که حاوی آنهاست. پوشه آرشیو تنظیم دقیق DreamBooth باید پس از حذف نقاط بازرسی متناوب به صورت زیر ظاهر شود:
گام اولیه در ایجاد کنترل کننده استنتاج ما شامل ایجاد فایل inference.py است. این فایل به عنوان مرکز مرکزی برای بارگیری مدل و رسیدگی به تمام درخواستهای استنتاج ورودی عمل میکند. پس از بارگذاری مدل، تابع model_fn() اجرا می شود. هنگامی که نیاز به انجام استنتاج ایجاد می شود، تابع ()predict_fn فراخوانی می شود. علاوه بر این، تابع ()decode_base64 برای تبدیل یک رشته JSON، موجود در بار، به یک نوع داده تصویر 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}
برای آپلود مدل در سطل آمازون S3، ابتدا باید یک آرشیو model.tar.gz ایجاد کنید. توجه به این نکته ضروری است که آرشیو باید مستقیماً از فایل ها تشکیل شده باشد و نه پوشه ای که آنها را در خود نگه دارد. به عنوان مثال، فایل باید به صورت زیر ظاهر شود:
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")
پس از آپلود آرشیو مدل، میتوانیم آن را در Amazon SageMaker با استفاده از HuggingfaceModel برای استنتاج بلادرنگ مستقر کنیم. میتوانید نقطه پایانی را با استفاده از یک نمونه g4dn.xlarge میزبانی کنید، که مجهز به یک پردازنده گرافیکی NVIDIA Tesla T4 با 16 گیگابایت VRAM است. مقیاس خودکار را می توان برای رسیدگی به نیازهای ترافیکی مختلف فعال کرد. برای اطلاعات در مورد گنجاندن مقیاس خودکار در نقطه پایانی خود، رجوع کنید به در حال تولید: ترانسفورماتورهای صورت در آغوش گرفته با مقیاس خودکار با آمازون 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" )
متد ()huggingface_model.deploy یک شی HuggingFacePredictor را برمی گرداند که می تواند برای درخواست استنتاج استفاده شود. نقطه پایانی به یک JSON با یک کلید ورودی نیاز دارد که نشان دهنده اعلان ورودی برای مدل برای تولید تصویر است. همچنین می توانید تولید را با پارامترهایی مانند num_inference_steps، guidance_scale و "num_images_per_prompt" کنترل کنید. تابع ()predictor.predict یک JSON را با یک کلید "generated_images" برمی گرداند، که چهار تصویر تولید شده را به عنوان رشته های کدگذاری شده base64 نگه می دارد. ما دو تابع کمکی، decode_base64_to_image و display_images را برای رمزگشایی پاسخ و نمایش تصاویر به ترتیب اضافه کردیم. اولی رشته کد شده base64 را رمزگشایی می کند و یک شی PIL.Image را برمی گرداند و دومی لیستی از اشیاء PIL.Image را نمایش می دهد. کد زیر را ببینید:
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
بیایید با کار درون نقاشی جلو برویم. با توجه به تصویر ورودی و ماسک ایجاد شده با استفاده از CLIPSeg با اعلان متنی که قبلاً بحث شد، تخمین زده شده است که تولید سه تصویر تقریباً 15 ثانیه طول می کشد. کد زیر را ببینید:
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)
برای مقایسه بصری می توان تصاویر درون نقاشی شده را همراه با تصویر اصلی نمایش داد. علاوه بر این، فرآیند درون نقاشی را می توان با استفاده از پارامترهای مختلفی مانند guidance_scale، که قدرت تصویر هدایت را در طول فرآیند درون نقاشی کنترل می کند، محدود کرد. این به کاربر اجازه می دهد تا تصویر خروجی را تنظیم کند و به نتایج دلخواه دست یابد.
آمازون SageMaker Jumpstart قالب های Stable Diffusion را برای مدل های مختلف از جمله تبدیل متن به تصویر و ارتقاء مقیاس ارائه می دهد. برای اطلاعات بیشتر لطفا به SageMaker JumpStart اکنون مدل های Stable Diffusion و Bloom را ارائه می دهد. قالب های Jumpstart اضافی در آینده نزدیک در دسترس خواهند بود.
محدودیت ها
اگرچه CLIPSeg معمولاً در تشخیص اشیاء رایج به خوبی عمل می کند، اما در کارهای انتزاعی یا سیستماتیک تر مانند شمارش تعداد اشیاء در یک تصویر و کارهای پیچیده تری مانند پیش بینی نزدیک ترین شیء مانند کیف دستی در یک عکس مشکل دارد. Zero-shot CLIPseq همچنین در مقایسه با مدلهای ویژه کار در طبقهبندی بسیار ریز، مانند تفاوت بین دو طرح مبهم، انواع لباس، یا طبقهبندی سبک با مشکل مواجه است. CLIPseq همچنین هنوز تعمیم ضعیفی به تصاویری دارد که در مجموعه داده های قبل از آموزش پوشش داده نشده است. در نهایت، مشاهده شده است که طبقهبندیکنندههای صفر شات CLIP میتوانند به جملهبندی یا عبارتبندی حساس باشند و گاهی برای عملکرد خوب نیاز به آزمایش و خطا «مهندسی سریع» دارند. تغییر به یک مدل تقسیم بندی معنایی متفاوت برای ستون فقرات CLIPseq، مانند BEiT، که دارای 62.8% mIOU در مجموعه داده ADE20K است، به طور بالقوه می تواند نتایج را بهبود بخشد.
مشخص شده است که طرحهای مد تولید شده با استفاده از انتشار پایدار به بخشهایی از لباسها محدود میشوند که حداقل بهطور قابل پیشبینی در بافت وسیعتر مدلهای مد قرار میگیرند، و مطابق با جاسازیهای سطح بالایی هستند که میتوانید به طور منطقی انتظار داشته باشید که در آن پیدا کنید. یک مجموعه داده فرامقیاس استفاده شده در طول آموزش مدل از پیش آموزش دیده. محدودیت واقعی هوش مصنوعی مولد این است که مدل در نهایت خروجی های کاملاً خیالی و کمتر معتبر تولید می کند. بنابراین، طرحهای مد تولید شده توسط هوش مصنوعی ممکن است به اندازه طرحهای طراحی شده توسط انسانها متنوع یا منحصر به فرد نباشد.
نتیجه
هوش مصنوعی مولد فرصتی را برای بخش مد فراهم می کند تا از طریق تجربیات کاربر بهتر و استراتژی های تجاری مقرون به صرفه، شیوه های خود را تغییر دهد. در این پست، نحوه استفاده از هوش مصنوعی مولد را نشان میدهیم تا طراحان مد و مصرفکنندگان را قادر به ایجاد سبکهای مد شخصی با استفاده از مدلسازی مجازی کنند. با کمک قالبهای آمازون SageMaker Jumpstart و قالبهای آینده، کاربران میتوانند به سرعت از این تکنیکهای پیشرفته بدون نیاز به تخصص فنی عمیق استفاده کنند، همه اینها در عین حفظ تطبیق پذیری و کاهش هزینهها.
این فناوری نوآورانه فرصت های جدیدی را برای شرکت ها و متخصصان درگیر در تولید محتوا در صنایع مختلف ارائه می دهد. هوش مصنوعی مولد قابلیت های فراوانی را برای افزایش و ایجاد محتوا فراهم می کند. افزودههای اخیر به قالبهای Jumpstart را در خود امتحان کنید SageMaker Studio، مانند تنظیم دقیق متن به تصویر و قابلیت های سطح بالا.
مایلیم از لی ژانگ، کارل آلبرتسن، کریستین پیرس، نیکیل ولپانور، آرون سنگستاکن، جیمز وو و نیلم کوشیا برای حمایتها و ورودیهای ارزشمندشان که به بهبود این کار کمک کردند، تشکر کنیم.
درباره نویسنده
آلفرد شن یک متخصص ارشد AI/ML در AWS است. او در سیلیکون ولی کار کرده است و سمتهای فنی و مدیریتی را در بخشهای مختلف از جمله مراقبتهای بهداشتی، مالی و فناوری پیشرفته بر عهده داشته است. او یک محقق اختصاصی AI/ML کاربردی است که بر روی CV، NLP و چندوجهی تمرکز دارد. کارهای او در نشریاتی مانند EMNLP، ICLR و Public Health به نمایش گذاشته شده است.
دکتر ویوک مدان یک دانشمند کاربردی با تیم آمازون SageMaker JumpStart است. او دکترای خود را از دانشگاه ایلینویز در Urbana-Champaign گرفت و پژوهشگر پست دکترا در جورجیا تک بود. او یک محقق فعال در یادگیری ماشین و طراحی الگوریتم است و مقالاتی در کنفرانس های EMNLP، ICLR، COLT، FOCS و SODA منتشر کرده است.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- پلاتوبلاک چین. Web3 Metaverse Intelligence. دانش تقویت شده دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/virtual-fashion-styling-with-generative-ai-using-amazon-sagemaker/
- 1
- 10
- 100
- 7
- a
- آرون
- قادر
- درباره ما
- چکیده
- شتاب دادن
- شتاب دهنده
- دسترسی
- لوازم
- انجام
- حساب
- دقیق
- رسیدن
- در میان
- فعال
- وفق دادن
- اضافه
- اضافی
- علاوه بر این
- اضافات
- آدرس
- اتخاذ
- پیشرفته
- نصیحت
- پس از
- AI
- AI / ML
- الگوریتم
- الگوریتم
- معرفی
- اجازه دادن
- اجازه می دهد تا
- قبلا
- آمازون
- آمازون SageMaker
- Amazon SageMaker JumpStart
- مقدار
- و
- پوشاک
- ظاهر شدن
- برنامه های کاربردی
- اعمال می شود
- درخواست
- تقریبا
- معماری
- بایگانی
- محدوده
- استدلال
- مصنوعی
- هوش مصنوعی
- ASA
- کمک
- توجه
- سمعی
- معتبر
- در دسترس
- AWS
- ستون فقرات
- پهنای باند
- بانک
- پایه
- مستقر
- زیرا
- آغاز شد
- مفید
- سود
- بهتر
- میان
- اتصال
- الزام آور
- مسدود کردن
- بلاگ
- شکوفه
- آبی
- می افتد
- بدن
- جسور
- جعبه
- روشن
- روشن تر
- بودجه
- کسب و کار
- برنامه های تجاری
- محاسبه می کند
- نام
- قابلیت های
- توانا
- موارد
- اتفاقی
- مرکزی
- چالش ها
- شانس
- تغییر دادن
- را انتخاب کنید
- کلاس
- طبقه بندی
- نزدیک
- بسته شدن
- تن پوش
- ابر
- رمز
- جمع آوری
- رنگ
- ستون ها
- بیا
- راحت
- مشترک
- شرکت
- مقايسه كردن
- مقایسه
- مقایسه
- متمم
- پیچیده
- اجزاء
- محاسبه
- محاسبه
- محاسبه
- مفهوم
- پیکر بندی
- متصل
- ثابت
- مصرف کنندگان
- ظروف
- شامل
- محتوا
- تولید محتوا
- زمینه
- ادامه دادن
- کنترل
- گروه شاهد
- تبدیل
- متناظر
- هزینه
- میتوانست
- پوشش داده شده
- ایجاد
- ایجاد شده
- ایجاد
- ایجاد
- بحرانی
- بسیار سخت
- در حال حاضر
- سفارشی
- مشتری
- رضایت مشتری
- مشتریان
- سفارشی
- سفارشی سازی
- داده ها
- کاهش
- اختصاصی
- عمیق
- یادگیری عمیق
- خواسته
- جین
- گسترش
- مستقر
- گسترش
- توصیف
- شرح داده شده
- طرح
- طراحی
- طراحان
- طرح
- مطلوب
- دقیق
- جزئیات
- تعیین
- تفاوت
- مختلف
- انتشار
- مستقیما
- بحث کردیم
- نمایش دادن
- صفحه نمایش
- توزیع شده
- توزیع
- مختلف
- دامنه
- دانلود
- ده ها
- دوام
- در طی
- تجارت الکترونیک
- به آسانی
- موثر
- موثر
- عناصر
- از بین بردن
- در اغوش گرفتن
- قادر ساختن
- را قادر می سازد
- را قادر می سازد
- را در بر می گیرد
- نقطه پایانی
- مورد تأیید
- افزایش
- اطمینان حاصل شود
- سرگرمی
- مجهز بودن
- خطا
- برآورد
- عصر
- در نهایت
- تکامل یابد
- مثال
- مثال ها
- موجود
- انتظار
- مخارج
- گران
- تجارب
- تخصص
- صادرات
- عصاره
- پارچه
- پارچه
- چهره
- چهره ها
- روش
- سریعتر
- ویژگی
- زن
- کمی از
- وفاداری
- رشته
- پرونده
- فایل ها
- پر کردن
- نهایی
- سرانجام
- سرمایه گذاری
- پیدا کردن
- پایان
- نام خانوادگی
- مناسب
- از جا در رفتن
- قابل انعطاف
- جریان
- تمرکز
- به دنبال
- پیروی
- به دنبال آن است
- رسمی
- سابق
- به جلو
- یافت
- غالبا
- از جانب
- کامل
- کاملا
- تابع
- توابع
- بیشتر
- بعلاوه
- آینده
- پوشاک
- تولید می کنند
- تولید
- نسل
- مولد
- هوش مصنوعی مولد
- گرجستان
- دریافت کنید
- داده
- GPU
- GPU ها
- گرافیک
- خاکستری
- بیشتر
- تا حد زیادی
- توری
- دسته
- اداره
- دهنه
- داشتن
- سلامتی
- بهداشت و درمان
- ارتفاع
- کمک کرد
- اینجا کلیک نمایید
- زیاد
- در سطح بالا
- کیفیت بالا
- بالاتر
- های لایت
- خیلی
- برگزاری
- دارای
- میزبان
- چگونه
- چگونه
- اما
- HTML
- HTTPS
- قطب
- صورت در آغوش گرفته
- انسان
- اندیشه
- شناسه
- شناسایی
- ایلینوی
- تصویر
- تصاویر
- خیالی
- پیاده سازی
- واردات
- مهم
- بهبود
- بهبود یافته
- in
- در عمق
- شامل
- شامل
- از جمله
- وارد شونده
- گنجاندن
- افزایش
- لوازم
- صنعت
- اطلاعات
- اول
- ابتکاری
- ورودی
- نصب
- نمونه
- در عوض
- اطلاعات
- معرفی
- گرفتار
- IT
- اقلام
- کار
- json
- کلید
- برچسب
- برچسب ها
- زبان
- بزرگ
- راه اندازی
- لایه
- برجسته
- یاد گرفتن
- آموخته
- یادگیری
- طول
- سطح
- Li
- کتابخانه
- محدود
- محدود شده
- فهرست
- بار
- بارگیری
- طولانی
- خاموش
- پایین آوردن
- نافع
- دستگاه
- فراگیری ماشین
- اصلی
- حفظ
- حفظ
- ساخت
- ساخت
- مدیریتی
- تولید کنندگان
- نقشه برداری
- بازار
- بازار یابی (Marketing)
- ماسک
- ماسک
- مسابقه
- مصالح
- ماتپلوتلب
- به معنی
- رسانه ها
- حافظه
- روش
- روش
- گم
- ML
- مدل
- مدل
- بیش
- اکثر
- حرکت
- جنبش
- چندگانه
- نام
- طبیعی
- نزدیک
- لازم
- نیاز
- نیازمند
- نیازهای
- شبکه
- خنثی
- جدید
- nlp
- گره
- طبیعی
- رمان
- عدد
- کارت گرافیک Nvidia
- هدف
- اشیاء
- موانع
- ارائه
- ارائه
- پیشنهادات
- ONE
- بی نظیر
- آنلاین
- فرصت
- بهینه
- گزینه
- سفارش
- اصلی
- OS
- خود
- زوج
- جفت کردن
- اوراق
- پارامترهای
- ویژه
- بخش
- گذشت
- مسیر
- الگو
- الگوهای
- انجام
- کارایی
- انجام می دهد
- مجوز
- شخصی
- شخصی
- شخصی کردن
- شخصی
- عکاسی
- تصاویر
- لوله
- خط لوله
- سکو
- افلاطون
- هوش داده افلاطون
- PlatoData
- لطفا
- فقیر
- محبوب
- به شمار
- موقعیت
- پست
- پتانسیل
- بالقوه
- عملی
- تمرین
- شیوه های
- پیش بینی
- پیش بینی
- پیش گویی
- پیشگو
- تنظیمات
- مرجح
- هدیه
- جلوگیری از
- قبلا
- قبلا
- روند
- تولید کردن
- تولید
- محصولات
- حرفه ای
- مناسب
- ارائه
- فراهم می کند
- عمومی
- سلامت عمومی
- انتشارات
- عمومی
- منتشر شده
- صرفا
- هدف
- اهداف
- پــایتــون
- مارماهی
- کیفیت
- به سرعت
- محدوده
- واقعی
- زمان واقعی
- واقع بینانه
- گرفتن
- اخیر
- توصیه
- قرمز
- كاهش دادن
- کاهش
- منابع
- اشاره دارد
- ربط
- گزارش
- نشان دهنده
- درخواست
- درخواست
- نیاز
- نیاز
- پژوهشگر
- وضوح
- پاسخ
- نتیجه
- نتیجه
- نتایج
- خرده فروشی
- برگشت
- بازده
- RGB
- نقش
- تقریبا
- دویدن
- در حال اجرا
- حکیم ساز
- حراجی
- رضایت
- ذخیره
- پس انداز
- مقیاس
- دانشمند
- sdk
- دوم
- ثانیه
- بخش
- بخش ها
- تقسیم بندی
- بخش ها
- انتخاب
- ارشد
- حساس
- خدمت
- سرویس
- جلسه
- تنظیم
- چند
- تیز
- صدف
- کوتاه
- باید
- نمایشگاه
- طرف
- سیلیکون
- سیلیکون ولی (Silicon Valley)
- مشابه
- ساده
- به سادگی
- به طور همزمان
- تنها
- اندازه
- کوچک
- So
- آگاهی
- رسانه های اجتماعی
- راه حل
- برخی از
- چیزی
- فضا
- ویژه
- متخصص
- تخصصی
- خاص
- مشخص شده
- پایدار
- استاندارد
- دولت
- گام
- مراحل
- هنوز
- ذخیره سازی
- ذخیره شده
- استراتژی ها
- استحکام
- راه راه
- مبارزات
- سبک
- موضوع
- موفقیت
- چنین
- تابستان
- سوپر
- نظارت
- پشتیبانی از
- طراحی شده
- گرفتن
- طول می کشد
- هدف
- کار
- وظایف
- تیم
- فن آوری
- فنی
- تکنیک
- پیشرفته
- قالب
- قوانین و مقررات
- تسلا
- La
- محوطه
- جهان
- شان
- از این رو
- سه
- از طریق
- گره خورده است
- به
- ابزار
- مشعل
- کاملا
- سنتی
- ترافیک
- قطار
- آموزش دیده
- آموزش
- انتقال
- دگرگون کردن
- ترانسفورماتور
- سفر
- روند
- محاکمه
- تریلیون
- زیر
- منحصر به فرد
- دانشگاه
- آپلود شده
- استفاده
- استفاده کنید
- کاربر
- کاربران
- معمولا
- استفاده کنید
- استفاده
- استفاده می کند
- با استفاده از
- مرخصی
- دره
- ارزشمند
- ارزش
- تنوع
- مختلف
- وسیع
- بررسی
- نسخه
- تصویری
- مجازی
- W
- راه
- که
- در حین
- سفید
- WHO
- وسیع
- دامنه گسترده
- گسترده تر
- عرض
- اراده
- در داخل
- بدون
- متن
- مهاجرت کاری
- مشغول به کار
- جهان
- بانک جهانی
- خواهد بود
- بسته بندی کردن
- wu
- X
- شما
- شما
- زفیرنت
- زیپ