Zephyrnet-logo

Gebruik Stable Diffusion XL met Amazon SageMaker JumpStart in Amazon SageMaker Studio | Amazon-webservices

Datum:

Vandaag zijn we verheugd aan te kondigen dat Stable Diffusion XL 1.0 (SDXL 1.0) beschikbaar is voor klanten via Amazon SageMaker JumpStart. SDXL 1.0 is het nieuwste beeldgeneratiemodel van Stabiliteit AI. SDXL 1.0-verbeteringen omvatten native 1024-pixel beeldgeneratie met verschillende beeldverhoudingen. Het is ontworpen voor professioneel gebruik en gekalibreerd voor fotorealistische afbeeldingen met een hoge resolutie. SDXL 1.0 biedt een verscheidenheid aan vooraf ingestelde kunststijlen die klaar zijn voor gebruik in gebruiksscenario's voor marketing, ontwerp en het genereren van afbeeldingen in verschillende sectoren. U kunt deze modellen eenvoudig uitproberen en gebruiken met SageMaker JumpStart, een machine learning-hub (ML) die toegang biedt tot algoritmen, modellen en ML-oplossingen, zodat u snel aan de slag kunt met ML.

In dit bericht laten we zien hoe u SDXL 1.0-modellen kunt gebruiken via SageMaker JumpStart.

Wat is stabiele diffusie XL 1.0 (SDXL 1.0)

SDXL 1.0 is de evolutie van Stable Diffusion en de volgende grens voor generatieve AI voor afbeeldingen. SDXL is in staat verbluffende beelden te genereren met complexe concepten in verschillende kunststijlen, waaronder fotorealisme, op kwaliteitsniveaus die de beste beeldmodellen die momenteel beschikbaar zijn, overtreffen. Net als de originele Stable Diffusion-serie, is SDXL in hoge mate aanpasbaar (in termen van parameters) en kan het worden ingezet Amazon Sage Maker instanties.

De volgende afbeelding van een leeuw is gegenereerd met behulp van SDXL 1.0 met behulp van een eenvoudige prompt, die we later in dit bericht zullen onderzoeken.

Het SDXL 1.0-model bevat de volgende hoogtepunten:

  • Vrijheid van meningsuiting - Best-in-class fotorealisme, evenals de mogelijkheid om hoogwaardige kunst te genereren in vrijwel elke kunststijl. Duidelijke afbeeldingen worden gemaakt zonder een bepaald gevoel dat door het model wordt meegegeven, waardoor absolute vrijheid van stijl wordt gegarandeerd.
  • Artistieke intelligentie – Best-in-class vermogen om concepten te genereren die notoir moeilijk te renderen zijn voor beeldmodellen, zoals handen en tekst, of ruimtelijk gerangschikte objecten en mensen (bijvoorbeeld een rode doos bovenop een blauwe doos).
  • Eenvoudigere aansporing – In tegenstelling tot andere modellen voor generatieve afbeeldingen, heeft SDXL slechts een paar woorden nodig om complexe, gedetailleerde en esthetisch aantrekkelijke afbeeldingen te maken. Geen alinea's met kwalificaties meer nodig.
  • Accurater – Prompting in SDXL is niet alleen eenvoudig, maar meer trouw aan de bedoeling van prompts. Het verbeterde CLIP-model van SDXL begrijpt tekst zo goed dat concepten als 'het rode vierkant' anders worden begrepen dan 'een rood vierkant'. Door deze nauwkeurigheid kan er veel meer worden gedaan om het perfecte beeld rechtstreeks uit tekst te halen, zelfs voordat de meer geavanceerde functies of fijnafstemming worden gebruikt waar Stable Diffusion bekend om staat.

Wat is SageMaker JumpStart

Met SageMaker JumpStart kunnen ML-beoefenaars kiezen uit een brede selectie van state-of-the-art modellen voor use cases zoals het schrijven van inhoud, het genereren van afbeeldingen, het genereren van codes, het beantwoorden van vragen, copywriting, samenvatting, classificatie, het ophalen van informatie en meer. ML-beoefenaars kunnen basismodellen implementeren in speciale SageMaker-instanties vanuit een netwerkgeïsoleerde omgeving en modellen aanpassen met behulp van SageMaker voor modeltraining en implementatie. Het SDXL-model is vandaag te vinden in Amazon SageMaker Studio en is op het moment van schrijven beschikbaar in us-east-1, us-east-2, us-west-2, eu-west-1, ap-northeast-1 en ap-southeast-2 Regio's.

Overzicht oplossingen

In dit bericht laten we zien hoe u SDXL 1.0 in SageMaker implementeert en gebruikt om afbeeldingen te genereren met zowel tekst-naar-afbeelding- als afbeelding-naar-afbeelding-prompts.

SageMaker Studio is een webgebaseerde geïntegreerde ontwikkelomgeving (IDE) voor ML waarmee u uw ML-modellen kunt bouwen, trainen, debuggen, implementeren en bewaken. Raadpleeg voor meer informatie over hoe u aan de slag kunt gaan en SageMaker Studio kunt instellen Amazon SageMaker Studio.

Zodra u zich in de gebruikersinterface van SageMaker Studio bevindt, opent u SageMaker JumpStart en zoekt u naar Stable Diffusion XL. Kies de SDXL 1.0-modelkaart, waarmee een voorbeeldnotitieblok wordt geopend. Dit betekent dat u alleen verantwoordelijk bent voor de rekenkosten. Er zijn geen bijbehorende modelkosten. SDXL 1.0 met gesloten gewicht biedt voor SageMaker geoptimaliseerde scripts en containers met een snellere inferentietijd en kan op een kleinere instantie worden uitgevoerd in vergelijking met SDXL 1.0 met open gewicht. Het voorbeeldnotitieblok leidt u door de stappen, maar we bespreken ook hoe u het model later in dit bericht kunt ontdekken en implementeren.

In de volgende secties laten we zien hoe u SDXL 1.0 kunt gebruiken om fotorealistische afbeeldingen met kortere aanwijzingen te maken en tekst in afbeeldingen te genereren. Stable Diffusion XL 1.0 biedt verbeterde beeldcompositie en gezichtsgeneratie met verbluffende beelden en realistische esthetiek.

Stabiele diffusie XL 1.0-parameters

Dit zijn de parameters die worden gebruikt door SXDL 1.0:

  • cfg_schaal – Hoe strikt het diffusieproces zich houdt aan de prompttekst.
  • hoogte en breedte – De hoogte en breedte van de afbeelding in pixels.
  • stappen – Het aantal uit te voeren diffusiestappen.
  • zaad - Willekeurig ruiszaad. Als er een seed wordt geleverd, is de resulterende gegenereerde afbeelding deterministisch.
  • merklap – Welke sampler te gebruiken voor het diffusieproces om onze generatie mee te denoise.
  • tekst_prompts - Een reeks tekstprompts om te gebruiken voor het genereren.
  • gewicht – Geeft elke prompt een specifiek gewicht

Raadpleeg de Stability AI's voor meer informatie tekst naar afbeelding documentatie.

De volgende code is een voorbeeld van de invoergegevens die bij de prompt worden geleverd:

{ "cfg_scale": 7, "height": 1024, "width": 1024, "steps": 50, "seed": 42, "sampler": "K_DPMPP_2M", "text_prompts": [ { "text": "A photograph of fresh pizza with basil and tomatoes, from a traditional oven", "weight": 1 } ]
}

Alle voorbeelden in dit bericht zijn gebaseerd op het voorbeeldnotitieblok voor Stability Diffusion XL 1.0, dat te vinden is op Stability AI's GitHub repo.

Genereer afbeeldingen met behulp van SDXL 1.0

In de volgende voorbeelden richten we ons op de mogelijkheden van Stability Diffusion XL 1.0-modellen, waaronder superieur fotorealisme, verbeterde beeldcompositie en de mogelijkheid om realistische gezichten te genereren. We onderzoeken ook de aanzienlijk verbeterde visuele esthetiek, resulterend in visueel aantrekkelijke resultaten. Daarnaast demonstreren we het gebruik van kortere prompts, waardoor beschrijvende afbeeldingen gemakkelijker kunnen worden gemaakt. Ten slotte illustreren we hoe de tekst in afbeeldingen nu beter leesbaar is, waardoor de algehele kwaliteit van de gegenereerde inhoud verder wordt verrijkt.

In het volgende voorbeeld ziet u hoe u een eenvoudige prompt gebruikt om gedetailleerde afbeeldingen te krijgen. Door slechts een paar woorden in de prompt te gebruiken, was het in staat om een ​​complexe, gedetailleerde en esthetisch aantrekkelijke afbeelding te creëren die lijkt op de verstrekte prompt.

text = "photograph of latte art of a cat" output = deployed_model.predict(GenerationRequest(text_prompts=[TextPrompt(text=text)], seed=5, height=640, width=1536, sampler="DDIM", ))
decode_and_show(output)

Vervolgens tonen we het gebruik van de style_preset invoerparameter, die alleen beschikbaar is op SDXL 1.0. Passeren in een style_preset parameter leidt het model voor het genereren van afbeeldingen naar een bepaalde stijl.

Enkele van de beschikbare style_preset parameters zijn: enhance, anime, photographic, digital-art, comic-book, fantasy-art, line-art, analog-film, neon-punk, isometric, low-poly, origami, modeling-compound, cinematic, 3d-mode, pixel-art en tile-texture. Deze lijst met voorinstellingen voor stijlen kan worden gewijzigd; raadpleeg de nieuwste release en documentatie voor updates.

Voor dit voorbeeld gebruiken we een prompt om een ​​theepot met een te genereren style_preset of origami. Het model was in staat om een ​​afbeelding van hoge kwaliteit te genereren in de geleverde kunststijl.

output = deployed_model.predict(GenerationRequest(text_prompts=[TextPrompt(text="teapot")], style_preset="origami", seed = 3, height = 1024, width = 1024 ))

Laten we wat meer stijlpresets proberen met verschillende prompts. Het volgende voorbeeld toont een stijlvoorinstelling voor het genereren van portretten style_preset="photographic" met de prompt "portret van een oude en vermoeide leeuw echte pose."

text = "portrait of an old and tired lion real pose" output = deployed_model.predict(GenerationRequest(text_prompts=[TextPrompt(text=text)], style_preset="photographic", seed=111, height=640, width=1536, ))

Laten we nu dezelfde prompt ("portret van een oude en vermoeide leeuw, echte pose") proberen met boetseerpasta als de vooraf ingestelde stijl. De uitvoerafbeelding is een afzonderlijke afbeelding die is gemaakt zonder een bepaald gevoel te hebben dat door het model wordt meegedeeld, waardoor absolute vrijheid van stijl wordt gegarandeerd.

Multiprompt met SDXL 1.0

Zoals we hebben gezien, is een van de kernfundamenten van het model de mogelijkheid om afbeeldingen te genereren via prompts. SDXL 1.0 ondersteunt multiprompts. Met multi-prompting kunt u concepten mixen door aan elke prompt een specifiek gewicht toe te kennen. Zoals je kunt zien in de volgende gegenereerde afbeelding, heeft het een jungle-achtergrond met hoog, heldergroen gras. Deze afbeelding is gegenereerd met behulp van de volgende aanwijzingen. U kunt dit vergelijken met een enkele prompt uit ons eerdere voorbeeld.

text1 = "portrait of an old and tired lion real pose"
text2 = "jungle with tall bright green grass" output = deployed_model.predict(GenerationRequest( text_prompts=[TextPrompt(text=text1), TextPrompt(text=text2, weight=0.7)], style_preset="photographic", seed=111, height=640, width=1536, ))

Ruimtelijk bewust gegenereerde beelden en negatieve aanwijzingen

Vervolgens kijken we naar posterontwerp met een gedetailleerde prompt. Zoals we eerder zagen, kunt u met multi-prompting concepten combineren om nieuwe en unieke resultaten te creëren.

In dit voorbeeld is de prompt zeer gedetailleerd wat betreft de positie, het uiterlijk, de verwachtingen en de omgeving van het onderwerp. Het model probeert ook afbeeldingen te vermijden die vervormd zijn of slecht worden weergegeven met behulp van een negatieve prompt. Het gegenereerde beeld toont ruimtelijk gerangschikte objecten en onderwerpen.

text = “Een schattige pluizige witte kat staat op zijn achterpoten en tuurt nieuwsgierig in een sierlijke gouden spiegel. Maar in de weerspiegeling ziet de kat niet zichzelf, maar een machtige leeuw. De spiegel verlichtte met een zachte gloed tegen een zuiver witte achtergrond.”


text = "A cute fluffy white cat stands on its hind legs, peering curiously into an ornate golden mirror. But in the reflection, the cat sees not itself, but a mighty lion. The mirror illuminated with a soft glow against a pure white background." negative_prompts = ['distorted cat features', 'distorted lion features', 'poorly rendered'] output = deployed_model.predict(GenerationRequest( text_prompts=[TextPrompt(text=text)], style_preset="enhance", seed=43, height=640, width=1536, steps=100, cfg_scale=7, negative_prompts=negative_prompts ))

Laten we een ander voorbeeld proberen, waarbij we dezelfde negatieve prompt behouden, maar de gedetailleerde prompt en vooraf ingestelde stijl wijzigen. Zoals u kunt zien, rangschikt de gegenereerde afbeelding niet alleen objecten ruimtelijk, maar verandert ook de stijlvoorinstellingen met aandacht voor details zoals de sierlijke gouden spiegel en de weerspiegeling van alleen het onderwerp.

text = "A cute fluffy white cat stands on its hind legs, peering curiously into an ornate golden mirror. In the reflection the cat sees itself." negative_prompts = ['distorted cat features', 'distorted lion features', 'poorly rendered'] output = deployed_model.predict(GenerationRequest( text_prompts=[TextPrompt(text=text)], style_preset="neon-punk", seed=4343434, height=640, width=1536, steps=150, cfg_scale=7, negative_prompts=negative_prompts ))

Gezichtsgeneratie met SDXL 1.0

In dit voorbeeld laten we zien hoe SDXL 1.0 verbeterde beeldcompositie en gezichtsgeneratie creëert met realistische kenmerken zoals handen en vingers. Het gegenereerde beeld is van een door AI gecreëerde menselijke figuur met duidelijk opgestoken handen. Let op de details in de vingers en de pose. Een door AI gegenereerd beeld zoals dit zou anders amorf zijn geweest.

text = "Photo of an old man with hands raised, real pose." output = deployed_model.predict(GenerationRequest( text_prompts=[TextPrompt(text=text)], style_preset="photographic", seed=11111, height=640, width=1536, steps=100, cfg_scale=7, ))

Tekstgeneratie met behulp van SDXL 1.0

SDXL is klaar voor complexe workflows voor het ontwerpen van afbeeldingen, waaronder het genereren van tekst in afbeeldingen. Deze voorbeeldprompt demonstreert deze mogelijkheid. Kijk hoe duidelijk de tekstgeneratie is met behulp van SDXL en let op de vooraf ingestelde stijl van filmisch.

text = "Write the following word: Dream" output = deployed_model.predict(GenerationRequest(text_prompts=[TextPrompt(text=text)], style_preset="cinematic", seed=15, height=640, width=1536, sampler="DDIM", steps=32, ))

Ontdek SDXL 1.0 van SageMaker JumpStart

SageMaker JumpStart onboardt en onderhoudt basismodellen die u kunt openen, aanpassen en integreren in uw ML-levenscycli. Sommige modellen zijn open gewichtsmodellen waarmee u modelgewichten en scripts kunt openen en wijzigen, terwijl sommige gesloten gewichtsmodellen zijn waarmee u geen toegang hebt om het IP-adres van modelaanbieders te beschermen. Voor modellen met een gesloten gewicht moet u zich abonneren op het model via de AWS Marketplace-modeldetailpagina, en SDXL 1.0 is op dit moment een model met een gesloten gewicht. In deze sectie bespreken we hoe u een gesloten gewichtsmodel van SageMaker Studio kunt ontdekken, abonneren en implementeren.

U krijgt toegang tot SageMaker JumpStart door te kiezen snelle start voor Kant-en-klare en geautomatiseerde oplossingen op de SageMaker Studio Home pagina.

Vanaf de startpagina van SageMaker JumpStart kunt u zoeken naar oplossingen, modellen, notebooks en andere bronnen. De volgende schermafbeelding toont een voorbeeld van de bestemmingspagina met vermelde oplossingen en funderingsmodellen.

Elk model heeft een modelkaart, zoals weergegeven in de volgende schermafbeelding, die de modelnaam bevat, of deze al dan niet nauwkeurig kan worden afgesteld, de naam van de provider en een korte beschrijving van het model. U vindt het model Stable Diffusion XL 1.0 in de Basismodel: beeldgeneratie carrousel of zoek ernaar in het zoekvak.

Je kan kiezen Stabiele diffusie XL 1.0 om een ​​voorbeeldnotitieblok te openen dat u begeleidt bij het gebruik van het SDXL 1.0-model. Het voorbeeldnotitieblok wordt geopend als alleen-lezenmodus; je moet kiezen Notitieboek importeren om het te runnen.

Nadat u de notebook hebt geïmporteerd, moet u de juiste notebookomgeving selecteren (image, kernel, instantietype, enzovoort) voordat u de code uitvoert.

Implementeer SDXL 1.0 vanuit SageMaker JumpStart

In deze sectie laten we zien hoe u zich abonneert en het model implementeert.

  1. Open de modellijstpagina in AWS Marketplace met behulp van de link die beschikbaar is in het voorbeeldnotitieblok in SageMaker JumpStart.
  2. Kies op de AWS Marketplace-lijst Blijf abonneren.

Als u niet over de benodigde machtigingen beschikt om het model te bekijken of u erop te abonneren, neemt u contact op met uw AWS-beheerder of inkoopcontactpersoon. Veel ondernemingen kunnen de machtigingen van AWS Marketplace beperken om de acties te beheren die iemand kan ondernemen in de AWS Marketplace Management Portal.

  1. Kies Doorgaan met abonneren.
  2. Op de Abonneer u op deze software pagina, bekijk de prijsgegevens en Licentieovereenkomst voor eindgebruikers (EULA). Indien aangenaam, kies Accepteer bod.
  3. Kies Doorgaan naar configuratie om te beginnen met het configureren van uw model.
  4. Kies een ondersteunde regio.

U ziet een product-ARN weergegeven. Dit is het modelpakket ARN dat u moet opgeven bij het maken van een inzetbaar model met Boto3.

  1. Kopieer de ARN die overeenkomt met uw regio en specificeer hetzelfde in de celinstructie van de notebook.

ARN-informatie is mogelijk al beschikbaar in het voorbeeldnotitieblok.

  1. Nu ben je klaar om het voorbeeldnotitieboekje te volgen.

U kunt ook doorgaan vanuit AWS Marketplace, maar we raden u aan het voorbeeldnotitieboekje in SageMaker Studio te volgen om beter te begrijpen hoe implementatie werkt.

Opruimen

Wanneer u klaar bent met werken, kunt u het eindpunt verwijderen om het Amazon Elastic Compute-cloud (Amazon EC2) instanties die eraan zijn gekoppeld en stoppen met factureren.

Haal uw lijst met SageMaker-eindpunten als volgt op met behulp van de AWS CLI:

!aws sagemaker list-endpoints

Verwijder vervolgens de eindpunten:

deployed_model.sagemaker_session.delete_endpoint(endpoint_name)

Conclusie

In dit bericht hebben we je laten zien hoe je aan de slag kunt met het nieuwe SDXL 1.0-model in SageMaker Studio. Met dit model kunt u profiteren van de verschillende functies die SDXL biedt om realistische afbeeldingen te maken. Omdat basismodellen vooraf zijn getraind, kunnen ze ook helpen de kosten voor training en infrastructuur te verlagen en maatwerk voor uw gebruik mogelijk te maken.

Resources


Over de auteurs

juni gewonnen is een productmanager bij SageMaker JumpStart. Hij richt zich op het gemakkelijk vindbaar en bruikbaar maken van basismodellen om klanten te helpen bij het bouwen van generatieve AI-applicaties.

Mani Khanuja is een Artificial Intelligence en Machine Learning Specialist SA bij Amazon Web Services (AWS). Ze helpt klanten die machine learning gebruiken om hun zakelijke uitdagingen op te lossen met behulp van de AWS. Ze besteedt het grootste deel van haar tijd aan het duiken in de diepte en het onderwijzen van klanten aan AI/ML-projecten met betrekking tot computervisie, natuurlijke taalverwerking, prognoses, ML aan de rand en meer. Ze is gepassioneerd door ML op het randje, daarom heeft ze haar eigen laboratorium gecreëerd met een zelfrijdende kit en productielijn voor het maken van prototypes, waar ze veel van haar vrije tijd doorbrengt.

Nitin Eusebius is Sr. Enterprise Solutions Architect bij AWS met ervaring in Software Engineering, Enterprise Architecture en AI/ML. Hij werkt samen met klanten om hen te helpen bij het bouwen van goed ontworpen applicaties op het AWS-platform. Hij is gepassioneerd door het oplossen van technologische uitdagingen en het helpen van klanten met hun cloudreis.

Suleman Patel is een Senior Solutions Architect bij Amazon Web Services (AWS), met een speciale focus op machine learning en modernisering. Gebruikmakend van zijn expertise in zowel business als technologie, helpt Suleman klanten bij het ontwerpen en bouwen van oplossingen die echte zakelijke problemen aanpakken. Als hij niet helemaal opgaat in zijn werk, houdt Suleman ervan om het buitenleven te verkennen, roadtrips te maken en heerlijke gerechten te koken in de keuken.

Vivek MadanDr Vivek Madan is een Applied Scientist bij het Amazon SageMaker JumpStart-team. Hij promoveerde aan de Universiteit van Illinois in Urbana-Champaign en was een postdoctoraal onderzoeker bij Georgia Tech. Hij is een actief onderzoeker op het gebied van machine learning en algoritmeontwerp en heeft artikelen gepubliceerd op EMNLP-, ICLR-, COLT-, FOCS- en SODA-conferenties.

spot_img

Laatste intelligentie

spot_img