תעשיית האופנה היא א עסק רווחי ביותר, עם שווי מוערך של 2.1 טריליון דולר עד 2025, כפי שדווח על ידי הבנק העולמי. תחום זה מקיף מגוון רחב של סגמנטים, כגון יצירה, ייצור, הפצה ומכירה של ביגוד, נעליים ואביזרים. התעשייה נמצאת במצב מתמיד של שינוי, עם סגנונות וטרנדים חדשים שמופיעים לעתים קרובות. לכן, חברות אופנה חייבות להיות גמישות ויכולות להסתגל על מנת לשמור על הרלוונטיות שלהן ולהגיע להצלחה בשוק.
בינה מלאכותית גנרטיבית (AI) מתייחסת לאלגוריתמים של בינה מלאכותית שנועדו ליצור תוכן חדש, כגון תמונות, טקסט, אודיו או וידאו, בהתבסס על קבוצה של דפוסים ונתונים שנלמדו. ניתן להשתמש בו כדי ליצור עיצובי לבוש חדשים וחדשניים תוך מתן התאמה אישית משופרת וחסכוניות. כלי עיצוב מונעי בינה מלאכותית יכולים ליצור עיצובי לבוש ייחודיים המבוססים על פרמטרי קלט או סגנונות שצוינו על ידי לקוחות פוטנציאליים באמצעות הנחיות טקסט. יתר על כן, ניתן להשתמש בבינה מלאכותית כדי להתאים אישית עיצובים להעדפות הלקוח. לדוגמה, לקוח יכול לבחור מתוך מגוון רחב של צבעים, דפוסים וסגנונות, ודגמי בינה מלאכותית יפיקו עיצוב יחיד במינו המבוסס על הבחירות הללו. אימוץ הבינה המלאכותית בתעשיית האופנה מעכבת כיום על ידי אתגרים טכניים, היתכנות ועלויות שונים. עם זאת, כעת ניתן לצמצם את המכשולים הללו על ידי שימוש בשיטות בינה מלאכותית מתקדמות, כגון פילוח סמנטי מבוסס שפה טבעית ודיפוזיה לעיצוב וירטואלי.
פוסט זה בבלוג מפרט את ההטמעה של סטיילינג מקוון אופנה בעזרת בינה מלאכותית באמצעות הנחיות טקסט. מהנדסי למידת מכונה (ML) יכולים לכוונן ולפרוס מודלים של פילוח טקסט לסמנטי וציור המבוססים על CLIPSeq ו-Stable Diffusion מאומנים מראש עם אמזון SageMaker. זה מאפשר למעצבי אופנה ולצרכנים ליצור תמונות דוגמנות וירטואליות המבוססות על הנחיות טקסט ולבחור את הסגנונות המועדפים עליהם.
פתרונות AI גנרטיביים
השמיים CLIPSeg המודל הציגה שיטת פילוח סמנטי חדשה של תמונה המאפשרת לך לזהות בקלות פריטי אופנה בתמונות באמצעות פקודות טקסט פשוטות. הוא משתמש בהנחיית טקסט או מקודד תמונה כדי לקודד מידע טקסטואלי וויזואלי לתוך חלל הטבעה רב-מודאלי, המאפשר פילוח מדויק ביותר של אובייקטי יעד בהתבסס על ההנחיה. המודל הוכשר על כמות עצומה של נתונים עם טכניקות כגון העברת זריקות אפס, פיקוח על שפה טבעית ולמידה ניגודית בפיקוח עצמי רב-מודאלי. זה אומר שאתה יכול להשתמש במודל מאומן מראש שזמין לציבור על ידי טימו לודקה et al ללא צורך בהתאמה אישית.
CLIPSeg הוא מודל המשתמש במקודד טקסט ותמונה כדי לקודד מידע טקסטואלי וויזואלי לתוך מרחב הטמעה רב-מודאלי לביצוע פילוח סמנטי המבוסס על הנחית טקסט. הארכיטקטורה של CLIPSeg מורכבת משני מרכיבים עיקריים: מקודד טקסט ומקודד תמונה. מקודד הטקסט קולט את בקשת הטקסט וממיר אותה להטבעת טקסט, בעוד שמקודד התמונה קולט את התמונה וממיר אותה להטבעת תמונה. לאחר מכן, שתי ההטבעות משורשרות ומועברות דרך שכבה מחוברת במלואה כדי לייצר את מסכת הפילוח הסופית.
במונחים של זרימת נתונים, המודל מאומן על מערך נתונים של תמונות והנחיות טקסט מתאימות, כאשר הנחיות הטקסט מתארות את אובייקט היעד שיש לפלח. במהלך תהליך ההדרכה, מקודד הטקסט ומקודד התמונה עוברים אופטימיזציה כדי ללמוד את המיפוי בין הנחיות הטקסט והתמונה כדי לייצר את מסכת הפילוח הסופית. לאחר הכשרה של המודל, הוא יכול לקלוט הנחית טקסט ותמונה חדשים ולהפיק מסיכת פילוח עבור האובייקט המתואר בהנחיה.
Stable Diffusion היא טכניקה המאפשרת למעצבי אופנה ליצור תמונות מציאותיות ביותר בכמויות גדולות אך ורק על סמך תיאורי טקסט ללא צורך בהתאמה אישית ארוכה ויקרה. זה מועיל עבור מעצבים שרוצים ליצור סגנונות אופנה במהירות, ויצרנים שרוצים לייצר מוצרים מותאמים אישית בעלות נמוכה יותר.
התרשים הבא ממחיש את ארכיטקטורת הדיפוזיה היציבה ואת זרימת הנתונים.
בהשוואה לשיטות מסורתיות מבוססות GAN, Stable Diffusion הוא AI מחולל המסוגל לייצר תמונות יציבות ופוטו-ריאליסטיות יותר התואמות את ההפצה של התמונה המקורית. ניתן להתנות את המודל במגוון רחב של מטרות, כגון טקסט ליצירת טקסט לתמונה, תיבות תוחמות ליצירת פריסה לתמונה, תמונות מסכות לצביעה ותמונות ברזולוציה נמוכה יותר לרזולוציית על. למודלים של דיפוזיה יש מגוון רחב של יישומים עסקיים, והשימושים המעשיים שלהם ממשיכים להתפתח. מודלים אלו יועילו רבות לתעשיות שונות כמו אופנה, קמעונאות ומסחר אלקטרוני, בידור, מדיה חברתית, שיווק ועוד.
צור מסכות מהודעות טקסט באמצעות CLIPSeg
ווג סטיילינג אונליין הוא שירות המאפשר ללקוחות לקבל ייעוץ אופנה והמלצות מ-AI דרך פלטפורמה מקוונת. היא עושה זאת על ידי בחירת ביגוד ואביזרים המשלימים את המראה של הלקוח, מתאימים לתקציב שלו ומתאימים להעדפותיו האישיות. בעזרת שימוש בבינה מלאכותית, ניתן לבצע משימות בקלות רבה יותר, מה שמוביל להגברת שביעות רצון הלקוחות ולהפחתת ההוצאות.
ניתן לפרוס את הפתרון על an Amazon Elastic Compute Cloud (EC2) מופע p3.2xlarge, בעל GPU יחיד אחד 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 להחלפת תוכן. In-painting הוא תהליך של שימוש במודל מחולל מיומן כדי למלא חלקים חסרים בתמונה. על ידי שימוש בתמונת המסכה לזיהוי אובייקט המטרה, נוכל ליישם את טכניקת הציור כדי להחליף את אובייקט המטרה במשהו אחר, כגון פריט לבוש או אביזר אחר. ניתן להשתמש בדגם Stable Diffusion V2 למטרה זו, מכיוון שהוא מסוגל להפיק תמונות ברזולוציה גבוהה ופוטו-ריאליסטית התואמות להפצה של התמונה המקורית.
כוונון עדין מדגמים שהוכשרו מראש באמצעות DreamBooth
כוונון עדין הוא תהליך בלמידה עמוקה שבו מודל שהוכשר מראש עובר הכשרה נוספת על משימה חדשה תוך שימוש בכמות קטנה של נתונים מסומנים. במקום לאמן מאפס, הרעיון הוא לקחת רשת שכבר הוכשרה על מערך נתונים גדול למשימה דומה ולהמשיך לאמן אותה על מערך נתונים חדש כדי להפוך אותה למיוחדת יותר עבור המשימה הספציפית הזו.
מעצבי אופנה יכולים גם להשתמש במודל של דיפוזיה יציבה בציור מונחה נושא, מכוונן עדין כדי ליצור סוג מסוים של סגנון, כגון חצאיות ארוכות לא פשוטות לנשים. לשם כך, הצעד הראשון הוא לספק קבוצה של תמונות לדוגמה בתחום היעד, בערך 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.
שימוש בסט קטן של תמונות לכוונון עדין של דיפוזיה יציבה עלול לגרום להתאמת יתר של הדגם. DreamBooth[5] מטפל בכך באמצעות אובדן שימור מוקדם ספציפי לכיתה. הוא לומד לקשור מזהה ייחודי לנושא הספציפי הזה בשני שלבים. ראשית, הוא מכוון את הדגם ברזולוציה הנמוכה עם תמונות הקלט בשילוב עם הנחית טקסט המכילה מזהה ייחודי ואת שם הכיתה שאליה משתייך הנושא, כגון "חצאית". בפועל, משמעות הדבר היא שהדגם יתאים לתמונות והתמונות שנדגמו מהקוד החזותי של המחלקה הלא מכווננת בו-זמנית. תמונות אלה שנשמרו קודם לכן נדגמות ומתויגות באמצעות ההנחיה "שם עצם מחלקה". שנית, הוא יכוון את רכיבי הרזולוציה הסופר-גבוהה על-ידי צימוד תמונות ברזולוציה נמוכה ורזולוציה גבוהה מתוך סט תמונות הקלט, מה שמאפשר ליציאות של הדגם המכוונן לשמור על נאמנות לפרטים הקטנים.
כוונון עדין של מקודד טקסט מיומן מראש באמצעות UNet לתמונות ברזולוציה של 512×512 דורש כ-22GB של VRAM ומעלה עבור רזולוציית 768×768. באופן אידיאלי יש לשנות את גודל הדגימות כדי להתאים לרזולוציית תמונת הפלט הרצויה כדי למנוע ירידה בביצועים. מקודד הטקסט מייצר פרטים מדויקים יותר כגון פרצופים של דגם. אפשרות אחת היא להפעיל על מופע יחיד של AWS EC2 g5.2xlarge, זמין כעת ב שמונה אזורים או השתמש ב- Hugging Face Accelerate כדי להפעיל את הקוד המכוונן על פני תצורה מבוזרת. לחיסכון נוסף בזיכרון, אתה יכול לבחור גרסה פרוסה של תשומת לב שמבצעת את החישוב בשלבים במקום הכל בבת אחת על ידי שינוי סקריפט האימון של DreamBooth train_dreambooth_inpaint.py כדי להוסיף את הפונקציה pipeline enable_attention_slicing() .
Accelerate היא ספרייה המאפשרת להריץ קוד כוונון עדין אחד בכל תצורה מבוזרת. חיבוק פייס ואמזון הוצגו מיכלי למידה עמוקה של חיבוק פנים (DLC) כדי להתאים משימות כוונון עדין על פני מספר GPUs וצמתים. אתה יכול להגדיר את תצורת ההשקה עבור 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 להסקת מסקנות
עם Amazon SageMaker, אתה יכול לפרוס את דגמי ה-Stable Diffusion המכוונים עדין להסקת מסקנות בזמן אמת. כדי להעלות את הדגם אליו שירות אחסון פשוט של אמזון (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}
כדי להעלות את הדגם לדלי של Amazon 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")
לאחר העלאת ארכיון המודל, נוכל לפרוס אותו באמזון SageMaker באמצעות HuggingfaceModel להסקת מסקנות בזמן אמת. אתה יכול לארח את נקודת הקצה באמצעות מופע g4dn.xlarge, המצויד ב-NVIDIA Tesla T4 GPU יחיד עם 16GB של VRAM. ניתן להפעיל קנה מידה אוטומטי כדי להתמודד עם דרישות תנועה משתנות. למידע על שילוב קנה מידה אוטומטי בנקודת הקצה שלך, ראה הפקה יוצאת: שינוי קנה מידה אוטומטי של רובוטריקים של חיבוק פנים עם 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" )
השיטה 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
בואו נתקדם עם משימת הציור. ההערכה היא שייקח בערך 15 שניות להפיק שלוש תמונות, בהתחשב בתמונת הקלט ובמסכה שנוצרה באמצעות CLIPSeg עם הנחיית הטקסט שנדונה קודם לכן. ראה את הקוד הבא:
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 מציעה תבניות דיפוזיה יציבה לדגמים שונים, כולל טקסט לתמונה ושינוי קנה מידה. למידע נוסף, אנא עיין ב SageMaker JumpStart מספקת כעת דגמי דיפוזיה יציבה ו-Bloom. תבניות Jumpstart נוספות יהיו זמינות בעתיד הקרוב.
מגבלות
למרות ש-CLIPSeg בדרך כלל מתפקד טוב בזיהוי אובייקטים נפוצים, הוא נאבק במשימות מופשטות או שיטתיות יותר כמו ספירת מספר האובייקטים בתמונה ובמשימות מורכבות יותר כמו חיזוי כמה קרוב החפץ הקרוב ביותר לתיק כזה בתמונה. Zero-shot CLIPSeq גם מתקשה בהשוואה לדגמים ספציפיים למשימה על סיווג עדין מאוד, כגון הבדל בין שני עיצובים מעורפלים, גרסאות של שמלה או סיווג סגנון. ל- CLIPSeq גם עדיין יש הכללה גרועה לתמונות שאינן מכוסות במערך הנתונים שלפני ההדרכה שלה. לבסוף, נצפה שמסווגי האפס של CLIP יכולים להיות רגישים לניסוח או לניסוח ולפעמים דורשים ניסוי וטעייה "הנדסה מהירה" כדי לבצע ביצועים טובים. מעבר למודל פילוח סמנטי אחר עבור עמוד השדרה של CLIPSeq, כגון BEiT, שמתהדר ב-62.8% mIOU במערך הנתונים של ADE20K, עשוי לשפר את התוצאות.
עיצובי אופנה שנוצרו על ידי שימוש ב-Stable Diffusion נמצאו מוגבלים לחלקים של בגדים הממוקמים באופן צפוי לפחות בהקשר הרחב יותר של דגמי האופנה, ואשר תואמים להטמעות ברמה גבוהה שניתן לצפות למצוא ב מערך נתונים בקנה מידה גבוה המשמש במהלך אימון המודל שהוכשר מראש. הגבול האמיתי של AI גנרטיבי הוא שהדגם בסופו של דבר יפיק פלטים דמיוניים לחלוטין ופחות אותנטיים. לכן, עיצובי האופנה שנוצרו על ידי AI עשויים שלא להיות מגוונים או ייחודיים כמו אלה שנוצרו על ידי מעצבים אנושיים.
סיכום
בינה מלאכותית גנרטיבית מספקת למגזר האופנה הזדמנות לשנות את הפרקטיקות שלהם באמצעות חוויות משתמש טובות יותר ואסטרטגיות עסקיות חסכוניות. בפוסט זה, אנו מציגים כיצד לרתום AI גנרטיבי כדי לאפשר למעצבי אופנה ולצרכנים ליצור סגנונות אופנה מותאמים אישית באמצעות דוגמנות וירטואלית. בעזרת התבניות הקיימות של Amazon SageMaker Jumpstart ואלו שיבואו, משתמשים יכולים לאמץ במהירות את הטכניקות המתקדמות הללו מבלי להזדקק למומחיות טכנית מעמיקה, כל זאת תוך שמירה על צדדיות והורדת הוצאות.
טכנולוגיה חדשנית זו מציגה הזדמנויות חדשות לחברות ואנשי מקצוע העוסקים ביצירת תוכן, בתעשיות שונות. AI גנרטיבי מספק יכולות רבות לשיפור ויצירת תוכן. נסה את התוספות האחרונות לתבניות Jumpstart שלך סטודיו SageMaker, כגון כוונון עדין של טקסט לתמונה ויכולות יוקרה.
ברצוננו להודות ללי ג'אנג, קארל אלברטסן, קריסטין פירס, ניקיל ולפנור, אהרון סנגסטקן, ג'יימס וו ונילאם קושיה על תמיכתם ותשומות יקרות ערך שעזרו לשפר עבודה זו.
על הכותבים
אלפרד שן הוא מומחה בכיר בינה מלאכותית/ML ב-AWS. הוא עבד בעמק הסיליקון, כשהוא מחזיק בתפקידים טכניים וניהוליים במגזרים מגוונים כולל שירותי בריאות, פיננסים והיי-טק. הוא חוקר AI/ML יישומי מסור, המתרכז בקורות חיים, NLP ורב-מודאליות. עבודתו הוצגה בפרסומים כגון EMNLP, ICLR ובריאות הציבור.
ד"ר Vivek Madan הוא מדען יישומי בצוות אמזון SageMaker JumpStart. הוא קיבל את הדוקטורט שלו מאוניברסיטת אילינוי באורבנה-שמפיין והיה חוקר פוסט דוקטורט בג'ורג'יה טק. הוא חוקר פעיל בלמידת מכונה ועיצוב אלגוריתמים ופרסם מאמרים בכנסים של EMNLP, ICLR, COLT, FOCS ו-SODA
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. 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
- אמזון SageMaker JumpStart
- כמות
- ו
- ביגוד
- לְהוֹפִיעַ
- יישומים
- יישומית
- החל
- בערך
- ארכיטקטורה
- ארכיון
- AREA
- טיעונים
- מלאכותי
- בינה מלאכותית
- אס"א
- סיוע
- תשומת לב
- אודיו
- אוֹתֶנְטִי
- זמין
- AWS
- עמוד שדרה
- רוחב פס
- בנק
- בסיס
- מבוסס
- כי
- החל
- מועיל
- תועלת
- מוטב
- בֵּין
- לאגד
- כריכה
- לחסום
- בלוג
- לִפְרוֹחַ
- כָּחוֹל
- מתגאה
- גוּף
- סיכה
- תיבות
- בָּהִיר
- בהיר יותר
- תקציב
- עסקים
- יישומים עסקיים
- מחשב
- נקרא
- יכולות
- מסוגל
- מקרים
- אגבי
- מֶרכָּזִי
- האתגרים
- סיכויים
- שינוי
- בחרו
- בכיתה
- מיון
- סְגוֹר
- סגירה
- ביגוד
- ענן
- קוד
- לגבות
- צֶבַע
- עמודות
- איך
- נוחות
- Common
- חברות
- לְהַשְׁווֹת
- לעומת
- השוואה
- השלמה
- מורכב
- רכיבים
- חישוב
- לחשב
- מחשוב
- מושג
- תְצוּרָה
- מחובר
- קבוע
- צרכנים
- מכולות
- מכיל
- תוכן
- יצירת תוכן
- הקשר
- להמשיך
- לִשְׁלוֹט
- בקרות
- להמיר
- תוֹאֵם
- עלות
- יכול
- מכוסה
- לִיצוֹר
- נוצר
- יוצרים
- יצירה
- קריטי
- מכריע
- כיום
- מנהג
- לקוח
- שביעות רצון של לקוח
- לקוחות
- להתאמה אישית
- התאמה אישית
- נתונים
- להקטין
- מוקדש
- עמוק
- למידה עמוקה
- דרישות
- ג 'ינס
- לפרוס
- פרס
- פריסה
- לתאר
- מְתוּאָר
- עיצוב
- מעוצב
- מעצבים
- עיצובים
- רצוי
- מְפוֹרָט
- פרטים
- קביעה
- הבדל
- אחר
- שידור
- ישירות
- נָדוֹן
- לְהַצִיג
- מציג
- מופץ
- הפצה
- שונה
- תחום
- להורדה
- עשרות
- עמידות
- בְּמַהֲלָך
- מסחר אלקטרוני
- בקלות
- אפקטיבי
- יעיל
- אלמנטים
- חיסול
- לחבק
- לאפשר
- מאפשר
- מה שמאפשר
- מקיף
- נקודת קצה
- מהנדסים
- שיפור
- לְהַבטִיחַ
- בידור
- מְצוּיָד
- שגיאה
- מוערך
- ערב
- בסופו של דבר
- להתפתח
- דוגמה
- דוגמאות
- קיימים
- לצפות
- הוצאות
- יקר
- חוויות
- מומחיות
- יצוא
- תמצית
- בד
- בדים
- פָּנִים
- פנים
- אופנה
- מהר יותר
- מאפיין
- נְקֵבָה
- מעטים
- דיוק
- שדה
- שלח
- קבצים
- למלא
- סופי
- בסופו של דבר
- לממן
- סוף
- ראשון
- מתאים
- הַבהָקָה
- גמיש
- תזרים
- להתמקד
- בעקבות
- הבא
- כדלקמן
- רִשְׁמִי
- לשעבר
- קדימה
- מצא
- בתדירות גבוהה
- החל מ-
- מלא
- לגמרי
- פונקציה
- פונקציות
- נוסף
- יתר על כן
- עתיד
- בגדים
- ליצור
- נוצר
- דור
- גנרטטיבית
- AI Generative
- לקבל
- נתן
- GPU
- GPUs
- גרפי
- אפור
- יותר
- מאוד
- רֶשֶׁת
- לטפל
- טיפול
- רתמת
- יש
- בְּרִיאוּת
- בריאות
- גובה
- עזר
- כאן
- גָבוֹהַ
- ברמה גבוהה
- רזולוציה גבוהה
- גבוה יותר
- פסים
- מאוד
- מחזיק
- מחזיק
- המארח
- איך
- איך
- אולם
- HTML
- HTTPS
- טבור
- חיבוק פנים
- בן אנוש
- רעיון
- מזהה
- לזהות
- אילינוי
- תמונה
- תמונות
- דִמיוֹנִי
- הפעלה
- לייבא
- חשוב
- לשפר
- משופר
- in
- מעמיק
- לכלול
- כולל
- כולל
- נכנס
- שילוב
- גדל
- תעשיות
- תעשייה
- מידע
- בתחילה
- חדשני
- קלט
- להתקין
- למשל
- במקום
- מוֹדִיעִין
- הציג
- מעורב
- IT
- פריטים
- עבודה
- ג'סון
- מפתח
- תווית
- תוויות
- שפה
- גָדוֹל
- לשגר
- שכבה
- מוביל
- לִלמוֹד
- למד
- למידה
- אורך
- רמות
- Li
- סִפְרִיָה
- להגביל
- מוגבל
- רשימה
- לִטעוֹן
- טוען
- ארוך
- את
- מוריד
- משתלם
- מכונה
- למידת מכונה
- ראשי
- לתחזק
- שמירה
- לעשות
- עשייה
- ניהולית
- התעשיינים
- מיפוי
- שוק
- שיווק
- מסכה
- מבחר המסיכות
- להתאים
- חומרים
- matplotlib
- אומר
- מדיה
- זכרון
- שיטה
- שיטות
- חסר
- ML
- מודל
- מודלים
- יותר
- רוב
- המהלך
- תנועה
- מספר
- שם
- טבעי
- ליד
- הכרחי
- צורך
- צורך
- צרכי
- רשת
- נטרל
- חדש
- NLP
- צמתים
- נוֹרמָלִי
- רומן
- מספר
- Nvidia
- אובייקט
- אובייקטים
- מכשולים
- הַצָעָה
- הצעה
- המיוחדות שלנו
- ONE
- יחיד בדורו
- באינטרנט
- הזדמנות
- אופטימיזציה
- אפשרות
- להזמין
- מְקוֹרִי
- OS
- שֶׁלוֹ
- מְזוּוָג
- זיווג
- ניירות
- פרמטרים
- מסוים
- חלקים
- עבר
- נתיב
- תבנית
- דפוסי
- לְבַצֵעַ
- ביצועים
- מבצע
- הרשאות
- אישי
- התאמה אישית
- אישית
- אישית
- פוטוריאליסטי
- תמונות
- מקטרת
- צינור
- פלטפורמה
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- אנא
- עני
- פופולרי
- תנוחות
- עמדות
- הודעה
- פוטנציאל
- פוטנציאל
- מעשי
- תרגול
- פרקטיקות
- לחזות
- ניבוי
- נבואה
- חיזוי
- העדפות
- מועדף
- מתנות
- למנוע
- קוֹדֶם
- קודם
- תהליך
- לייצר
- הפקה
- מוצרים
- אנשי מקצוע
- תָקִין
- לספק
- מספק
- ציבורי
- בריאות הציבור
- פרסומים
- בפומבי
- לאור
- אַך וְרַק
- מטרה
- למטרות
- פיתון
- פיטורך
- איכות
- מהירות
- רכס
- ממשי
- זמן אמת
- מציאותי
- לקבל
- לאחרונה
- המלצות
- Red
- להפחית
- מופחת
- אזכור
- מתייחס
- הרלוונטיות
- דווח
- מייצג
- לבקש
- בקשות
- לדרוש
- דורש
- חוקר
- החלטה
- תגובה
- תוצאה
- וכתוצאה מכך
- תוצאות
- קמעוני
- לַחֲזוֹר
- החזרות
- RGB
- תפקיד
- בערך
- הפעלה
- ריצה
- בעל חכמים
- מכירות
- שביעות רצון
- שמור
- חיסכון
- סולם
- מַדְעָן
- Sdk
- שְׁנִיָה
- שניות
- מגזר
- מגזרים
- פילוח
- מגזרים
- בחירה
- לחצני מצוקה לפנסיונרים
- רגיש
- משמש
- שרות
- מושב
- סט
- כמה
- חד
- פָּגָז
- קצר
- צריך
- ראווה
- צד
- סיליקון
- עמק הסיליקון
- דומה
- פָּשׁוּט
- בפשטות
- בו זמנית
- יחיד
- מידה
- קטן
- So
- חֶברָתִי
- מדיה חברתית
- פִּתָרוֹן
- כמה
- משהו
- מֶרחָב
- מיוחד
- מומחה
- מיוחד
- ספציפי
- מפורט
- יציב
- תֶקֶן
- מדינה
- שלב
- צעדים
- עוד
- אחסון
- מאוחסן
- אסטרטגיות
- כוח
- פסים
- מאבקים
- סגנון
- נושא
- הצלחה
- כזה
- קיץ
- דוגמנית על
- פיקוח עליון
- תומך
- מותאם
- לקחת
- לוקח
- יעד
- המשימות
- משימות
- נבחרת
- טק
- טכני
- טכניקות
- טכנולוגיה
- תבניות
- מונחים
- טסלה
- השמיים
- האזור
- העולם
- שֶׁלָהֶם
- לכן
- שְׁלוֹשָׁה
- דרך
- קָשׁוּר
- ל
- כלים
- לפיד
- לְגַמרֵי
- מסורתי
- תְנוּעָה
- רכבת
- מְאוּמָן
- הדרכה
- להעביר
- לשנות
- רוֹבּוֹטרִיקִים
- נסיעות
- מגמות
- מִשׁפָּט
- טרִילִיוֹן
- תחת
- ייחודי
- אוניברסיטה
- נטען
- נוֹהָג
- להשתמש
- משתמש
- משתמשים
- בְּדֶרֶך כְּלַל
- לנצל
- מנוצל
- מנצל
- ניצול
- חופשה
- עֶמֶק
- בעל ערך
- ערך
- מגוון
- שונים
- Vast
- לאמת
- גרסה
- וִידֵאוֹ
- וירטואלי
- W
- דרכים
- אשר
- בזמן
- לבן
- מי
- רָחָב
- טווח רחב
- רחב יותר
- רוחב
- יצטרך
- בתוך
- לְלֹא
- הניסוח
- תיק עבודות
- עבד
- עוֹלָם
- בנק עולמי
- היה
- לעטוף
- wu
- X
- אתה
- זפירנט
- רוכסן