패션 산업은 고수익 사업, 세계 은행이 보고한 바와 같이 2.1년까지 추정 가치는 2025조 XNUMX천억 달러입니다. 이 분야는 의류, 신발, 액세서리의 창작, 제조, 유통 및 판매와 같은 다양한 분야를 포괄합니다. 업계는 끊임없이 변화하고 있으며 새로운 스타일과 트렌드가 자주 등장합니다. 따라서 패션 회사는 관련성을 유지하고 시장에서 성공을 거두기 위해 유연하고 적응할 수 있어야 합니다.
생성적 인공지능(AI)은 일련의 학습된 패턴 및 데이터를 기반으로 이미지, 텍스트, 오디오 또는 비디오와 같은 새로운 콘텐츠를 생성하도록 설계된 AI 알고리즘을 말합니다. 향상된 개인화 및 비용 효율성을 제공하면서 새롭고 혁신적인 의류 디자인을 생성하는 데 활용할 수 있습니다. AI 기반 디자인 도구는 텍스트 프롬프트를 통해 잠재 고객이 지정한 입력 매개변수 또는 스타일을 기반으로 고유한 의류 디자인을 생성할 수 있습니다. 또한 AI를 활용하여 고객의 선호도에 맞게 디자인을 개인화할 수 있습니다. 예를 들어 고객은 다양한 색상, 패턴 및 스타일 중에서 선택할 수 있으며 AI 모델은 이러한 선택을 기반으로 독특한 디자인을 생성합니다. 패션 산업에서 AI의 채택은 현재 다양한 기술, 타당성 및 비용 문제로 인해 방해를 받고 있습니다. 그러나 이제는 가상 스타일링을 위한 자연어 기반 이미지 의미 분할 및 확산과 같은 고급 생성 AI 방법을 활용하여 이러한 장애물을 완화할 수 있습니다.
이 블로그 게시물은 텍스트 프롬프트를 사용하여 생성적 AI 지원 패션 온라인 스타일링 구현에 대해 자세히 설명합니다. 머신 러닝(ML) 엔지니어는 아마존 세이지 메이커. 이를 통해 패션 디자이너와 소비자는 텍스트 프롬프트를 기반으로 가상 모델링 이미지를 만들고 선호하는 스타일을 선택할 수 있습니다.
생성 AI 솔루션
XNUMXD덴탈의 CLIPSeg 모델은 간단한 텍스트 명령을 사용하여 사진에서 패션 항목을 쉽게 식별할 수 있는 새로운 이미지 의미론적 분할 방법을 도입했습니다. 텍스트 프롬프트 또는 이미지 인코더를 활용하여 텍스트 및 시각적 정보를 다중 모달 임베딩 공간으로 인코딩하여 프롬프트를 기반으로 대상 개체를 매우 정확하게 세분화할 수 있습니다. 이 모델은 제로 샷 전송, 자연 언어 감독 및 다중 모드 자기 감독 대조 학습과 같은 기술을 사용하여 방대한 양의 데이터에 대해 교육을 받았습니다. 이는 공개적으로 사용할 수 있는 사전 훈련된 모델을 활용할 수 있음을 의미합니다. 티모 루데케 등 사용자 정의가 필요하지 않습니다.
CLIPSeg는 텍스트 및 이미지 인코더를 사용하여 텍스트 및 시각적 정보를 다중 모드 임베딩 공간으로 인코딩하여 텍스트 프롬프트를 기반으로 의미론적 분할을 수행하는 모델입니다. CLIPSeg의 아키텍처는 텍스트 인코더와 이미지 인코더의 두 가지 주요 구성 요소로 구성됩니다. 텍스트 인코더는 텍스트 프롬프트를 받아 텍스트 임베딩으로 변환하는 반면, 이미지 인코더는 이미지를 가져와 이미지 임베딩으로 변환합니다. 그런 다음 두 임베딩을 연결하고 완전히 연결된 레이어를 통과하여 최종 분할 마스크를 생성합니다.
데이터 흐름 측면에서 모델은 이미지 데이터 집합과 해당 텍스트 프롬프트에서 학습되며, 여기서 텍스트 프롬프트는 분할할 대상 개체를 설명합니다. 교육 프로세스 중에 텍스트 인코더와 이미지 인코더는 최종 분할 마스크를 생성하기 위해 텍스트 프롬프트와 이미지 간의 매핑을 학습하도록 최적화됩니다. 모델이 훈련되면 새로운 텍스트 프롬프트와 이미지를 가져와 프롬프트에 설명된 개체에 대한 분할 마스크를 생성할 수 있습니다.
Stable Diffusion은 패션 디자이너가 길고 비용이 많이 드는 사용자 지정 작업 없이 순전히 텍스트 설명에 기반하여 매우 사실적인 이미지를 대량으로 생성할 수 있는 기술입니다. 이는 보그 스타일을 빠르게 만들고자 하는 디자이너와 저렴한 비용으로 맞춤형 제품을 생산하려는 제조업체에게 유리합니다.
다음 다이어그램은 안정적인 확산 아키텍처 및 데이터 흐름을 보여줍니다.
Stable Diffusion은 기존의 GAN 기반 방법에 비해 원본 이미지의 분포와 일치하는 보다 안정적이고 사실적인 이미지를 생성할 수 있는 생성 AI입니다. 이 모델은 텍스트-이미지 생성을 위한 텍스트, 레이아웃-이미지 생성을 위한 경계 상자, 인페인팅을 위한 마스킹된 이미지, 초고해상도를 위한 저해상도 이미지와 같은 다양한 용도로 조건을 지정할 수 있습니다. 확산 모델은 다양한 비즈니스 응용 프로그램을 보유하고 있으며 실제 용도는 계속 발전하고 있습니다. 이러한 모델은 패션, 소매 및 전자 상거래, 엔터테인먼트, 소셜 미디어, 마케팅 등과 같은 다양한 산업에 큰 도움이 될 것입니다.
CLIPSeg를 사용하여 텍스트 프롬프트에서 마스크 생성
보그 온라인 스타일링은 고객이 온라인 플랫폼을 통해 AI에게 패션 조언과 추천을 받을 수 있는 서비스다. 고객의 외모를 보완하고 예산 범위 내에서 개인 취향에 맞는 의류와 액세서리를 선택하여 이를 수행합니다. 제너레이티브 AI를 활용하면 작업을 보다 쉽게 수행할 수 있어 고객 만족도 향상과 비용 절감으로 이어집니다.
솔루션은 Amazon Elastic Compute Cloud(EC2) 3.2G 메모리가 있는 단일 V100 GPU가 있는 p16xlarge 인스턴스. 성능을 개선하고 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]))
시맨틱 분할의 정확한 마스크 이미지를 사용하여 콘텐츠 대체를 위해 인페인팅을 사용할 수 있습니다. 인페인팅은 훈련된 생성 모델을 사용하여 이미지의 누락된 부분을 채우는 프로세스입니다. 대상 개체를 식별하기 위해 마스크 이미지를 사용함으로써 우리는 대상 개체를 다른 옷이나 액세서리와 같은 다른 것으로 대체하는 인페인팅 기술을 적용할 수 있습니다. 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]는 클래스별 사전 보존 손실을 사용하여 이 문제를 해결합니다. 두 단계를 통해 고유 식별자를 해당 특정 주제와 바인딩하는 방법을 학습합니다. 먼저 "스커트"와 같이 대상이 속한 클래스의 이름과 고유 식별자를 포함하는 텍스트 프롬프트와 쌍을 이루는 입력 이미지로 저해상도 모델을 미세 조정합니다. 실제로 이것은 모델에 맞는 이미지와 미세 조정되지 않은 클래스의 시각적 사전에서 샘플링된 이미지를 동시에 갖는 것을 의미합니다. 이러한 사전 보존 이미지는 "클래스 명사" 프롬프트를 사용하여 샘플링되고 레이블이 지정됩니다. 둘째, 입력 이미지 세트의 저해상도 이미지와 고해상도 이미지를 페어링하여 초고해상도 구성 요소를 미세 조정하여 미세 조정 모델의 출력이 작은 세부 사항에 대한 충실도를 유지할 수 있도록 합니다.
512×512 이미지 해상도를 위해 UNet을 사용하여 사전 훈련된 인페인팅 텍스트 인코더를 미세 조정하려면 22×768 해상도를 위해 약 768GB 이상의 VRAM이 필요합니다. 이상적으로 미세 조정 샘플은 성능 저하를 방지하기 위해 원하는 출력 이미지 해상도와 일치하도록 크기를 조정해야 합니다. 텍스트 인코더는 모델 얼굴과 같은 보다 정확한 세부 정보를 생성합니다. 한 가지 옵션은 단일 AWS EC2 g5.2xlarge 인스턴스에서 실행하는 것입니다. XNUMX개 지역 또는 Hugging Face Accelerate를 사용하여 분산 구성에서 미세 조정된 코드를 실행합니다. 추가 메모리 절약을 위해 DreamBooth의 교육 스크립트 train_dreambooth_inpaint.py를 수정하여 파이프라인 enable_attention_slicing() 함수를 추가하기만 하면 계산을 한 번에 모두 수행하는 대신 단계적으로 수행하는 슬라이스 버전의 어텐션을 선택할 수 있습니다.
Accelerate는 하나의 미세 조정 코드를 모든 분산 구성에서 실행할 수 있게 해주는 라이브러리입니다. Hugging Face와 Amazon 도입 포옹 얼굴 딥 러닝 컨테이너(DLC) 여러 GPU 및 노드에서 미세 조정 작업을 확장합니다. 단일 CLI 명령으로 Amazon SageMaker의 시작 구성을 구성할 수 있습니다.
# 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를 사용하면 실시간 추론을 위해 미세 조정된 안정적인 확산 모델을 배포할 수 있습니다. 에 모델을 업로드하려면 Amazon Simple Storage 서비스(S3) 배포를 위해 model.tar.gz 아카이브 tarball을 생성해야 합니다. 아카이브에 모든 파일이 포함된 폴더가 아니라 모든 파일이 직접 포함되어 있는지 확인하십시오. 간헐적 체크포인트를 제거한 후 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")
모델 아카이브가 업로드되면 실시간 추론을 위해 HuggingfaceModel을 사용하여 Amazon SageMaker에 배포할 수 있습니다. 4GB VRAM이 있는 단일 NVIDIA Tesla T4 GPU가 장착된 g16dn.xlarge 인스턴스를 사용하여 엔드포인트를 호스팅할 수 있습니다. 자동 크기 조정을 활성화하여 다양한 트래픽 수요를 처리할 수 있습니다. 엔드포인트에 자동 크기 조정을 통합하는 방법에 대한 자세한 내용은 다음을 참조하십시오. 프로덕션 진행: Amazon SageMaker를 사용한 Auto-Scaling Hugging Face Transformers.
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() 함수는 생성된 이미지 64개를 base64로 인코딩된 문자열로 보유하는 "generated_images" 키가 있는 JSON을 반환합니다. 응답을 디코딩하고 이미지를 각각 표시하기 위해 두 개의 도우미 함수 decode_base64_to_image 및 display_images를 추가했습니다. 전자는 baseXNUMX로 인코딩된 문자열을 디코딩하고 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개의 이미지를 생성하는 데 약 XNUMX초가 소요될 것으로 예상됩니다. 다음 코드를 참조하십시오.
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과 같은 다양한 매개변수를 사용하여 제한할 수 있습니다. 이를 통해 사용자는 출력 이미지를 조정하고 원하는 결과를 얻을 수 있습니다.
Amazon SageMaker 점프스타트 text-to-image 및 upscaling을 포함한 다양한 모델을 위한 Stable Diffusion 템플릿을 제공합니다. 자세한 내용은 다음을 참조하십시오. SageMaker JumpStart는 이제 안정적인 확산 및 블룸 모델을 제공합니다.. 가까운 시일 내에 추가 Jumpstart 템플릿을 사용할 수 있습니다.
제한 사항
CLIPSeg는 일반적으로 일반적인 물체를 인식하는 데는 잘 수행되지만 이미지에 있는 물체의 수를 세는 것과 같은 보다 추상적이고 체계적인 작업과 핸드백과 같은 가장 가까운 물체가 사진에서 얼마나 가까운지 예측하는 것과 같은 보다 복잡한 작업에서는 어려움을 겪습니다. Zero-shot CLIPSeq는 또한 두 개의 모호한 디자인, 드레스 변형 또는 스타일 분류 사이의 차이점을 말하는 것과 같이 매우 세분화된 분류에서 작업별 모델과 비교하여 어려움을 겪습니다. 또한 CLIPSeq는 사전 교육 데이터 세트에서 다루지 않은 이미지에 대한 일반화가 여전히 좋지 않습니다. 마지막으로, CLIP의 제로샷 분류기는 문구나 문구에 민감할 수 있으며 때로는 잘 수행하기 위해 시행착오 "즉시 엔지니어링"이 필요하다는 것이 관찰되었습니다. 다음과 같이 CLIPSeq의 백본에 대한 다른 의미론적 세분화 모델로 전환 BEITADE62.8K 데이터 세트에서 20% mIOU를 자랑하는 는 잠재적으로 결과를 개선할 수 있습니다.
Stable Diffusion을 사용하여 생성된 패션 디자인은 패션 모델의 더 넓은 맥락에서 적어도 예측 가능하게 배치되고 합리적으로 찾을 수 있는 높은 수준의 임베딩을 준수하는 의류 부분으로 제한되는 것으로 밝혀졌습니다. 사전 훈련된 모델을 훈련하는 동안 사용되는 하이퍼스케일 데이터 세트. 제너레이티브 AI의 실제 한계는 모델이 결국 완전히 가상적이고 덜 실제적인 출력을 생성한다는 것입니다. 따라서 AI가 생성한 패션 디자인은 인간 디자이너가 생성한 것만큼 다양하거나 독특하지 않을 수 있습니다.
결론
Generative AI는 패션 부문에 더 나은 사용자 경험과 비용 효율적인 비즈니스 전략을 통해 관행을 혁신할 수 있는 기회를 제공합니다. 이 게시물에서는 제너레이티브 AI를 활용하여 패션 디자이너와 소비자가 가상 모델링을 사용하여 개인화된 패션 스타일을 만들 수 있도록 하는 방법을 보여줍니다. 기존 Amazon SageMaker Jumpstart 템플릿과 앞으로 나올 템플릿의 도움으로 사용자는 다재다능함을 유지하고 비용을 낮추면서 심층적인 기술 전문 지식 없이도 이러한 고급 기술을 빠르게 수용할 수 있습니다.
이 혁신적인 기술은 다양한 산업 분야에서 콘텐츠 생성과 관련된 기업 및 전문가에게 새로운 기회를 제공합니다. Generative AI는 콘텐츠를 향상하고 생성할 수 있는 충분한 기능을 제공합니다. Jumpstart 템플릿에 최근 추가된 내용을 SageMaker 스튜디오, 미세 조정 텍스트-이미지 및 고급 기능 등.
Li Zhang, Karl Albertsen, Kristine Pearce, Nikhil Velpanur, Aaron Sengstacken, James Wu, Neelam Koshiya의 지원과 이 작업을 개선하는 데 도움을 준 귀중한 정보에 감사드립니다.
저자에 관하여
알프레드 쉔 AWS의 선임 AI/ML 전문가입니다. 그는 실리콘 밸리에서 일하면서 의료, 금융, 첨단 기술을 포함한 다양한 분야에서 기술 및 관리 직책을 맡았습니다. 그는 CV, NLP 및 다중 양식에 집중하는 응용 AI/ML 전담 연구원입니다. 그의 작업은 EMNLP, ICLR 및 공중 보건과 같은 간행물에 소개되었습니다.
비벡 마단 박사 Amazon SageMaker JumpStart 팀의 응용 과학자입니다. 그는 University of Illinois at Urbana-Champaign에서 박사 학위를 받았으며 Georgia Tech에서 박사 후 연구원이었습니다. 그는 기계 학습 및 알고리즘 설계 분야에서 활동적인 연구원이며 EMNLP, ICLR, COLT, FOCS 및 SODA 컨퍼런스에 논문을 발표했습니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- 플라토 블록체인. Web3 메타버스 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/machine-learning/virtual-fashion-styling-with-generative-ai-using-amazon-sagemaker/
- 1
- 10
- 100
- 7
- a
- 아론
- 할 수 있는
- 소개
- 추상
- 가속
- 가속 자
- ACCESS
- 부속품
- 달성
- 계정
- 정확한
- 달성
- 가로질러
- 활동적인
- 각색하다
- 추가
- 추가
- 또한
- 추가
- 구애
- 양자
- 많은
- 조언
- 후
- AI
- AI / ML
- 연산
- 알고리즘
- All
- 허용
- 수
- 이미
- 아마존
- 아마존 세이지 메이커
- Amazon SageMaker 점프스타트
- 양
- 및
- 의류 & 프로모션
- 표시
- 어플리케이션
- 적용된
- 신청
- 대략
- 아키텍처
- 아카이브
- 지역
- 인수
- 인조의
- 인공 지능
- ASA
- 원조
- 주의
- 오디오
- 진정한
- 가능
- AWS
- 등뼈
- 대역폭
- 은행
- 기지
- 기반으로
- 때문에
- 시작
- 유익한
- 이익
- 더 나은
- 사이에
- 바인딩
- 제본
- 블록
- 블로그
- 꽃
- 파란색
- 자랑
- 몸
- 일시: XNUMX년 XNUMX월 XNUMX일 화요일 XNUMX:XNUMXpm - XNUMX:XNUMXpm 장소: 여의도 페어몬트 앰배서더 서울 호텔 XNUMXF 아잘레아스 룸 [약도] 행사 문의: info.korea@rescale.com
- 박스
- 빛나는
- 밝게
- 예산
- 사업
- 비즈니스 응용 프로그램
- ~를 계산하다
- 라는
- 기능
- 수
- 가지 경우
- 평상복
- 중심적인
- 과제
- 승산
- 이전 단계로 돌아가기
- 왼쪽 메뉴에서
- 수업
- 분류
- 닫기
- 폐쇄
- 의류
- 클라우드
- 암호
- 수집
- 색
- 열
- 왔다
- 위로
- 공통의
- 기업
- 비교
- 비교
- 비교
- 보어
- 복잡한
- 구성 요소들
- 계산
- 계산
- 컴퓨팅
- 개념
- 구성
- 연결
- 상수
- 소비자
- 용기
- 이 포함되어 있습니다
- 함유량
- 컨텐츠 생성
- 문맥
- 계속
- 제어
- 컨트롤
- 변하게 하다
- 동
- 비용
- 수
- 적용
- 만들
- 만든
- 만들기
- 창조
- 임계
- 결정적인
- 현재
- 관습
- 고객
- 고객 만족
- 고객
- 맞춤형
- 사용자 정의
- 데이터
- 감소
- 전용
- 깊은
- 깊은 학습
- 요구
- 데님
- 배포
- 배포
- 전개
- 설명
- 기술 된
- 디자인
- 설계
- 디자이너
- 디자인
- 원하는
- 상세한
- 세부설명
- 결정
- 차이
- 다른
- 방송
- 직접
- 논의 된
- 디스플레이
- 디스플레이
- 분산
- 분포
- 몇몇의
- 도메인
- 다운로드
- 수십
- 내구성
- ...동안
- 전자 상거래
- 용이하게
- 유효한
- 효율적인
- 요소
- 제거
- 포옹
- 가능
- 수
- 가능
- 포괄
- 종점
- 엔지니어
- 강화
- 확인
- 엔터테인먼트
- 갖추어 준
- 오류
- 예상
- 저녁
- 있을뿐만 아니라
- 진화시키다
- 예
- 예
- 현존하는
- 기대
- 경비
- 비싼
- 체험
- 전문적 지식
- 수출
- 추출물
- 구조
- 직물
- 페이스메이크업
- 얼굴
- 패션
- 빠른
- 특색
- 여자
- 를
- 충실도
- 들
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 파일
- 채우기
- 최후의
- 최종적으로
- 재원
- Find
- 끝
- 먼저,
- 맞게
- 플레어
- 융통성있는
- 흐름
- 초점
- 다음에
- 수행원
- 다음
- 형식적인
- 이전
- 앞으로
- 발견
- 자주
- 에
- 가득 찬
- 충분히
- 기능
- 기능
- 추가
- 게다가
- 미래
- 의복
- 생성
- 생성
- 세대
- 생성적인
- 제너레이티브 AI
- 조지아
- 얻을
- 주어진
- GPU
- GPU
- 그래픽
- 회색
- 큰
- 매우
- 그리드
- 핸들
- 처리
- 마구
- 데
- 건강
- 건강 관리
- 신장
- 도움
- 여기에서 지금 확인해 보세요.
- 높은
- 고수준
- 높은 해상도
- 더 높은
- 하이라이트
- 고도로
- 보유
- 보유
- 주인
- 방법
- How To
- 그러나
- HTML
- HTTPS
- 허브
- 포옹 얼굴
- 사람의
- 생각
- 식별자
- 확인
- 일리노이
- 영상
- 형상
- 상상의
- 이행
- import
- 중대한
- 개선
- 개선하는
- in
- 심도
- 포함
- 포함
- 포함
- 들어오는
- 통합
- 증가
- 산업
- 산업
- 정보
- 처음에는
- 혁신적인
- 입력
- 설치
- 예
- 를 받아야 하는 미국 여행자
- 인텔리전스
- 소개
- 참여
- IT
- 항목
- 일
- JSON
- 키
- 라벨
- 레이블
- 언어
- 넓은
- 시작
- 층
- 지도
- 배우다
- 배운
- 배우기
- 길이
- 레벨
- Li
- 도서관
- 제한
- 제한된
- 명부
- 하중
- 로드
- 긴
- 오프
- 저하
- 유리한
- 기계
- 기계 학습
- 본관
- 유지하다
- 유지 보수
- 확인
- 유튜브 영상을 만드는 것은
- 관리의
- 제조 업체
- 매핑
- 시장
- 마케팅
- 마스크
- 마스크
- 경기
- 재료
- 매트플롯립
- 방법
- 미디어
- 메모리
- 방법
- 방법
- 누락
- ML
- 모델
- 모델
- 배우기
- 가장
- 움직임
- 운동
- 여러
- name
- 자연의
- 가까운
- 필요한
- 필요
- 필요
- 요구
- 네트워크
- 중립의
- 신제품
- nlp
- 노드
- 표준
- 소설
- 번호
- 엔비디아
- 대상
- 사물
- 장애물
- 제공
- 제공
- 제공
- ONE
- 종류 중 하나
- 온라인
- 기회
- 최적화
- 선택권
- 주문
- 실물
- OS
- 자신의
- 쌍을 이루는
- 페어링
- 서류
- 매개 변수
- 특별한
- 부품
- 합격
- 통로
- 무늬
- 패턴
- 수행
- 성능
- 수행하다
- 권한
- 확인
- 개인
- 개인
- 맞춤형 교육 플랫폼
- 실사
- 영화
- 파이프
- 관로
- 플랫폼
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 부디
- 가난한
- 인기 문서
- 포즈
- 위치
- 게시하다
- 가능성
- 잠재적으로
- 실용적인
- 연습
- 사례
- 예측
- 예측
- 예측
- Predictor
- 환경 설정
- 선호하는
- 선물
- 예방
- 이전에
- 이전에
- 방법
- 생산
- 생산
- 제품
- 전문가
- 적절한
- 제공
- 제공
- 공개
- 공중 위생
- 출판물
- 공개적으로
- 출판
- 전혀
- 목적
- 목적
- Python
- 파이 토치
- 품질
- 빨리
- 범위
- 현실
- 실시간
- 현실적인
- 받다
- 최근
- 추천
- 빨간색
- 감소
- 감소
- 참조
- 의미
- 관련성
- 보고
- 대표
- 의뢰
- 요청
- 필요
- 필요
- 연구원
- 분해능
- 응답
- 결과
- 결과
- 결과
- 소매
- return
- 반품
- RGB
- 직위별
- 거칠게
- 달리기
- 달리는
- 현자
- 판매
- 만족도
- 찜하기
- 저금
- 규모
- 과학자
- SDK
- 둘째
- 초
- 부문
- 부문
- 분할
- 세그먼트
- 선택
- 연장자
- 민감한
- 봉사하다
- 서비스
- 세션
- 세트
- 몇몇의
- 날카로운
- 껍질
- 짧은
- 영상을
- 소개
- 측면
- 규소
- 실리콘 밸리
- 비슷한
- 단순, 간단, 편리
- 간단히
- 동시에
- 단일
- 크기
- 작은
- So
- 사회적
- 소셜 미디어
- 해결책
- 일부
- 무언가
- 스페이스 버튼
- 특별한
- 전문가
- 전문
- 구체적인
- 지정
- 안정된
- 표준
- 주 정부
- 단계
- 단계
- 아직도
- 저장
- 저장
- 전략들
- 힘
- 문
- 투쟁
- 스타일
- 제목
- 성공
- 이러한
- 여름
- 슈퍼 모델
- 감독
- 지원
- 맞춤형
- 받아
- 소요
- 목표
- 태스크
- 작업
- 팀
- 기술
- 테크니컬
- 기법
- Technology
- 템플릿
- 조건
- 테슬라
- XNUMXD덴탈의
- 지역
- 세계
- 그들의
- 따라서
- 세
- 을 통하여
- 묶여
- 에
- 검색을
- 토치
- 완전히
- 전통적인
- 교통
- Train
- 훈련 된
- 트레이닝
- 이전
- 변환
- 변압기
- 여행
- 트렌드
- 시도
- 일조
- 아래에
- 유일한
- 대학
- 업로드
- 용법
- 사용
- 사용자
- 사용자
- 보통
- 활용
- 사용
- 이용하다
- 활용
- 휴가
- 골짜기
- 가치 있는
- 가치
- 종류
- 여러
- 거대한
- 확인
- 버전
- Video
- 온라인
- W
- 방법
- 어느
- 동안
- 화이트
- 누구
- 넓은
- 넓은 범위
- 넓은
- 폭
- 의지
- 이내
- 없이
- 말씨
- 작업
- 일
- 세계
- 세계 은행 (World Bank)
- 겠지
- 싸다
- wu
- X
- 자신의
- 너의
- 제퍼 넷
- 지퍼