Ngành công nghiệp thời trang là một kinh doanh siêu lợi nhuận, với giá trị ước tính là 2.1 nghìn tỷ USD vào năm 2025, theo báo cáo của Ngân hàng Thế giới. Lĩnh vực này bao gồm nhiều phân khúc khác nhau, chẳng hạn như sáng tạo, sản xuất, phân phối và bán quần áo, giày dép và phụ kiện. Ngành công nghiệp luôn trong tình trạng thay đổi liên tục, với các phong cách và xu hướng mới xuất hiện thường xuyên. Do đó, các công ty thời trang phải linh hoạt và có khả năng thích ứng để duy trì sự phù hợp và đạt được thành công trên thị trường.
Trí tuệ nhân tạo sáng tạo (AI) đề cập đến các thuật toán AI được thiết kế để tạo ra nội dung mới, chẳng hạn như hình ảnh, văn bản, âm thanh hoặc video, dựa trên một tập hợp các mẫu và dữ liệu đã học. Nó có thể được sử dụng để tạo ra các thiết kế trang phục mới và sáng tạo đồng thời mang lại khả năng cá nhân hóa được cải thiện và tiết kiệm chi phí. Các công cụ thiết kế dựa trên AI có thể tạo ra các thiết kế trang phục độc đáo dựa trên các thông số đầu vào hoặc kiểu do khách hàng tiềm năng chỉ định thông qua lời nhắc bằng văn bản. Hơn nữa, AI có thể được sử dụng để cá nhân hóa các thiết kế theo sở thích của khách hàng. Ví dụ: một khách hàng có thể chọn từ nhiều màu sắc, hoa văn và kiểu dáng khác nhau và các mô hình AI sẽ tạo ra một thiết kế có một không hai dựa trên những lựa chọn đó. Việc áp dụng AI trong ngành thời trang hiện đang bị cản trở bởi nhiều thách thức về kỹ thuật, tính khả thi và chi phí. Tuy nhiên, những trở ngại này giờ đây có thể được giảm thiểu bằng cách sử dụng các phương pháp AI tổng quát tiên tiến như phân đoạn và khuếch tán ngữ nghĩa hình ảnh dựa trên ngôn ngữ tự nhiên để tạo kiểu ảo.
Bài đăng trên blog này trình bày chi tiết việc triển khai phong cách trực tuyến thời trang được hỗ trợ bởi AI bằng cách sử dụng lời nhắc văn bản. Các kỹ sư máy học (ML) có thể tinh chỉnh và triển khai các mô hình vẽ và phân đoạn văn bản thành phân đoạn ngữ nghĩa dựa trên CLIPSeq được đào tạo trước và Khuếch tán ổn định với Amazon SageMaker. Điều này cho phép các nhà thiết kế thời trang và người tiêu dùng tạo hình ảnh mô hình ảo dựa trên lời nhắc văn bản và chọn kiểu ưa thích của họ.
Giải pháp AI sáng tạo
Sản phẩm CLIPSeg model đã giới thiệu một phương pháp phân đoạn ngữ nghĩa hình ảnh mới cho phép bạn dễ dàng xác định các mặt hàng thời trang trong ảnh bằng các lệnh văn bản đơn giản. Nó sử dụng dấu nhắc văn bản hoặc bộ mã hóa hình ảnh để mã hóa thông tin văn bản và hình ảnh vào một không gian nhúng đa phương thức, cho phép phân đoạn các đối tượng đích có độ chính xác cao dựa trên dấu nhắc. Mô hình này đã được đào tạo trên một lượng lớn dữ liệu với các kỹ thuật như chuyển giao không ảnh, giám sát ngôn ngữ tự nhiên và học tương phản tự giám sát đa phương thức. Điều này có nghĩa là bạn có thể sử dụng một mô hình được đào tạo trước được cung cấp công khai bởi Timo Lüddeke et al mà không cần tùy chỉnh.
CLIPSeg là mô hình sử dụng bộ mã hóa văn bản và hình ảnh để mã hóa thông tin văn bản và hình ảnh vào một không gian nhúng đa phương thức nhằm thực hiện phân đoạn ngữ nghĩa dựa trên dấu nhắc văn bản. Kiến trúc của CLIPSeg bao gồm hai thành phần chính: bộ mã hóa văn bản và bộ mã hóa hình ảnh. Bộ mã hóa văn bản lấy dấu nhắc văn bản và chuyển đổi nó thành nhúng văn bản, trong khi bộ mã hóa hình ảnh lấy hình ảnh và chuyển đổi nó thành nhúng hình ảnh. Cả hai phần nhúng sau đó được nối và chuyển qua một lớp được kết nối đầy đủ để tạo ra mặt nạ phân đoạn cuối cùng.
Về luồng dữ liệu, mô hình được đào tạo trên tập dữ liệu hình ảnh và lời nhắc văn bản tương ứng, trong đó lời nhắc văn bản mô tả đối tượng đích sẽ được phân đoạn. Trong quá trình đào tạo, bộ mã hóa văn bản và bộ mã hóa hình ảnh được tối ưu hóa để tìm hiểu ánh xạ giữa lời nhắc văn bản và hình ảnh nhằm tạo ra mặt nạ phân đoạn cuối cùng. Sau khi mô hình được đào tạo, nó có thể nhận một dấu nhắc văn bản và hình ảnh mới, đồng thời tạo mặt nạ phân đoạn cho đối tượng được mô tả trong dấu nhắc.
Khuếch tán ổn định là một kỹ thuật cho phép các nhà thiết kế thời trang tạo ra hình ảnh có độ chân thực cao với số lượng lớn hoàn toàn dựa trên mô tả văn bản mà không cần tùy chỉnh dài dòng và tốn kém. Điều này có lợi cho các nhà thiết kế muốn nhanh chóng tạo ra các phong cách thịnh hành và các nhà sản xuất muốn sản xuất các sản phẩm được cá nhân hóa với chi phí thấp hơn.
Sơ đồ sau đây minh họa kiến trúc Khuếch tán ổn định và luồng dữ liệu.
So với các phương pháp dựa trên GAN truyền thống, Stable Diffusion là một AI tổng quát có khả năng tạo ra hình ảnh ổn định hơn và chân thực hơn, phù hợp với sự phân bố của hình ảnh gốc. Mô hình có thể được điều chỉnh theo nhiều mục đích khác nhau, chẳng hạn như văn bản để tạo văn bản thành hình ảnh, hộp giới hạn để tạo bố cục thành hình ảnh, hình ảnh được che để vẽ trong tranh và hình ảnh có độ phân giải thấp hơn cho độ phân giải siêu cao. Các mô hình khuếch tán có nhiều ứng dụng kinh doanh và việc sử dụng thực tế của chúng tiếp tục phát triển. Những mô hình này sẽ mang lại lợi ích to lớn cho các ngành công nghiệp khác nhau như thời trang, bán lẻ và thương mại điện tử, giải trí, truyền thông xã hội, tiếp thị, v.v.
Tạo mặt nạ từ lời nhắc văn bản bằng CLIPSeg
Phong cách trực tuyến của Vogue là một dịch vụ cho phép khách hàng nhận được lời khuyên và đề xuất thời trang từ AI thông qua một nền tảng trực tuyến. Nó thực hiện điều này bằng cách chọn quần áo và phụ kiện bổ sung cho vẻ ngoài của khách hàng, phù hợp với ngân sách của họ và phù hợp với sở thích cá nhân của họ. Với việc sử dụng trí tuệ nhân tạo AI, các nhiệm vụ có thể được hoàn thành dễ dàng hơn, dẫn đến tăng sự hài lòng của khách hàng và giảm chi phí.
Giải pháp có thể được triển khai trên một Đám mây điện toán đàn hồi Amazon (EC2) phiên bản p3.2xlarge, có một GPU V100 duy nhất với bộ nhớ 16G. Một số kỹ thuật đã được sử dụng để cải thiện hiệu suất và giảm mức sử dụng bộ nhớ GPU, giúp tạo hình ảnh nhanh hơn. Chúng bao gồm sử dụng fp16 và cho phép chú ý hiệu quả bộ nhớ để giảm băng thông trong khối chú ý.
Chúng tôi bắt đầu bằng cách yêu cầu người dùng tải lên một hình ảnh thời trang, tiếp theo là tải xuống và trích xuất mô hình được đào tạo trước từ CLIPSeq. Hình ảnh sau đó được chuẩn hóa và thay đổi kích thước để tuân thủ giới hạn kích thước. Stable Diffusion V2 hỗ trợ độ phân giải hình ảnh lên tới 768×768 trong khi V1 hỗ trợ tới 512×512. Xem đoạn mã sau:
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)
Với việc sử dụng mô hình CLIPSeq được đào tạo trước, chúng tôi có thể trích xuất đối tượng mục tiêu từ một hình ảnh bằng dấu nhắc văn bản. Điều này được thực hiện bằng cách nhập dấu nhắc văn bản vào bộ mã hóa văn bản, bộ mã hóa này sẽ chuyển đổi nó thành văn bản nhúng. Sau đó, hình ảnh được nhập vào bộ mã hóa hình ảnh, bộ mã hóa này sẽ chuyển đổi nó thành một hình ảnh nhúng. Sau đó, cả hai phần nhúng được nối và chuyển qua một lớp được kết nối đầy đủ để tạo mặt nạ phân đoạn cuối cùng, làm nổi bật đối tượng đích được mô tả trong dấu nhắc văn bản. Xem đoạn mã sau:
# 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]))
Với hình ảnh mặt nạ chính xác từ phân đoạn ngữ nghĩa, chúng ta có thể sử dụng in-painting để thay thế nội dung. In-painting là quá trình sử dụng một mô hình tổng quát được đào tạo để điền vào các phần còn thiếu của hình ảnh. Bằng cách sử dụng hình ảnh mặt nạ để xác định đối tượng mục tiêu, chúng ta có thể áp dụng kỹ thuật trong tranh để thay thế đối tượng mục tiêu bằng một thứ khác, chẳng hạn như một mặt hàng quần áo hoặc phụ kiện khác. Mẫu Stable Diffusion V2 có thể được sử dụng cho mục đích này vì nó có khả năng tạo ra hình ảnh chân thực, có độ phân giải cao phù hợp với sự phân bố của hình ảnh gốc.
Tinh chỉnh từ các mô hình được đào tạo trước bằng DreamBooth
Tinh chỉnh là một quá trình học sâu trong đó một mô hình được đào tạo trước được đào tạo thêm về một nhiệm vụ mới bằng cách sử dụng một lượng nhỏ dữ liệu được gắn nhãn. Thay vì đào tạo từ đầu, ý tưởng là sử dụng một mạng đã được đào tạo trên một tập dữ liệu lớn cho một nhiệm vụ tương tự và đào tạo thêm trên một tập dữ liệu mới để làm cho nó trở nên chuyên biệt hơn cho nhiệm vụ cụ thể đó.
Các nhà thiết kế thời trang cũng có thể sử dụng mô hình trong hội họa Ổn định khuếch tán tinh chỉnh, hướng theo chủ đề để tạo ra một loại phong cách cụ thể, chẳng hạn như váy dài thông thường dành cho phụ nữ. Để thực hiện việc này, bước đầu tiên là cung cấp một tập hợp các hình ảnh mẫu trong miền mục tiêu, khoảng khoảng 1 tá, với các nhãn văn bản phù hợp như sau và liên kết chúng với một mã định danh duy nhất tham chiếu thiết kế, kiểu dáng, màu sắc và chất liệu vải . Nhãn trên văn bản đóng một vai trò quan trọng trong việc xác định kết quả của mô hình tinh chỉnh. Có một số cách để tăng cường tinh chỉnh thông qua hiệu quả kỹ thuật nhanh chóng và đây là một vài ví dụ.
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.
Việc sử dụng một tập hợp nhỏ các hình ảnh để tinh chỉnh Khuếch tán ổn định có thể dẫn đến việc khớp quá mức mô hình. DreamBooth[5] giải quyết vấn đề này bằng cách sử dụng tổn thất bảo quản trước dành riêng cho từng lớp. Nó học cách liên kết một mã định danh duy nhất với chủ đề cụ thể đó theo hai bước. Đầu tiên, nó tinh chỉnh mô hình có độ phân giải thấp với các hình ảnh đầu vào được ghép nối với lời nhắc văn bản chứa mã định danh duy nhất và tên của lớp mà đối tượng thuộc về, chẳng hạn như “váy”. Trong thực tế, điều này có nghĩa là có các hình ảnh phù hợp với mô hình và các hình ảnh được lấy mẫu từ hình ảnh trước đó của lớp không tinh chỉnh đồng thời. Những hình ảnh lưu giữ trước này được lấy mẫu và dán nhãn bằng dấu nhắc “danh từ lớp”. Thứ hai, nó sẽ tinh chỉnh các thành phần có độ phân giải siêu cao bằng cách ghép nối các hình ảnh có độ phân giải thấp và độ phân giải cao từ bộ ảnh đầu vào, cho phép các kết quả đầu ra của mô hình tinh chỉnh duy trì độ trung thực đến từng chi tiết nhỏ.
Tinh chỉnh bộ mã hóa văn bản trong tranh được đào tạo trước với UNet để có độ phân giải hình ảnh 512×512 yêu cầu khoảng 22GB VRAM hoặc cao hơn cho độ phân giải 768×768. Các mẫu tinh chỉnh lý tưởng nhất nên được thay đổi kích thước để phù hợp với độ phân giải hình ảnh đầu ra mong muốn để tránh suy giảm hiệu suất. Bộ mã hóa văn bản tạo ra các chi tiết chính xác hơn chẳng hạn như khuôn mặt của mô hình. Một tùy chọn là chạy trên một phiên bản AWS EC2 g5.2xlarge duy nhất, hiện có sẵn trong tám khu vực hoặc sử dụng Tăng tốc ôm mặt để chạy mã được tinh chỉnh trên một cấu hình phân tán. Để tiết kiệm bộ nhớ bổ sung, bạn có thể chọn một phiên bản cắt lát của sự chú ý để thực hiện tính toán theo các bước thay vì tất cả cùng một lúc bằng cách sửa đổi tập lệnh đào tạo của DreamBooth train_dreambooth_inpaint.py để thêm chức năng enable_attention_slicing() của đường dẫn.
Tăng tốc là một thư viện cho phép chạy một mã tinh chỉnh trên bất kỳ cấu hình phân tán nào. Hugging Face và Amazon giới thiệu Ôm mặt Hộp chứa học tập sâu (DLC) để mở rộng quy mô các tác vụ tinh chỉnh trên nhiều GPU và nút. Bạn có thể định cấu hình cấu hình khởi chạy cho Amazon SageMaker bằng một lệnh 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')
Để khởi chạy công việc tinh chỉnh, hãy xác minh cấu hình của Tăng tốc bằng cách sử dụng CLI và cung cấp các đối số đào tạo cần thiết, sau đó sử dụng tập lệnh shell sau.
# 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
Mô hình trong tranh được tinh chỉnh cho phép tạo ra các hình ảnh cụ thể hơn cho lớp thời trang được mô tả bằng lời nhắc văn bản. Vì nó đã được tinh chỉnh với một tập hợp các hình ảnh có độ phân giải cao và lời nhắc bằng văn bản, mô hình này có thể tạo ra những hình ảnh phù hợp hơn với lớp học, chẳng hạn như trang phục dạ hội trang trọng. Điều quan trọng cần lưu ý là lớp càng cụ thể và càng nhiều dữ liệu được sử dụng để tinh chỉnh thì hình ảnh đầu ra sẽ càng chính xác và chân thực.
%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
Triển khai mô hình in-painting được tinh chỉnh bằng SageMaker để suy luận
Với Amazon SageMaker, bạn có thể triển khai các mô hình Khuếch tán ổn định được tinh chỉnh để suy luận theo thời gian thực. Để tải mô hình lên Dịch vụ Amazon Simple Storage (S3) để triển khai, tarball lưu trữ model.tar.gz phải được tạo. Đảm bảo kho lưu trữ trực tiếp bao gồm tất cả các tệp chứ không phải thư mục chứa chúng. Thư mục lưu trữ tinh chỉnh DreamBooth sẽ xuất hiện như sau sau khi loại bỏ các điểm kiểm tra không liên tục:
Bước đầu tiên trong việc tạo trình xử lý suy luận của chúng tôi liên quan đến việc tạo tệp inference.py. Tệp này đóng vai trò là trung tâm trung tâm để tải mô hình và xử lý tất cả các yêu cầu suy luận đến. Sau khi mô hình được tải, hàm model_fn() được thực thi. Khi có nhu cầu thực hiện suy luận, hàm predict_fn() được gọi. Ngoài ra, hàm decode_base64() được sử dụng để chuyển đổi chuỗi JSON, có trong tải trọng, thành loại dữ liệu hình ảnh 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}
Để tải mô hình lên bộ chứa Amazon S3, trước tiên cần tạo tệp lưu trữ model.tar.gz. Điều quan trọng cần lưu ý là kho lưu trữ phải bao gồm các tệp trực tiếp chứ không phải một thư mục chứa chúng. Chẳng hạn, tệp sẽ xuất hiện như sau:
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")
Sau khi kho lưu trữ mô hình được tải lên, chúng tôi có thể triển khai nó trên Amazon SageMaker bằng cách sử dụng HuggingfaceModel để suy luận theo thời gian thực. Bạn có thể lưu trữ điểm cuối bằng cách sử dụng phiên bản g4dn.xlarge, được trang bị một GPU NVIDIA Tesla T4 duy nhất với 16GB VRAM. Autoscaling có thể được kích hoạt để xử lý các nhu cầu lưu lượng khác nhau. Để biết thông tin về cách kết hợp tính năng tự động thay đổi quy mô trong điểm cuối của bạn, hãy xem Tiến hành sản xuất: Máy biến hình ôm mặt tự động thay đổi quy mô với 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" )
Phương thức hugface_model.deploy() trả về một đối tượng HuggingFacePredictor có thể được sử dụng để yêu cầu suy luận. Điểm cuối yêu cầu JSON có khóa đầu vào, đại diện cho dấu nhắc đầu vào để mô hình tạo hình ảnh. Bạn cũng có thể kiểm soát quá trình tạo bằng các tham số như num_inference_steps,guide_scale và “num_images_per_prompt”. Hàm Predictor.predict() trả về JSON có khóa “generated_images”, khóa này chứa bốn hình ảnh được tạo dưới dạng chuỗi mã hóa base64. Chúng tôi đã thêm hai hàm trợ giúp, decode_base64_to_image và display_images, để giải mã phản hồi và hiển thị hình ảnh tương ứng. Cái trước giải mã chuỗi được mã hóa base64 và trả về một đối tượng PIL.Image và cái sau hiển thị danh sách các đối tượng PIL.Image. Xem đoạn mã sau:
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
Hãy tiếp tục với nhiệm vụ in-painting. Người ta ước tính rằng sẽ mất khoảng 15 giây để tạo ra ba hình ảnh, với hình ảnh đầu vào và mặt nạ được tạo bằng CLIPSeg với lời nhắc văn bản đã thảo luận trước đó. Xem đoạn mã sau:
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)
Các hình ảnh trong tranh có thể được hiển thị cùng với hình ảnh gốc để so sánh trực quan. Ngoài ra, quy trình in-painting có thể bị hạn chế bằng cách sử dụng các tham số khác nhau, chẳng hạn như guidelines_scale, kiểm soát cường độ của hình ảnh hướng dẫn trong quá trình in-painting. Điều này cho phép người dùng điều chỉnh hình ảnh đầu ra và đạt được kết quả mong muốn.
Khởi động Amazon SageMaker cung cấp các mẫu Khuếch tán ổn định cho nhiều kiểu máy khác nhau, bao gồm chuyển văn bản thành hình ảnh và nâng cấp. Để biết thêm thông tin, vui lòng tham khảo SageMaker JumpStart hiện cung cấp các mô hình Khuếch tán ổn định và Bloom. Các mẫu Khởi động bổ sung sẽ có sẵn trong tương lai gần.
Hạn chế
Mặc dù CLIPSeg thường hoạt động tốt trong việc nhận dạng các đối tượng phổ biến, nhưng nó gặp khó khăn trong các nhiệm vụ trừu tượng hoặc có hệ thống hơn như đếm số lượng đối tượng trong ảnh và các nhiệm vụ phức tạp hơn như dự đoán khoảng cách của vật thể gần nhất như túi xách trong ảnh. Zero-shot CLIPSeq cũng gặp khó khăn so với các mô hình dành riêng cho nhiệm vụ về phân loại rất chi tiết, chẳng hạn như cho biết sự khác biệt giữa hai thiết kế mơ hồ, các biến thể của trang phục hoặc phân loại kiểu dáng. CLIPSeq cũng vẫn có khả năng khái quát hóa kém đối với các hình ảnh không có trong bộ dữ liệu đào tạo trước của nó. Cuối cùng, người ta đã quan sát thấy rằng các bộ phân loại zero-shot của CLIP có thể nhạy cảm với từ ngữ hoặc cách diễn đạt và đôi khi yêu cầu “kỹ thuật nhắc nhở” thử và sai để hoạt động tốt. Chuyển sang mô hình phân đoạn ngữ nghĩa khác cho xương sống của CLIPSeq, chẳng hạn như ĐƯỢC, tự hào có 62.8% mIOU trên bộ dữ liệu ADE20K, có khả năng cải thiện kết quả.
Các thiết kế thời trang được tạo bằng cách sử dụng Khuếch tán ổn định đã được phát hiện là bị giới hạn ở các bộ phận của quần áo ít nhất được đặt ở vị trí có thể dự đoán được trong bối cảnh rộng hơn của các mẫu thời trang và phù hợp với các phần nhúng cấp cao mà bạn có thể mong đợi tìm thấy một cách hợp lý trong một tập dữ liệu siêu tỷ lệ được sử dụng trong quá trình đào tạo mô hình được đào tạo trước. Giới hạn thực sự của AI tổng quát là mô hình cuối cùng sẽ tạo ra các kết quả đầu ra hoàn toàn tưởng tượng và ít chân thực hơn. Do đó, các thiết kế thời trang do AI tạo ra có thể không đa dạng hoặc độc đáo như các thiết kế do con người tạo ra.
Kết luận
AI sáng tạo mang đến cho lĩnh vực thời trang cơ hội chuyển đổi các hoạt động của họ thông qua trải nghiệm người dùng tốt hơn và chiến lược kinh doanh tiết kiệm chi phí. Trong bài đăng này, chúng tôi giới thiệu cách khai thác AI tổng quát để cho phép các nhà thiết kế thời trang và người tiêu dùng tạo ra các phong cách thời trang được cá nhân hóa bằng cách sử dụng mô hình ảo. Với sự hỗ trợ của các mẫu Khởi động Amazon SageMaker hiện có và những mẫu sắp ra mắt, người dùng có thể nhanh chóng nắm bắt các kỹ thuật nâng cao này mà không cần có chuyên môn kỹ thuật chuyên sâu, đồng thời duy trì tính linh hoạt và giảm chi phí.
Công nghệ tiên tiến này mang đến cơ hội mới cho các công ty và chuyên gia tham gia vào việc tạo nội dung, trong các ngành khác nhau. AI sáng tạo cung cấp nhiều khả năng để nâng cao và tạo nội dung. Hãy thử những bổ sung gần đây cho các mẫu Khởi động trong Studio SageMaker, chẳng hạn như tinh chỉnh chuyển văn bản thành hình ảnh và khả năng nâng cấp.
Chúng tôi xin cảm ơn Li Zhang, Karl Albertsen, Kristine Pearce, Nikhil Velpanur, Aaron Sengstacken, James Wu và Neelam Koshiya vì những hỗ trợ và ý kiến đóng góp quý báu giúp cải thiện công việc này.
Về các tác giả
Alfred Shen là Chuyên gia cao cấp về AI/ML tại AWS. Ông đã làm việc tại Thung lũng Silicon, giữ các vị trí quản lý và kỹ thuật trong các lĩnh vực khác nhau bao gồm chăm sóc sức khỏe, tài chính và công nghệ cao. Anh ấy là một nhà nghiên cứu chuyên sâu về AI/ML ứng dụng, tập trung vào CV, NLP và đa phương thức. Tác phẩm của ông đã được giới thiệu trong các ấn phẩm như EMNLP, ICLR và Public Health.
Tiến sĩ Vivek Madan là Nhà khoa học ứng dụng của nhóm Amazon SageMaker JumpStart. Ông lấy bằng Tiến sĩ tại Đại học Illinois tại Urbana-Champaign và là Nhà nghiên cứu sau Tiến sĩ tại Georgia Tech. Ông là một nhà nghiên cứu tích cực trong lĩnh vực học máy và thiết kế thuật toán và đã xuất bản các bài báo trong các hội nghị EMNLP, ICLR, COLT, FOCS và SODA
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- Platoblockchain. Web3 Metaverse Intelligence. Khuếch đại kiến thức. Truy cập Tại đây.
- nguồn: https://aws.amazon.com/blogs/machine-learning/virtual-fashion-styling-with-generative-ai-using-amazon-sagemaker/
- 1
- 10
- 100
- 7
- a
- Aaron
- Có khả năng
- Giới thiệu
- TÓM TẮT
- đẩy nhanh tiến độ
- gia tốc
- truy cập
- phụ kiện
- thực hiện
- Tài khoản
- chính xác
- Đạt được
- ngang qua
- hoạt động
- thích ứng
- thêm
- thêm vào
- Ngoài ra
- bổ sung
- địa chỉ
- Nhận con nuôi
- tiên tiến
- tư vấn
- Sau
- AI
- AI / ML
- thuật toán
- thuật toán
- Tất cả
- Cho phép
- cho phép
- Đã
- đàn bà gan dạ
- Amazon SageMaker
- Khởi động Amazon SageMaker
- số lượng
- và
- quần áo
- xuất hiện
- các ứng dụng
- áp dụng
- Đăng Nhập
- khoảng
- kiến trúc
- lưu trữ
- KHU VỰC
- đối số
- nhân tạo
- trí tuệ nhân tạo
- ASA
- Hỗ trợ
- sự chú ý
- âm thanh
- Authentic
- có sẵn
- AWS
- Xương sống
- Băng thông
- Ngân hàng
- cơ sở
- dựa
- bởi vì
- bắt đầu
- mang lại lợi ích
- hưởng lợi
- Hơn
- giữa
- ràng buộc
- ràng buộc
- Chặn
- Blog
- Hoa
- Màu xanh da trời
- tự hào
- thân hình
- đậm
- hộp
- Tươi
- sáng hơn
- ngân sách
- kinh doanh
- Ứng dụng kinh doanh
- tính toán
- gọi là
- khả năng
- có khả năng
- trường hợp
- bình thường
- trung tâm
- thách thức
- tỷ lệ cược
- thay đổi
- Chọn
- tốt nghiệp lớp XNUMX
- phân loại
- Đóng
- đóng cửa
- Quần áo
- đám mây
- mã
- thu thập
- màu sắc
- Cột
- Đến
- thoải mái
- Chung
- Các công ty
- so sánh
- so
- sự so sánh
- Bổ sung
- phức tạp
- các thành phần
- tính toán
- Tính
- máy tính
- khái niệm
- Cấu hình
- kết nối
- không thay đổi
- Người tiêu dùng
- Container
- chứa
- nội dung
- Tạo nội dung
- bối cảnh
- tiếp tục
- điều khiển
- điều khiển
- chuyển đổi
- Tương ứng
- Phí Tổn
- có thể
- phủ
- tạo
- tạo ra
- Tạo
- tạo
- quan trọng
- quan trọng
- Hiện nay
- khách hàng
- khách hàng
- Sự hài lòng của khách hàng
- khách hàng
- tùy biến
- tùy biến
- dữ liệu
- giảm
- dành riêng
- sâu
- học kĩ càng
- nhu cầu
- Bông chéo
- triển khai
- triển khai
- triển khai
- mô tả
- mô tả
- Thiết kế
- thiết kế
- thiết kế
- thiết kế
- mong muốn
- chi tiết
- chi tiết
- xác định
- sự khác biệt
- khác nhau
- Lôi thôi
- trực tiếp
- thảo luận
- Giao diện
- màn hình
- phân phối
- phân phối
- khác nhau
- miền
- tải về
- hàng chục
- Độ bền
- suốt trong
- thương mại điện tử
- dễ dàng
- Hiệu quả
- hiệu quả
- các yếu tố
- loại bỏ
- ôm hôn
- cho phép
- cho phép
- cho phép
- bao trùm
- Điểm cuối
- Kỹ sư
- tăng cường
- đảm bảo
- Giải trí
- đã trang bị
- lôi
- ước tính
- buổi tối
- cuối cùng
- phát triển
- ví dụ
- ví dụ
- hiện tại
- mong đợi
- chi phí
- đắt tiền
- Kinh nghiệm
- chuyên môn
- xuất khẩu
- trích xuất
- vải
- vải
- Đối mặt
- khuôn mặt
- Thời trang
- nhanh hơn
- Đặc tính
- giống cái
- vài
- lòng trung thành
- lĩnh vực
- Tập tin
- Các tập tin
- điền
- cuối cùng
- Cuối cùng
- tài chính
- Tìm kiếm
- cuối
- Tên
- phù hợp với
- bùng phát
- linh hoạt
- dòng chảy
- Tập trung
- sau
- tiếp theo
- sau
- chính thức
- Cựu
- Forward
- tìm thấy
- thường xuyên
- từ
- Full
- đầy đủ
- chức năng
- chức năng
- xa hơn
- Hơn nữa
- tương lai
- hàng may mặc
- tạo ra
- tạo ra
- thế hệ
- thế hệ
- Trí tuệ nhân tạo
- Georgia
- được
- được
- GPU
- GPU
- Đồ họa
- màu xám
- lớn hơn
- rất nhiều
- lưới
- xử lý
- Xử lý
- khai thác
- có
- cho sức khoẻ
- chăm sóc sức khỏe
- cao
- đã giúp
- tại đây
- Cao
- cấp độ cao
- độ phân giải cao
- cao hơn
- nổi bật
- cao
- tổ chức
- giữ
- chủ nhà
- Độ đáng tin của
- Hướng dẫn
- Tuy nhiên
- HTML
- HTTPS
- Hub
- ÔmKhuôn Mặt
- Nhân loại
- ý tưởng
- định danh
- xác định
- Illinois
- hình ảnh
- hình ảnh
- tưởng tượng
- thực hiện
- nhập khẩu
- quan trọng
- nâng cao
- cải thiện
- in
- sâu
- bao gồm
- bao gồm
- Bao gồm
- Incoming
- kết hợp
- tăng
- các ngành công nghiệp
- ngành công nghiệp
- thông tin
- ban đầu
- sáng tạo
- đầu vào
- cài đặt, dựng lên
- ví dụ
- thay vì
- Sự thông minh
- giới thiệu
- tham gia
- IT
- mặt hàng
- Việc làm
- json
- Key
- nhãn
- Nhãn
- Ngôn ngữ
- lớn
- phóng
- lớp
- hàng đầu
- LEARN
- học
- học tập
- Chiều dài
- niveaux
- Li
- Thư viện
- LIMIT
- Hạn chế
- Danh sách
- tải
- tải
- dài
- sự mất
- Hạ
- sinh lợi
- máy
- học máy
- Chủ yếu
- duy trì
- Duy trì
- làm cho
- Làm
- quản lý
- Các nhà sản xuất
- lập bản đồ
- thị trường
- Marketing
- mặt nạ
- Mặt nạ
- Trận đấu
- nguyên vật liệu
- matplotlib
- có nghĩa
- Phương tiện truyền thông
- Bộ nhớ
- phương pháp
- phương pháp
- mất tích
- ML
- kiểu mẫu
- mô hình
- chi tiết
- hầu hết
- di chuyển
- phong trào
- nhiều
- tên
- Tự nhiên
- Gần
- cần thiết
- Cần
- cần
- nhu cầu
- mạng
- Neutral
- Mới
- nlp
- các nút
- bình thường
- tiểu thuyết
- con số
- Nvidia
- vật
- đối tượng
- trở ngại
- cung cấp
- cung cấp
- Cung cấp
- ONE
- One of a-Kind
- Trực tuyến
- Cơ hội
- tối ưu hóa
- Tùy chọn
- gọi món
- nguyên
- OS
- riêng
- ghép đôi
- cặp đôi
- giấy tờ
- thông số
- riêng
- các bộ phận
- thông qua
- con đường
- Họa tiết
- mô hình
- Thực hiện
- hiệu suất
- thực hiện
- quyền
- riêng
- cá nhân
- cá nhân
- Cá nhân
- Quang học
- Những bức ảnh
- đường ống
- đường ống dẫn
- nền tảng
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- xin vui lòng
- người nghèo
- Phổ biến
- đặt ra
- vị trí
- Bài đăng
- tiềm năng
- có khả năng
- Thực tế
- thực hành
- thực hành
- dự đoán
- dự đoán
- dự đoán
- Predictor
- ưu đãi
- ưa thích
- quà
- ngăn chặn
- trước đây
- Trước khi
- quá trình
- sản xuất
- Sản lượng
- Sản phẩm
- chuyên gia
- đúng
- cho
- cung cấp
- công khai
- y tế công cộng
- ấn phẩm
- công khai
- công bố
- hoàn toàn
- mục đích
- mục đích
- Python
- ngọn đuốc
- chất lượng
- Mau
- phạm vi
- thực
- thời gian thực
- thực tế
- nhận
- gần đây
- khuyến nghị
- đỏ
- giảm
- Giảm
- tài liệu tham khảo
- đề cập
- sự liên quan
- Báo cáo
- đại diện cho
- yêu cầu
- yêu cầu
- yêu cầu
- đòi hỏi
- nhà nghiên cứu
- Độ phân giải
- phản ứng
- kết quả
- kết quả
- Kết quả
- bán lẻ
- trở lại
- Trả về
- RGB
- Vai trò
- khoảng
- chạy
- chạy
- nhà làm hiền triết
- bán hàng
- sự hài lòng
- Lưu
- Tiết kiệm
- Quy mô
- Nhà khoa học
- sdk
- Thứ hai
- giây
- ngành
- Ngành
- phân khúc
- phân đoạn
- lựa chọn
- cao cấp
- nhạy cảm
- phục vụ
- dịch vụ
- Phiên
- định
- một số
- sắc nét
- Shell
- ngắn
- nên
- giới thiệu
- bên
- Silicon
- Silicon Valley
- tương tự
- Đơn giản
- đơn giản
- đồng thời
- duy nhất
- Kích thước máy
- nhỏ
- So
- Mạng xã hội
- truyền thông xã hội
- giải pháp
- một số
- một cái gì đó
- Không gian
- đặc biệt
- chuyên gia
- chuyên nghành
- riêng
- quy định
- ổn định
- Tiêu chuẩn
- Tiểu bang
- Bước
- Các bước
- Vẫn còn
- là gắn
- lưu trữ
- chiến lược
- sức mạnh
- Sọc
- Đấu tranh
- phong cách
- Tiêu đề
- thành công
- như vậy
- mùa hè
- Siêu mẫu
- giám sát
- Hỗ trợ
- phù hợp
- Hãy
- mất
- Mục tiêu
- Nhiệm vụ
- nhiệm vụ
- nhóm
- công nghệ cao
- Kỹ thuật
- kỹ thuật
- Công nghệ
- mẫu
- về
- Tesla
- Sản phẩm
- Khu vực
- thế giới
- cung cấp their dịch
- vì thế
- số ba
- Thông qua
- Bị ràng buộc
- đến
- công cụ
- ngọn đuốc
- TỔNG CỘNG
- truyền thống
- giao thông
- Train
- đào tạo
- Hội thảo
- chuyển
- Chuyển đổi
- máy biến áp
- đi du lịch
- Xu hướng
- thử nghiệm
- Nghìn tỷ
- Dưới
- độc đáo
- trường đại học
- tải lên
- Sử dụng
- sử dụng
- người sử dang
- Người sử dụng
- thường
- sử dụng
- tận dụng
- sử dụng
- Bằng cách sử dụng
- kỳ nghỉ
- thung lũng
- Quý báu
- giá trị
- nhiều
- khác nhau
- Lớn
- xác minh
- phiên bản
- Video
- ảo
- W
- cách
- cái nào
- trong khi
- trắng
- CHÚNG TÔI LÀ
- rộng
- Phạm vi rộng
- rộng hơn
- chiều rộng
- sẽ
- ở trong
- không có
- từ ngữ
- Công việc
- làm việc
- thế giới
- Ngân hàng Thế giới
- sẽ
- bọc
- wu
- X
- Bạn
- trên màn hình
- zephyrnet
- Zip