Mange kunder, herunder dem inden for kreativ reklame, medier og underholdning, e-handel og mode, har ofte brug for at ændre baggrunden i et stort antal billeder. Typisk involverer dette manuel redigering af hvert billede med fotosoftware. Dette kan tage en stor indsats, især for store partier af billeder. Imidlertid, Amazonas grundfjeld , AWS-trinfunktioner gør det ligetil at automatisere denne proces i stor skala.
Amazon Bedrock tilbyder den generative AI-fundamentmodel Amazon Titan Image Generator G1, som automatisk kan ændre baggrunden for et billede ved hjælp af en teknik kaldet udmaling. Step Functions giver dig mulighed for at skabe en automatiseret arbejdsgang, der problemfrit forbindes med Amazon Bedrock og andre AWS-tjenester. Sammen strømliner Amazon Bedrock og Step Functions hele processen med automatisk ændring af baggrunde på tværs af flere billeder.
Dette indlæg introducerer en løsning, der forenkler processen med at ændre baggrunde i flere billeder. Ved at udnytte mulighederne for generativ AI med Amazon Bedrock og Titan Image Generator G1-modellen, kombineret med Step Functions, genererer denne løsning effektivt billeder med den ønskede baggrund. Dette indlæg giver indsigt i løsningens indre funktioner og hjælper dig med at forstå de designvalg, der er truffet for at bygge denne egen tilpassede løsning.
se GitHub repository for detaljerede instruktioner om implementering af denne løsning.
Løsningsoversigt
Lad os se på, hvordan løsningen fungerer på et højt niveau, før vi dykker dybere ned i specifikke elementer og de anvendte AWS-tjenester. Følgende diagram giver et forenklet billede af løsningsarkitekturen og fremhæver nøgleelementerne.
Arbejdsgangen består af følgende trin:
- En bruger uploader flere billeder til en Amazon Simple Storage Service (Amazon S3) spand via en Streamlit webapplikation.
- Streamlit-webapplikationen kalder en Amazon API Gateway REST API-endepunkt integreret med Amazon-anerkendelse DetectLabels API, som registrerer etiketter for hvert billede.
- Ved indsendelse opdaterer Streamlit-webapplikationen en Amazon DynamoDB tabel med billeddetaljer.
- DynamoDB-opdateringen udløser en AWS Lambda funktion, som starter et Step Functions-arbejdsforløb.
- Workflowet Trinfunktioner kører følgende trin for hvert billede:
5.1 Konstruerer en anmodningsnyttelast til Amazonas grundfjeldInvokeModel
API.
5.2 Påberåber sig Amazonas grundfjeldInvokeModel
API handling.
5.3 Parser et billede fra svaret og gemmer det på en S3-placering.
5.4 Opdaterer billedstatus i en DynamoDB-tabel. - Workflowet Trinfunktioner aktiverer en Lambda-funktion for at generere en statusrapport.
- Arbejdsgangen sender en e-mail vha Amazon Simple Notification Service (Amazon SNS).
Som vist på det følgende skærmbillede giver Streamlit-webapplikationen dig mulighed for at uploade billeder og indtaste tekstprompter for at angive ønskede baggrunde, negative prompter og udmalingstilstand til billedgenerering. Du kan også se og fjerne uønskede etiketter knyttet til hvert uploadet billede, som du ikke ønsker at beholde i de endeligt genererede billeder.
I dette eksempel er prompten for baggrunden "London city background." Automatiseringsprocessen genererer nye billeder baseret på de originale uploadede billeder med London som baggrund.
Strømbelyst webapplikation og upload af billeder
En Streamlit webapplikation fungerer som frontend for denne løsning. For at beskytte applikationen mod uautoriseret adgang, integreres den med en Amazon Cognito brugerpulje. API Gateway bruger en Amazon Cognito-autorisator at autentificere anmodninger. Webapplikationen fuldfører følgende trin:
- For hvert valgt billede henter den etiketter via Amazon Rekognition ved hjælp af et API Gateway REST API-slutpunkt.
- Ved indsendelse uploader applikationen billeder til en S3-bøtte.
- Applikationen opdaterer en DynamoDB-tabel med relevante parametre, billednavne og tilknyttede etiketter for hvert billede ved hjælp af et andet API Gateway REST API-slutpunkt.
Billedbehandling arbejdsgang
Når DynamoDB-tabellen opdateres, DynamoDB-streams udløser en Lambda-funktion for at starte en ny Step Functions-arbejdsgang. Følgende er en prøveanmodning til arbejdsgangen:
Trinfunktioner-arbejdsgangen udfører efterfølgende følgende tre trin:
- Udskift baggrunden for alle billeder.
- Generer en statusrapport.
- Send en e-mail via Amazon SNS.
Følgende skærmbillede illustrerer arbejdsgangen Trinfunktioner.
Lad os se på hvert trin mere detaljeret.
Udskift baggrund for alle billeder
Trinfunktioner bruger en Distribueret kort at behandle hvert billede i parallelle underordnede arbejdsgange. Det distribuerede kort tillader behandling med høj samtidighed. Hvert underordnede arbejdsforløb har sin egen separate kørselshistorik fra den overordnede arbejdsgang.
Trinfunktioner bruger en InvokeModel-optimeret API-handling til Amazon Bedrock. API'en accepterer anmodninger og svar på op til 25 MB. Trinfunktioner har dog en grænse på 256 KB for tilstandens nyttelast input og output. For at understøtte større billeder bruger løsningen en S3-spand, hvor den InvokeModel
API læser data fra og skriver resultatet til. Følgende er konfigurationen for InvokeModel
API til Amazon Bedrock-integration:
Input S3Uri
parameter angiver kildeplaceringen for at hente inputdataene. Det Output S3Uri
parameter angiver destinationen til at skrive API-svaret.
En Lambda-funktion gemmer anmodningens nyttelast som en JSON-fil i den angivne Input S3Uri
Beliggenhed. Det InvokeModel
API bruger denne input nyttelast til at generere billeder med den angivne baggrund:
Titan Image Generator G1-modellen understøtter følgende parametre til billedgenerering:
- opgavetype – Angiver udmalingsmetoden til at erstatte billedets baggrund.
- tekst – En tekstmeddelelse for at definere baggrunden.
- negativ tekst – En tekstprompt for at definere, hvad der ikke skal inkluderes i billedet.
- maskePrompt – En tekstprompt, der definerer masken. Det svarer til etiketter, som du ønsker at beholde i de endeligt genererede billeder.
- maskeBillede – JPEG- eller PNG-billedet kodet i base64.
- outPaintingMode – Angiver, om der skal tillades ændring af pixels inde i masken eller ej. DEFAULT tillader ændring af billedet inde i masken for at holde det i overensstemmelse med den rekonstruerede baggrund. PRECISE forhindrer ændring af billedet inde i masken.
- antal billeder – Antallet af billeder, der skal genereres.
- kvalitet – Kvaliteten af de genererede billeder:
standard
orpremium
. - cfgSkala – Angiver, hvor stærkt det genererede billede skal overholde prompten.
- højde – Billedets højde i pixels.
- bredde – Billedets bredde i pixels.
Amazonas grundfjeld InvokeModel
API genererer et svar med et kodet billede i Output S3Uri
Beliggenhed. En anden Lambda-funktion analyserer billedet fra svaret, afkoder det fra base64 og gemmer billedfilen på følgende placering: s3://<Image Bucket>/generated-image-file/<year>/<month>/<day>/<timestamp>/
.
Endelig opdaterer en underordnet arbejdsgang en DynamoDB-tabel med billedgenereringsstatus og markerer den som enten lykkedes or mislykkedes, og herunder detaljer som f.eks ImageName
, Cause
, Error
og Status
.
Generer en statusrapport
Efter billedgenereringsprocessen henter en Lambda-funktion statusdetaljerne fra DynamoDB. Den kompilerer disse detaljer dynamisk til en omfattende statusrapport i JSON-format. Den gemmer derefter den genererede statusrapport en JSON-fil på følgende placering: s3://<Image Bucket>/status-report-files/<year>/<month>/<day>/<timestamp>/
. ITOps-teamet kan integrere denne rapport med deres eksisterende meddelelsessystem for at spore, om billedbehandlingen er gennemført med succes. For erhvervsbrugere kan du udvide dette yderligere for at generere en rapport i CSV-format.
Send en e-mail via Amazon SNS
Trinfunktioner påkalder en Amazon SNS API-handling for at sende en e-mail. E-mailen indeholder detaljer, herunder S3-placeringen for statusrapporten og de endelige billedfiler. Følgende er eksempel på e-mail.
Konklusion
I dette indlæg gav vi et overblik over en prøveløsning, der demonstrerer automatiseringen af at ændre billedbaggrunde i skala ved hjælp af Amazon Bedrock og Step Functions. Vi forklarede også hvert enkelt element i løsningen i detaljer. Ved at bruge Step Functions-optimerede integration med Amazon Bedrock, Distributed Map og Titan Image Generator G1-modellen erstatter løsningen effektivt billedernes baggrunde parallelt, hvilket øger produktiviteten og skalerbarheden.
For at implementere løsningen, se instruktionerne i GitHub repository.
Ressourcer
For at lære mere om Amazon Bedrock, se følgende ressourcer:
For at lære mere om Titan Image Generator G1-modellen, se følgende ressourcer:
For at lære mere om brugen af Amazon Bedrock med Step Functions, se følgende ressourcer:
Om forfatteren
Chetan Makvana er Senior Solutions Architect med Amazon Web Services. Han arbejder sammen med AWS-partnere og kunder for at give dem arkitektonisk vejledning til at bygge skalerbar arkitektur og implementere strategier til at drive indførelse af AWS-tjenester. Han er en teknologientusiast og en bygherre med et kerneinteresseområde inden for generativ AI, serverløs og DevOps. Uden for arbejdet nyder han at se shows, rejse og musik.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/automate-the-process-to-change-image-backgrounds-using-amazon-bedrock-and-aws-step-functions/
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 130
- 14
- 22
- 25
- 32
- 7
- 8
- a
- Om
- accepterer
- adgang
- tværs
- Handling
- klæbe
- Vedtagelse
- Voksen
- Reklame
- AI
- Alle
- tillade
- tillader
- også
- Amazon
- Amazon-anerkendelse
- Amazon Web Services
- an
- ,
- En anden
- api
- Anvendelse
- arkitektonisk
- arkitektur
- ER
- OMRÅDE
- AS
- forbundet
- At
- autentificere
- automatisere
- Automatiseret
- automatisk
- Automation
- AWS
- AWS-trinfunktioner
- baggrund
- baggrunde
- baseret
- før
- bygge
- Builder
- Bygning
- bus
- virksomhed
- by
- kaldet
- Opkald
- CAN
- kapaciteter
- lave om
- skiftende
- barn
- valg
- By
- kombineret
- Afsluttet
- Fuldender
- omfattende
- Konfiguration
- forbinder
- konsekvent
- består
- konstruktioner
- indeholder
- Core
- svarer
- skabe
- Kreativ
- skik
- Kunder
- data
- dybere
- Standard
- definere
- definerer
- demonstrerer
- indsætte
- implementering
- Design
- ønskes
- destination
- detail
- detaljeret
- detaljer
- diagram
- distribueret
- dykning
- Dog
- Dont
- køre
- dynamisk
- hver
- ecommerce
- effektivt
- indsats
- enten
- element
- elementer
- kodet
- Endpoint
- styrke
- Indtast
- Underholdning
- entusiast
- Hele
- især
- eksempel
- eksisterende
- Udvid
- forklarede
- Mode
- File (Felt)
- Filer
- endelige
- efter
- Til
- format
- Foundation
- fra
- frontend
- funktion
- funktioner
- yderligere
- g1
- gateway
- generere
- genereret
- genererer
- generation
- generative
- Generativ AI
- generator
- vejledning
- udnyttelse
- he
- højde
- hjælper
- Høj
- højdepunkter
- historie
- Hvordan
- Men
- HTML
- HTTPS
- ID
- if
- illustrerer
- billede
- billeder
- gennemføre
- in
- omfatter
- Herunder
- indre
- indgang
- indvendig
- indsigt
- anvisninger
- integrere
- integreret
- Integrerer
- integration
- interesse
- ind
- Introducerer
- påberåber sig
- involverer
- IT
- ITS
- jpg
- json
- Holde
- Nøgle
- Etiketter
- stor
- større
- LÆR
- Niveau
- GRÆNSE
- placering
- London
- Se
- Lot
- Lav
- lavet
- lave
- mand
- mand
- manuelt
- kort
- mærkning
- maske
- Medier
- metode
- tilstand
- model
- mere
- flere
- Musik
- navne
- Behov
- negativ
- Ny
- underretning
- nummer
- of
- Tilbud
- tit
- on
- optimeret
- or
- ordrer
- original
- Andet
- output
- uden for
- oversigt
- egen
- Parallel
- parameter
- parametre
- partnere
- udfører
- person,
- foto
- plato
- Platon Data Intelligence
- PlatoData
- pool
- Indlæg
- brug
- Premium
- forhindrer
- behandle
- forarbejdning
- produktivitet
- prompter
- beskytte
- give
- forudsat
- giver
- kvalitet
- henvise
- relevant
- Fjern
- erstatte
- indberette
- anmode
- anmodninger
- Løsning
- Ressourcer
- svar
- reaktioner
- REST
- resultere
- tilbageholde
- Kør
- løber
- prøve
- Skalerbarhed
- skalerbar
- Scale
- problemfrit
- se
- valgt
- send
- sender
- senior
- adskille
- Serverless
- tjener
- Tjenester
- bør
- vist
- Shows
- Simpelt
- forenklet
- forenkler
- Software
- løsninger
- Løsninger
- Kilde
- specifikke
- specificeret
- starte
- starter
- Tilstand
- Status
- Trin
- Steps
- opbevaring
- ligetil
- strategier
- strømline
- String
- kraftigt
- indsendelse
- Efterfølgende
- Succesfuld
- sådan
- support
- Understøtter
- systemet
- bord
- Tag
- hold
- teknik
- Teknologier
- tekst
- at
- The Source
- deres
- Them
- derefter
- Disse
- denne
- dem
- tre
- titan
- til
- sammen
- spor
- Traveling
- typisk
- uberettiget
- forstå
- uønsket
- Opdatering
- opdateret
- opdateringer
- uploadet
- anvendte
- Bruger
- brugere
- bruger
- ved brug af
- via
- Specifikation
- ønsker
- ser
- we
- web
- Webapplikation
- webservices
- Hvad
- hvorvidt
- som
- bredde
- med
- Arbejde
- workflow
- arbejdsgange
- arbejdssteder
- virker
- skriver
- Du
- zephyrnet