Muotiteollisuus on a erittäin tuottoisaa liiketoimintaaMaailmanpankin raportin mukaan sen arvo on 2.1 biljoonaa dollaria vuoteen 2025 mennessä. Tämä ala kattaa monenlaisia segmenttejä, kuten vaatteiden, kenkien ja asusteiden luomisen, valmistuksen, jakelun ja myynnin. Toimiala on jatkuvassa muutoksen tilassa, ja uusia tyylejä ja trendejä ilmaantuu usein. Siksi muotiyritysten on oltava joustavia ja sopeutumiskykyisiä säilyttääkseen merkityksensä ja menestyäkseen markkinoilla.
Generatiivisella tekoälyllä (AI) tarkoitetaan tekoälyalgoritmeja, jotka on suunniteltu luomaan uutta sisältöä, kuten kuvia, tekstiä, ääntä tai videota, perustuen opittuihin kuvioihin ja tietoihin. Sitä voidaan käyttää uusien ja innovatiivisten vaatemallien luomiseen samalla, kun se tarjoaa parempaa personointia ja kustannustehokkuutta. Tekoälypohjaisilla suunnittelutyökaluilla voidaan luoda ainutlaatuisia vaatemalleja potentiaalisten asiakkaiden tekstikehotteilla määrittämien syöttöparametrien tai tyylien perusteella. Lisäksi tekoälyä voidaan käyttää yksilöimään malleja asiakkaan toiveiden mukaan. Asiakas voi esimerkiksi valita useista väreistä, kuvioista ja tyyleistä, ja tekoälymallit luovat ainutlaatuisen suunnittelun näiden valintojen perusteella. Tekoälyn käyttöönottoa muotiteollisuudessa estävät tällä hetkellä erilaiset tekniset, toteutettavuus- ja kustannushaasteet. Näitä esteitä voidaan nyt kuitenkin lieventää käyttämällä kehittyneitä generatiivisia tekoälymenetelmiä, kuten luonnolliseen kieleen perustuvaa kuvan semanttista segmentointia ja diffuusiota virtuaaliseen tyyliin.
Tässä blogikirjoituksessa kerrotaan generatiivisen tekoälyn avustetun online-muotoilun toteuttamisesta tekstikehotteiden avulla. Koneoppimisen (ML) insinöörit voivat hienosäätää ja ottaa käyttöön tekstistä semanttiseksi segmentointi- ja maalausmalleja, jotka perustuvat valmiiksi koulutettuun CLIPSeq- ja Stable Diffusion -tekniikkaan. Amazon Sage Maker. Näin muotisuunnittelijat ja kuluttajat voivat luoda virtuaalisia mallinnuskuvia tekstikehotteiden perusteella ja valita haluamansa tyylit.
Luovat tekoälyratkaisut
- CLIPSeg malli esitteli uudenlaisen kuvien semanttisen segmentointimenetelmän, jonka avulla voit helposti tunnistaa muotituotteita kuvista yksinkertaisten tekstikomentojen avulla. Se käyttää tekstikehotetta tai kuvakooderia teksti- ja visuaalisen tiedon koodaamiseen multimodaaliseen upotustilaan, mikä mahdollistaa erittäin tarkan kohdeobjektien segmentoinnin kehotteen perusteella. Mallia on koulutettu valtavalle datamäärälle tekniikoilla, kuten nollakuvan siirto, luonnollisen kielen valvonta ja multimodaalinen itseohjattu kontrastiivinen oppiminen. Tämä tarkoittaa, että voit käyttää esikoulutettua mallia, joka on julkisesti saatavilla Timo Lüddecke et al ilman räätälöintiä.
CLIPSeg on malli, joka käyttää teksti- ja kuvakooderia teksti- ja visuaalisen tiedon koodaamiseen multimodaaliseen upotustilaan semanttisen segmentoinnin suorittamiseksi tekstikehotteen perusteella. CLIPSeg-arkkitehtuuri koostuu kahdesta pääkomponentista: tekstienkooderista ja kuvakooderista. Tekstienkooderi vastaanottaa tekstikehotteen ja muuntaa sen tekstin upotukseksi, kun taas kuvakooderi ottaa kuvan ja muuntaa sen kuvaupotukseksi. Molemmat upotukset ketjutetaan sitten ja viedään täysin yhdistetyn kerroksen läpi lopullisen segmentointimaskin tuottamiseksi.
Tiedonkulun osalta mallia opetetaan kuvien ja vastaavien tekstikehotteiden tietojoukolle, jossa tekstikehotteet kuvaavat segmentoitavaa kohdeobjektia. Koulutusprosessin aikana tekstienkooderi ja kuvakooderi on optimoitu oppimaan yhdistäminen tekstikehotteiden ja kuvan välillä lopullisen segmentointimaskin tuottamiseksi. Kun malli on koulutettu, se voi ottaa vastaan uuden tekstikehotteen ja kuvan ja tuottaa segmentointimaskin kehotteessa kuvatulle objektille.
Stable Diffusion on tekniikka, jonka avulla muotisuunnittelijat voivat luoda erittäin realistisia kuvia suurissa määrissä puhtaasti tekstikuvausten perusteella ilman pitkiä ja kalliita mukautuksia. Tämä on hyödyllistä suunnittelijoille, jotka haluavat luoda muodin tyylejä nopeasti, ja valmistajille, jotka haluavat tuottaa yksilöllisiä tuotteita halvemmalla.
Seuraava kaavio havainnollistaa Stable Diffusion -arkkitehtuuria ja tietovirtaa.
Perinteisiin GAN-pohjaisiin menetelmiin verrattuna Stable Diffusion on generatiivinen tekoäly, joka pystyy tuottamaan vakaampia ja valokuvarealistisempia kuvia, jotka vastaavat alkuperäisen kuvan jakautumista. Mallia voidaan ehdollistaa monenlaisiin tarkoituksiin, kuten tekstistä tekstistä kuvaksi luomiseen, rajauslaatikoihin asettelun luomiseksi kuvaksi luomiseksi, naamioituihin kuviin maalausta varten ja pienemmän resoluution kuviin superresoluutioon. Diffuusiomalleilla on laaja valikoima liiketoimintasovelluksia, ja niiden käytännön käyttötarkoitukset kehittyvät jatkuvasti. Nämä mallit hyödyttävät suuresti eri toimialoja, kuten muotia, vähittäiskauppaa ja sähköistä kaupankäyntiä, viihdettä, sosiaalista mediaa, markkinointia ja paljon muuta.
Luo maskeja tekstikehotteista käyttämällä CLIPSeg
Vogue online styling on palvelu, jonka avulla asiakkaat voivat saada muotineuvoja ja suosituksia tekoälyltä verkkoalustan kautta. Se tekee tämän valitsemalla vaatteita ja asusteita, jotka täydentävät asiakkaan ulkonäköä, sopivat hänen budjettiinsa ja sopivat hänen henkilökohtaisiin mieltymyksiinsä. Generatiivisen tekoälyn avulla tehtävät voidaan suorittaa entistä helpommin, mikä lisää asiakastyytyväisyyttä ja pienentää kustannuksia.
Ratkaisu voidaan ottaa käyttöön Amazon Elastic Compute Cloud (EC2) p3.2xlarge ilmentymä, jossa on yksi V100 GPU 16 Gt muistilla. Useita tekniikoita käytettiin parantamaan suorituskykyä ja vähentämään GPU-muistin käyttöä, mikä johti nopeampaan kuvien luomiseen. Näitä ovat fp16:n käyttö ja muistin tehokkaan huomioimisen mahdollistaminen kaistanleveyden vähentämiseksi huomiolohkossa.
Aloitimme antamalla käyttäjän ladata muotikuvan, minkä jälkeen ladattiin ja purettiin valmiiksi koulutettu malli CLIPSeqistä. Sitten kuva normalisoidaan ja sen kokoa muutetaan kokorajoituksen mukaiseksi. Stable Diffusion V2 tukee kuvan resoluutiota jopa 768×768, kun taas V1 tukee jopa 512×512. Katso seuraava koodi:
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)
Esiopetetun CLIPSeq-mallin avulla pystymme poimimaan kohdeobjektin kuvasta tekstikehotteen avulla. Tämä tehdään syöttämällä tekstikehote tekstienkooderiin, joka muuntaa sen tekstin upotukseksi. Kuva syötetään sitten kuvakooderiin, joka muuntaa sen kuvan upotukseksi. Molemmat upotukset ketjutetaan sitten ja viedään täysin yhdistetyn kerroksen läpi lopullisen segmentointimaskin tuottamiseksi, joka korostaa tekstikehotteessa kuvatun kohdeobjektin. Katso seuraava koodi:
# 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]))
Semanttisen segmentoinnin tarkan maskikuvan avulla voimme käyttää sisällön korvaamiseen maalausta. In-maalaus on prosessi, jossa käytetään koulutettua generatiivista mallia kuvan puuttuvien osien täyttämiseen. Käyttämällä maskikuvaa kohdeobjektin tunnistamiseen, voimme soveltaa maalaustekniikkaa korvaamaan kohteen jollain muulla, kuten eri vaatekappaleella tai asusteella. Stable Diffusion V2 -mallia voidaan käyttää tähän tarkoitukseen, koska se pystyy tuottamaan korkearesoluutioisia, fotorealistisia kuvia, jotka vastaavat alkuperäisen kuvan jakautumista.
Hienosäätö valmiista malleista DreamBoothin avulla
Hienosäätö on syväoppimisen prosessi, jossa esikoulutettua mallia koulutetaan edelleen uuteen tehtävään käyttämällä pientä määrää merkittyä dataa. Sen sijaan, että harjoitettaisiin tyhjästä, ideana on ottaa verkko, joka on jo koulutettu suurelle tietojoukolle samanlaiseen tehtävään, ja kouluttaa sitä edelleen uudella tietojoukolla, jotta se olisi erikoistunut kyseiseen tehtävään.
Muotisuunnittelijat voivat myös käyttää aihekohtaista, hienosäädettyä Stable Diffusion -maalausmallia luodakseen tietyn tyyliluokan, kuten naisten rentoja pitkiä hameita. Tämän tekemiseksi ensimmäinen vaihe on tarjota kohdeverkkotunnukseen näytekuvia, noin 1 tusinaa, oikeilla tekstitunnisteilla, kuten seuraavista, ja sitoa ne yksilölliseen tunnisteeseen, joka viittaa suunnitteluun, tyyliin, väriin ja kankaaseen. . Tekstin etiketillä on ratkaiseva rooli hienosäädetyn mallin tulosten määrittämisessä. On olemassa useita tapoja parantaa hienosäätöä tehokkaalla nopea suunnittelu ja tässä muutama esimerkki.
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.
Pienen kuvasarjan käyttäminen vakaan diffuusion hienosäätämiseen voi johtaa mallin ylisovitukseen. DreamBooth[5] korjaa tämän käyttämällä luokkakohtaista ennakkosäilytyksen menetystä. Se oppii sitomaan yksilöllisen tunnisteen kyseiseen aiheeseen kahdessa vaiheessa. Ensinnäkin se hienosäätää matalaresoluutioista mallia, jossa syöttökuvat on yhdistetty tekstikehotteeseen, joka sisältää yksilöllisen tunnisteen ja luokan nimen, johon kohde kuuluu, kuten "hame". Käytännössä tämä tarkoittaa sitä, että malli sovitetaan kuviin ja kuvat on otettu samaan aikaan hienosäätämättömän luokan visuaalisesta priorista. Näistä aiemmin säilytetyistä kuvista otetaan näyte ja ne merkitään käyttämällä "luokan substantiivi" -kehotetta. Toiseksi se hienosäätää erittäin korkearesoluutioisia komponentteja yhdistämällä matalaresoluutioiset ja korkearesoluutioiset kuvat tulokuvajoukosta, mikä mahdollistaa hienosäädetyn mallin lähdöt säilyttämään tarkkuuden pienille yksityiskohdille.
Valmiiksi koulutetun maalaustekstikooderin hienosäätö UNetillä 512×512-kuvien resoluutiota varten vaatii noin 22 Gt VRAM-muistia tai enemmän 768×768-resoluutiolle. Ihannetapauksessa hienosäädettyjen näytteiden kokoa tulisi muuttaa vastaamaan haluttua lähtökuvan resoluutiota suorituskyvyn heikkenemisen välttämiseksi. Tekstienkooderi tuottaa tarkempia yksityiskohtia, kuten mallien kasvoja. Yksi vaihtoehto on suorittaa yksi AWS EC2 g5.2xlarge -esiintymä, joka on nyt saatavilla kahdeksan aluetta tai käytä Hugging Face Acceleratea suorittaaksesi hienosäädetyn koodin hajautetussa kokoonpanossa. Lisämuistin säästämiseksi voit valita viipaloidun huomion version, joka suorittaa laskennan vaiheittain sen sijaan, että se suorittaa kaikki kerralla, yksinkertaisesti muokkaamalla DreamBoothin harjoitusskriptiä train_dreambooth_inpaint.py ja lisäämällä liukuhihnan enable_attention_slicing()-funktio.
Accelerate on kirjasto, joka mahdollistaa yhden hienosäätökoodin suorittamisen kaikissa hajautetuissa kokoonpanoissa. Hugging Face ja Amazon esiteltiin Hugging Face Deep Learning Containers (DLC) skaalata hienosäätötehtäviä useiden GPU:iden ja solmujen välillä. Voit määrittää Amazon SageMakerin käynnistysasetukset yhdellä CLI-komennolla.
# 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')
Aloita hienosäätötyö tarkistamalla Acceleraten asetukset käyttämällä CLI ja anna tarvittavat koulutusargumentit ja käytä sitten seuraavaa komentotulkkikomentosarjaa.
# 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
Hienosäädetty maalausmalli mahdollistaa tarkempien kuvien luomisen tekstikehotteessa kuvattuun muotiluokkaan. Koska mallia on hienosäädetty joukolla korkearesoluutioisia kuvia ja tekstikehotteita, malli voi luoda kuvia, jotka ovat räätälöityjä luokkaan, kuten muodollisia iltapukuja. On tärkeää huomata, että mitä tarkempi luokka ja mitä enemmän tietoja käytetään hienosäätöön, sitä tarkempia ja realistisempia tulosteet ovat.
%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
Ota käyttöön hienosäädetty maalausmalli käyttämällä SageMakeria johtopäätösten tekemiseen
Amazon SageMakerin avulla voit ottaa käyttöön hienosäädetyt Stable Diffusion -mallit reaaliaikaisten johtopäätösten tekemiseen. Mallin lataaminen osoitteeseen Amazon Simple Storage -palvelu (S3) käyttöönottoa varten on luotava model.tar.gz-arkistotiedosto. Varmista, että arkisto sisältää suoraan kaikki tiedostot, ei niitä sisältävää kansiota. DreamBoothin hienosäätöarkistokansion pitäisi näkyä seuraavasti, kun ajoittaiset tarkistuspisteet on poistettu:
Ensimmäinen vaihe päätelmien käsittelijän luomisessa on tiedoston inference.py luominen. Tämä tiedosto toimii keskuskeskuksena mallin lataamiseen ja kaikkien saapuvien päättelypyyntöjen käsittelyyn. Kun malli on ladattu, model_fn()-funktio suoritetaan. Kun tulee tarve suorittaa päättely, kutsutaan funktio ennustaa_fn(). Lisäksi decode_base64()-funktiota käytetään muuttamaan hyötykuorman sisältämä JSON-merkkijono PIL-kuvatietotyypiksi.
%%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}
Mallin lataaminen Amazon S3 -ämpäriin on ensin luotava model.tar.gz-arkisto. On tärkeää huomata, että arkiston tulee koostua suoraan tiedostoista, ei kansiosta, jossa ne ovat. Esimerkiksi tiedoston pitäisi näyttää seuraavalta:
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")
Kun malliarkisto on ladattu, voimme ottaa sen käyttöön Amazon SageMakerissa käyttämällä HuggingfaceModelia reaaliaikaisten päätelmien tekemiseen. Voit isännöidä päätepistettä käyttämällä g4dn.xlarge-esiintymää, joka on varustettu yhdellä NVIDIA Tesla T4 GPU:lla ja 16 Gt:n VRAM-muistilla. Automaattinen skaalaus voidaan aktivoida vastaamaan vaihtelevia liikennevaatimuksia. Lisätietoja automaattisen skaalauksen sisällyttämisestä päätepisteeseen on kohdassa Tuotanto käynnissä: Hugging Face Transformers -muuntajat skaalautuvat automaattisesti Amazon SageMakerin avulla.
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()-menetelmä palauttaa HuggingFacePredictor-objektin, jota voidaan käyttää päättelyn pyytämiseen. Päätepiste vaatii JSON-tiedoston, jossa on syöttöavain, joka edustaa syöttökehotetta, jolla malli luo kuvan. Voit myös ohjata luomista parametreilla, kuten num_inference_steps, guidance_scale ja "num_images_per_prompt". Funktio ennustaja.predict() palauttaa JSON-tiedoston "generated_images"-avaimella, joka pitää neljä luotua kuvaa base64-koodattuina merkkijonoina. Lisäsimme kaksi aputoimintoa, decode_base64_to_image ja display_images, purkaa vastauksen ja näyttää vastaavat kuvat. Edellinen purkaa base64-koodatun merkkijonon ja palauttaa PIL.Image-objektin, ja jälkimmäinen näyttää luettelon PIL.Image-objekteista. Katso seuraava koodi:
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
Jatketaan maalaustehtävän kanssa. On arvioitu, että kolmen kuvan tuottaminen kestää noin 15 sekuntia, kun otetaan huomioon syötekuva ja CLIPSeg:llä luotu maski aiemmin käsitellyn tekstikehotteen kanssa. Katso seuraava koodi:
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)
Sisäänmaalatut kuvat voidaan näyttää alkuperäisen kuvan kanssa visuaalista vertailua varten. Lisäksi maalausprosessia voidaan rajoittaa käyttämällä erilaisia parametreja, kuten guidance_scale, joka ohjaa ohjauskuvan voimakkuutta maalausprosessin aikana. Tämän avulla käyttäjä voi säätää ulostulokuvaa ja saavuttaa halutut tulokset.
Amazon SageMaker Jumpstart tarjoaa Stable Diffusion -malleja eri malleille, mukaan lukien tekstistä kuvaksi ja skaalaus. Lisätietoja on osoitteessa SageMaker JumpStart tarjoaa nyt Stable Diffusion- ja Bloom-malleja. Lisää Jumpstart-malleja on saatavilla lähitulevaisuudessa.
Rajoitukset
Vaikka CLIPSeg toimii yleensä hyvin yleisten kohteiden tunnistamisessa, se kamppailee abstraktimpien tai systemaattisempien tehtävien parissa, kuten kuvan kohteiden lukumäärän laskemisessa ja monimutkaisemmissa tehtävissä, kuten lähimmän esineen, kuten käsilaukun, ennustamisessa valokuvassa. Zero-shot CLIPSeqillä on myös vaikeuksia verrattuna tehtäväkohtaisiin malleihin erittäin hienorakeisessa luokittelussa, kuten kahden epämääräisen mallin, pukeutumisversion tai tyyliluokituksen erottamisessa. CLIPSeqillä on myös edelleen huono yleistys kuviin, joita sen koulutusta edeltävä tietoaineisto ei kata. Lopuksi on havaittu, että CLIPin nolla-luokittimet voivat olla herkkiä sanamuodoille tai lauseille ja vaativat joskus yrityksen ja erehdyksen "nopeaa suunnittelua" toimiakseen hyvin. Vaihtaminen toiseen semanttiseen segmentointimalliin CLIPSeqin runkoverkossa, kuten BEiT, jonka ADE62.8K-tietojoukossa on 20 % mIOU, voisi mahdollisesti parantaa tuloksia.
Stable Diffusion -tekniikalla luotujen muotimallien on todettu rajoittuvan vaatteiden osiin, jotka ovat vähintään yhtä ennakoitavasti sijoittuneet muotimallien laajempaan kontekstiin ja jotka noudattavat korkean tason upotuksia, joita voit kohtuudella odottaa löytävänsä hyperscale-tietojoukko, jota käytetään esiopetetun mallin koulutuksen aikana. Generatiivisen tekoälyn todellinen raja on, että malli tuottaa lopulta täysin kuvitteellisia ja vähemmän autenttisia tuloksia. Siksi tekoälyn luomat muotimallit eivät välttämättä ole yhtä monipuolisia tai ainutlaatuisia kuin ihmisten suunnittelijoiden luomat.
Yhteenveto
Generatiivinen tekoäly tarjoaa muotialalle mahdollisuuden muuttaa käytäntöjään parempien käyttäjäkokemusten ja kustannustehokkaiden liiketoimintastrategioiden avulla. Tässä viestissä esittelemme, kuinka hyödyntää generatiivista tekoälyä, jotta muotisuunnittelijat ja kuluttajat voivat luoda personoituja muotityylejä virtuaalisen mallinnuksen avulla. Nykyisten Amazon SageMaker Jumpstart -mallien ja tulevien mallien avulla käyttäjät voivat nopeasti omaksua nämä edistyneet tekniikat ilman syvällistä teknistä asiantuntemusta, säilyttäen samalla monipuolisuuden ja alentaa kustannuksia.
Tämä innovatiivinen teknologia tarjoaa uusia mahdollisuuksia sisällöntuotantoon osallistuville yrityksille ja ammattilaisille eri toimialoilla. Generatiivinen tekoäly tarjoaa runsaasti ominaisuuksia sisällön parantamiseen ja luomiseen. Kokeile viimeaikaisia lisäyksiä Jumpstart-malleihin SageMaker Studio, kuten hienosäätää tekstistä kuvaksi ja skaalausominaisuuksia.
Haluamme kiittää Li Zhangia, Karl Albertseniä, Kristine Pearcea, Nikhil Velpanuria, Aaron Sengstackenia, James Wua ja Neelam Koshiyaa heidän tuestaan ja arvokkaasta panoksestaan, jotka auttoivat parantamaan tätä työtä.
Tietoja Tekijät
Alfred Shen on AWS:n vanhempi AI/ML-asiantuntija. Hän on työskennellyt Piilaaksossa teknisissä ja johtotehtävissä eri aloilla, mukaan lukien terveydenhuolto, rahoitus ja huipputeknologia. Hän on omistautunut soveltava AI/ML-tutkija, joka keskittyy CV:hen, NLP:hen ja multimodaalisuuteen. Hänen työtään on esitelty julkaisuissa, kuten EMNLP, ICLR ja Public Health.
Tohtori Vivek Madan on soveltuva tutkija Amazon SageMaker JumpStart -tiimin kanssa. Hän sai tohtorin tutkinnon Illinoisin yliopistosta Urbana-Champaignissa ja oli tutkijatohtorina Georgia Techissä. Hän on aktiivinen koneoppimisen ja algoritmisuunnittelun tutkija ja julkaissut julkaisuja EMNLP-, ICLR-, COLT-, FOCS- ja SODA-konferensseissa
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- Platoblockchain. Web3 Metaverse Intelligence. Tietoa laajennettu. Pääsy tästä.
- Lähde: https://aws.amazon.com/blogs/machine-learning/virtual-fashion-styling-with-generative-ai-using-amazon-sagemaker/
- 1
- 10
- 100
- 7
- a
- Aaron
- pystyy
- Meistä
- TIIVISTELMÄ
- kiihdyttää
- kiihdytin
- pääsy
- lisälaitteet
- Suoritetut
- Tili
- tarkka
- Saavuttaa
- poikki
- aktiivinen
- sopeuttaa
- lisä-
- lisä-
- Lisäksi
- lisäyksiä
- osoitteet
- Hyväksyminen
- kehittynyt
- neuvot
- Jälkeen
- AI
- AI / ML
- algoritmi
- algoritmit
- Kaikki
- Salliminen
- mahdollistaa
- jo
- Amazon
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- määrä
- ja
- Vaatteet
- näyttää
- sovellukset
- sovellettu
- käyttää
- suunnilleen
- arkkitehtuuri
- Archive
- ALUE
- perustelut
- keinotekoinen
- tekoäly
- ASA
- Apu
- huomio
- audio-
- Aito
- saatavissa
- AWS
- Selkäranka
- kaistanleveys
- Pankki
- pohja
- perustua
- koska
- alkoi
- suotuisa
- hyödyttää
- Paremmin
- välillä
- sitovat
- sitova
- Tukkia
- Blogi
- Kukinta
- sininen
- kehut
- elin
- tappi
- laatikot
- Kirkas
- kirkkaampi
- talousarvio
- liiketoiminta
- Business Applications
- laskee
- nimeltään
- kyvyt
- kykenee
- tapauksissa
- rento
- keskeinen
- haasteet
- mahdollisuudet
- muuttaa
- Valita
- luokka
- luokittelu
- lähellä
- sulkeminen
- Vaatetus
- pilvi
- koodi
- kerätä
- väri
- Pylväät
- Tulla
- mukavuus
- Yhteinen
- Yritykset
- verrata
- verrattuna
- vertailu
- Täydentää
- monimutkainen
- osat
- laskeminen
- Laskea
- tietojenkäsittely
- käsite
- Konfigurointi
- kytketty
- vakio
- Kuluttajat
- Kontit
- sisältää
- pitoisuus
- Sisällön luominen
- tausta
- jatkaa
- ohjaus
- valvonta
- muuntaa
- vastaava
- Hinta
- voisi
- katettu
- luoda
- luotu
- Luominen
- luominen
- kriittinen
- ratkaiseva
- Tällä hetkellä
- asiakassuhde
- asiakas
- Asiakastyytyväisyys
- Asiakkaat
- muokattavissa
- räätälöinnin
- tiedot
- vähentää
- omistautunut
- syvä
- syvä oppiminen
- vaatii
- Denimi
- sijoittaa
- käyttöön
- käyttöönotto
- kuvata
- on kuvattu
- Malli
- suunniteltu
- suunnittelijat
- mallit
- haluttu
- yksityiskohtainen
- yksityiskohdat
- määritetään
- ero
- eri
- Diffuusio
- suoraan
- keskusteltiin
- näyttö
- näytöt
- jaettu
- jakelu
- useat
- verkkotunnuksen
- download
- kymmeniä
- kestävyys
- aikana
- verkkokaupan
- helposti
- Tehokas
- tehokas
- elementtejä
- poistamalla
- omaksua
- mahdollistaa
- mahdollistaa
- mahdollistaa
- kattaa
- päätepiste
- Engineers
- parantaa
- varmistaa
- Viihde
- varustettu
- virhe
- arvioidaan
- ilta
- lopulta
- kehittää
- esimerkki
- Esimerkit
- olemassa
- odottaa
- kulut
- kallis
- Elämykset
- asiantuntemus
- vienti
- uute
- kangas
- kankaat
- Kasvot
- kasvot
- Muoti
- nopeampi
- Ominaisuus
- naaras-
- harvat
- tarkkuus
- ala
- filee
- Asiakirjat
- täyttää
- lopullinen
- Vihdoin
- rahoittaa
- Löytää
- loppu
- Etunimi
- sovittaa
- leimahtaa
- joustava
- virtaus
- Keskittää
- seurannut
- jälkeen
- seuraa
- muodollinen
- Entinen
- Eteenpäin
- löytyi
- usein
- alkaen
- koko
- täysin
- toiminto
- tehtävät
- edelleen
- Lisäksi
- tulevaisuutta
- vaatteet
- tuottaa
- syntyy
- sukupolvi
- generatiivinen
- Generatiivinen AI
- Georgia
- saada
- tietty
- GPU
- GPU
- Graafinen
- harmaa
- suurempi
- suuresti
- ruudukko
- kahva
- Käsittely
- valjaat
- ottaa
- terveys
- terveydenhuollon
- korkeus
- auttanut
- tätä
- Korkea
- korkean tason
- korkea resoluutio
- korkeampi
- raidat
- erittäin
- pito
- pitää
- isäntä
- Miten
- Miten
- Kuitenkin
- HTML
- HTTPS
- Napa
- HalaaKasvot
- ihmisen
- ajatus
- tunniste
- tunnistaa
- Illinois
- kuva
- kuvien
- kuvitteellinen
- täytäntöönpano
- tuoda
- tärkeä
- parantaa
- parani
- in
- perusteellinen
- sisältää
- sisältää
- Mukaan lukien
- Saapuva
- sisältävät
- kasvoi
- teollisuuden
- teollisuus
- tiedot
- ensimmäinen
- innovatiivinen
- panos
- asentaa
- esimerkki
- sen sijaan
- Älykkyys
- käyttöön
- osallistuva
- IT
- kohdetta
- Job
- json
- avain
- Merkki
- tarrat
- Kieli
- suuri
- käynnistää
- kerros
- johtava
- OPPIA
- oppinut
- oppiminen
- Pituus
- tasot
- Li
- Kirjasto
- RAJOITA
- rajallinen
- Lista
- kuormitus
- lastaus
- Pitkät
- pois
- Alentaminen
- tuottoisa
- kone
- koneoppiminen
- tärkein
- ylläpitää
- ylläpitäminen
- tehdä
- Tekeminen
- johto-
- Valmistajat
- kartoitus
- markkinat
- Marketing
- naamio
- Maskit
- ottelu
- tarvikkeet
- matplotlib
- välineet
- Media
- Muisti
- menetelmä
- menetelmät
- puuttuva
- ML
- malli
- mallit
- lisää
- eniten
- liikkua
- liike
- moninkertainen
- nimi
- Luonnollinen
- Lähellä
- välttämätön
- Tarve
- tarvitsevat
- tarpeet
- verkko
- Neutraali
- Uusi
- NLP
- solmut
- normaali
- romaani
- numero
- Nvidia
- objekti
- esineet
- esteitä
- kampanja
- tarjoamalla
- Tarjoukset
- ONE
- Ainutlaatuinen
- verkossa
- Tilaisuus
- optimoitu
- Vaihtoehto
- tilata
- alkuperäinen
- OS
- oma
- pariksi
- pariksi
- paperit
- parametrit
- erityinen
- osat
- Hyväksytty
- polku
- Kuvio
- kuviot
- Suorittaa
- suorituskyky
- suorittaa
- Oikeudet
- henkilöstö
- Personointi
- Personoida
- yksilöllinen
- fotorealistisia
- kuvat
- putki
- putki
- foorumi
- Platon
- Platonin tietotieto
- PlatonData
- Ole hyvä
- kehno
- Suosittu
- aiheuttaa
- kantoja
- Kirje
- mahdollinen
- mahdollisesti
- Käytännön
- harjoitusta.
- käytännöt
- ennustaa
- ennustamiseen
- ennustus
- Predictor
- mieltymykset
- Suositut
- lahjat
- estää
- aiemmin
- Aikaisempi
- prosessi
- tuottaa
- tuotanto
- Tuotteemme
- ammattilaiset
- asianmukainen
- toimittaa
- tarjoaa
- julkinen
- kansanterveyden
- julkaisut
- julkisesti
- julkaistu
- puhtaasti
- tarkoitus
- tarkoituksiin
- Python
- pytorch
- laatu
- nopeasti
- alue
- todellinen
- reaaliaikainen
- realistinen
- vastaanottaa
- äskettäinen
- suosituksia
- punainen
- vähentää
- Vähentynyt
- viittaukset
- viittaa
- Merkitys
- raportoitu
- edustaa
- pyyntö
- pyynnöt
- edellyttää
- Vaatii
- tutkija
- päätöslauselma
- vastaus
- johtua
- Saatu ja
- tulokset
- vähittäiskauppa
- palata
- Tuotto
- RGB
- Rooli
- karkeasti
- ajaa
- juoksu
- sagemaker
- myynti
- tyytyväisyys
- Säästä
- Säästöt
- Asteikko
- Tiedemies
- sdk
- Toinen
- sekuntia
- sektori
- sektorit
- jakautuminen
- segmentit
- valitsemalla
- vanhempi
- sensible
- palvelee
- palvelu
- Istunto
- setti
- useat
- terävä
- Kuori
- Lyhyt
- shouldnt
- näyteikkuna
- puoli
- Pii
- Silicon Valley
- samankaltainen
- Yksinkertainen
- yksinkertaisesti
- samanaikaisesti
- single
- Koko
- pieni
- So
- sosiaalinen
- sosiaalinen media
- ratkaisu
- jonkin verran
- jotain
- Tila
- erityinen
- asiantuntija
- erikoistunut
- erityinen
- määritelty
- vakaa
- standardi
- Osavaltio
- Vaihe
- Askeleet
- Yhä
- Levytila
- tallennettu
- strategiat
- vahvuus
- Stripes
- Kamppailut
- tyyli
- aihe
- menestys
- niin
- kesä
- Supermalli
- valvonta
- Tukee
- Räätälöity
- ottaa
- vie
- Kohde
- Tehtävä
- tehtävät
- joukkue-
- teknologia
- Tekninen
- tekniikat
- Elektroniikka
- malleja
- ehdot
- Tesla
- -
- Alue
- maailma
- heidän
- siksi
- kolmella
- Kautta
- tied
- että
- työkalut
- taskulamppu
- TÄYSIN
- perinteinen
- liikenne
- Juna
- koulutettu
- koulutus
- siirtää
- Muuttaa
- muuntajat
- matkustaa
- Trendit
- oikeudenkäynti
- Biljoona
- varten
- unique
- yliopisto
- ladattu
- Käyttö
- käyttää
- käyttäjä
- Käyttäjät
- yleensä
- käyttää
- hyödynnetty
- hyödyntää
- Hyödyntämällä
- loma
- Laakso
- arvokas
- arvo
- lajike
- eri
- valtava
- todentaa
- versio
- Video
- Virtual
- W
- tavalla
- joka
- vaikka
- valkoinen
- KUKA
- leveä
- Laaja valikoima
- laajempi
- leveys
- tulee
- sisällä
- ilman
- sanamuoto
- Referenssit
- työskenteli
- maailman-
- Maailmanpankki
- olisi
- kääri
- wu
- X
- Voit
- Sinun
- zephyrnet
- Postinumero