Mange kunder, inkludert de innen kreativ reklame, media og underholdning, e-handel og mote, trenger ofte å endre bakgrunnen i et stort antall bilder. Vanligvis innebærer dette å manuelt redigere hvert bilde med fotoprogramvare. Dette kan kreve mye innsats, spesielt for store grupper med bilder. Derimot, Amazonas grunnfjell og AWS trinnfunksjoner gjør det enkelt å automatisere denne prosessen i stor skala.
Amazon Bedrock tilbyr den generative AI-fundamentmodellen Amazon Titan Image Generator G1, som automatisk kan endre bakgrunnen til et bilde ved hjelp av en teknikk som kalles utmaling. Step Functions lar deg lage en automatisert arbeidsflyt som sømløst kobles til Amazon Bedrock og andre AWS-tjenester. Sammen effektiviserer Amazon Bedrock og Step Functions hele prosessen med automatisk endring av bakgrunner på tvers av flere bilder.
Dette innlegget introduserer en løsning som forenkler prosessen med å endre bakgrunn i flere bilder. Ved å utnytte mulighetene til generativ AI med Amazon Bedrock og Titan Image Generator G1-modellen, kombinert med Step Functions, genererer denne løsningen effektivt bilder med ønsket bakgrunn. Dette innlegget gir innsikt i den indre funksjonen til løsningen og hjelper deg å forstå designvalgene som er gjort for å bygge denne egen tilpassede løsningen.
Gå til GitHub repository for detaljerte instruksjoner om distribusjon av denne løsningen.
Løsningsoversikt
La oss se på hvordan løsningen fungerer på et høyt nivå før vi dykker dypere inn i spesifikke elementer og AWS-tjenestene som brukes. Følgende diagram gir en forenklet oversikt over løsningsarkitekturen og fremhever nøkkelelementene.
Arbeidsflyten består av følgende trinn:
- En bruker laster opp flere bilder til en Amazon enkel lagringstjeneste (Amazon S3) bøtte via en Streamlit nettapplikasjon.
- Streamlit-nettapplikasjonen kaller en Amazon API-gateway REST API-endepunkt integrert med Amazon-anerkjennelse DetectLabels API, som oppdager etiketter for hvert bilde.
- Ved innsending oppdaterer Streamlit nettapplikasjon en Amazon DynamoDB tabell med bildedetaljer.
- DynamoDB-oppdateringen utløser en AWS Lambda funksjon, som starter en Step Functions-arbeidsflyt.
- Arbeidsflyten for trinnfunksjoner kjører følgende trinn for hvert bilde:
5.1 Konstruerer en forespørselsnyttelast for Amazonas grunnfjellInvokeModel
API.
5.2 Påkaller Amazonas grunnfjellInvokeModel
API-handling.
5.3 Analyserer et bilde fra svaret og lagrer det på en S3-plassering.
5.4 Oppdaterer bildestatusen i en DynamoDB-tabell. - Arbeidsflyten Step Functions starter en Lambda-funksjon for å generere en statusrapport.
- Arbeidsflyten sender en e-post vha Amazon enkel varslingstjeneste (Amazon SNS).
Som vist i følgende skjermbilde lar Streamlit-nettapplikasjonen deg laste opp bilder og skrive inn tekstmeldinger for å spesifisere ønsket bakgrunn, negative meldinger og utmalingsmodus for bildegenerering. Du kan også se og fjerne uønskede etiketter knyttet til hvert opplastede bilde som du ikke vil beholde i de endelig genererte bildene.
I dette eksemplet er ledeteksten for bakgrunnen "London city background." Automatiseringsprosessen genererer nye bilder basert på de originale opplastede bildene med London som bakgrunn.
Strømbelyst nettapplikasjon og opplasting av bilder
En Streamlit webapplikasjon fungerer som frontend for denne løsningen. For å beskytte applikasjonen mot uautorisert tilgang, integreres den med en Amazon Cognito brukerpool. API-gateway bruker en Amazon Cognito-autorisator for å autentisere forespørsler. Nettapplikasjonen fullfører følgende trinn:
- For hvert valgt bilde henter den etiketter via Amazon Rekognition ved å bruke et API Gateway REST API-endepunkt.
- Ved innsending laster applikasjonen opp bilder til en S3-bøtte.
- Applikasjonen oppdaterer en DynamoDB-tabell med relevante parametere, bildenavn og tilhørende etiketter for hvert bilde ved å bruke et annet API Gateway REST API-endepunkt.
Arbeidsflyt for bildebehandling
Når DynamoDB-tabellen oppdateres, DynamoDB Strømmer utløser en Lambda-funksjon for å starte en ny Step Functions-arbeidsflyt. Følgende er en eksempelforespørsel for arbeidsflyten:
Arbeidsflyten for trinnfunksjoner utfører deretter følgende tre trinn:
- Bytt ut bakgrunnen for alle bildene.
- Generer en statusrapport.
- Send en e-post via Amazon SNS.
Følgende skjermbilde illustrerer arbeidsflyten for trinnfunksjoner.
La oss se på hvert trinn mer detaljert.
Erstatt bakgrunn for alle bilder
Step Functions bruker en Distribuert kart å behandle hvert bilde i parallelle underordnede arbeidsflyter. Det distribuerte kartet tillater behandling med høy samtidighet. Hver underordnede arbeidsflyt har sin egen separate kjørehistorikk fra den overordnede arbeidsflyten.
Step Functions bruker en InvokeModel-optimalisert API-handling for Amazon Bedrock. API-en godtar forespørsler og svar som er opptil 25 MB. Step Functions har imidlertid en grense på 256 KB på statens nyttelastinngang og -utgang. For å støtte større bilder bruker løsningen en S3-bøtte der InvokeModel
API leser data fra og skriver resultatet til. Følgende er konfigurasjonen for InvokeModel
API for Amazon Bedrock-integrasjon:
De Input S3Uri
parameter spesifiserer kildeplasseringen for å hente inndataene. De Output S3Uri
parameter angir destinasjonen for å skrive API-svaret.
En Lambda-funksjon lagrer forespørselsnyttelasten som en JSON-fil i den spesifiserte Input S3Uri
plassering. De InvokeModel
API bruker denne nyttelasten for å generere bilder med den angitte bakgrunnen:
Titan Image Generator G1-modellen støtter følgende parametere for bildegenerering:
- oppgavetype – Spesifiserer utmalingsmetoden for å erstatte bakgrunnen til bildet.
- tekst – En tekstmelding for å definere bakgrunnen.
- negativ tekst – En tekstmelding for å definere hva som ikke skal inkluderes i bildet.
- maskPrompt – En tekstmelding som definerer masken. Det tilsvarer etiketter du ønsker å beholde i de endelige genererte bildene.
- maskImage – JPEG- eller PNG-bildet kodet i base64.
- outPaintingMode – Angir om det skal tillates modifikasjon av pikslene inne i masken eller ikke. STANDARD tillater modifikasjon av bildet inne i masken for å holde det konsistent med den rekonstruerte bakgrunnen. PRECISE forhindrer endring av bildet inne i masken.
- numberOfImages – Antall bilder som skal genereres.
- kvalitet – Kvaliteten på de genererte bildene:
standard
orpremium
. - cfgSkala – Angir hvor sterkt det genererte bildet skal følge forespørselen.
- høyde – Høyden på bildet i piksler.
- bredde – Bildets bredde i piksler.
Amazonas grunnfjell InvokeModel
API genererer et svar med et kodet bilde i Output S3Uri
plassering. En annen Lambda-funksjon analyserer bildet fra svaret, dekoder det fra base64 og lagrer bildefilen på følgende sted: s3://<Image Bucket>/generated-image-file/<year>/<month>/<day>/<timestamp>/
.
Til slutt oppdaterer en underordnet arbeidsflyt en DynamoDB-tabell med bildegenereringsstatus, og merker den som enten Etterfølger or Mislyktes, og inkludert detaljer som ImageName
, Cause
, Error
og Status
.
Generer en statusrapport
Etter bildegenereringsprosessen henter en Lambda-funksjon statusdetaljene fra DynamoDB. Den kompilerer disse detaljene dynamisk til en omfattende statusrapport i JSON-format. Den lagrer deretter den genererte statusrapporten en JSON-fil på følgende plassering: s3://<Image Bucket>/status-report-files/<year>/<month>/<day>/<timestamp>/
. ITOps-teamet kan integrere denne rapporten med sitt eksisterende varslingssystem for å spore om bildebehandlingen er fullført. For bedriftsbrukere kan du utvide dette ytterligere for å generere en rapport i CSV-format.
Send en e-post via Amazon SNS
Step Functions påkaller en Amazon SNS API-handling for å sende en e-post. E-posten inneholder detaljer, inkludert S3-plasseringen for statusrapporten og de endelige bildefilene. Følgende er eksempel på e-postvarsling.
konklusjonen
I dette innlegget ga vi en oversikt over en prøveløsning som demonstrerer automatiseringen av å endre bildebakgrunn i skala ved hjelp av Amazons grunnfjell og trinnfunksjoner. Vi forklarte også hvert element i løsningen i detalj. Ved å bruke Step Functions-optimalisert integrasjon med Amazon Bedrock, Distributed Map og Titan Image Generator G1-modellen, erstatter løsningen effektivt bakgrunnene til bilder parallelt, og øker produktiviteten og skalerbarheten.
For å distribuere løsningen, se instruksjonene i GitHub repository.
Ressurser
For å lære mer om Amazon Bedrock, se følgende ressurser:
For å lære mer om Titan Image Generator G1-modellen, se følgende ressurser:
For å lære mer om bruk av Amazon Bedrock med trinnfunksjoner, se følgende ressurser:
om forfatteren
Chetan Makvana er en senior løsningsarkitekt med Amazon Web Services. Han samarbeider med AWS-partnere og kunder for å gi dem arkitektonisk veiledning for å bygge skalerbar arkitektur og implementere strategier for å drive adopsjon av AWS-tjenester. Han er en teknologientusiast og en bygger med et kjerneområde av interesse for generativ AI, serverløs og DevOps. Utenom jobben liker han å se programmer, reise og musikk.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang 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
- $OPP
- 1
- 130
- 14
- 22
- 25
- 32
- 7
- 8
- a
- Om oss
- godtar
- adgang
- tvers
- Handling
- overholde
- Adopsjon
- Voksen
- Annonsering
- AI
- Alle
- tillate
- tillater
- også
- Amazon
- Amazon-anerkjennelse
- Amazon Web Services
- an
- og
- En annen
- api
- Søknad
- arkitektonisk
- arkitektur
- ER
- AREA
- AS
- assosiert
- At
- godkjenne
- automatisere
- Automatisert
- automatisk
- Automatisering
- AWS
- AWS trinnfunksjoner
- bakgrunn
- bakgrunner
- basert
- før du
- bygge
- bygger
- Bygning
- buss
- virksomhet
- by
- som heter
- Samtaler
- CAN
- evner
- endring
- endring
- barn
- valg
- City
- kombinert
- Terminado
- Fullfører
- omfattende
- Konfigurasjon
- forbinder
- konsistent
- består
- konstruerer
- inneholder
- Kjerne
- tilsvarer
- skape
- Kreativ
- skikk
- Kunder
- dato
- dypere
- Misligholde
- definere
- definerer
- demonstrere
- utplassere
- utplasserings
- utforming
- ønsket
- destinasjonen
- detalj
- detaljert
- detaljer
- diagram
- distribueres
- dykking
- Hund
- ikke
- stasjonen
- dynamisk
- hver enkelt
- e-handel
- effektivt
- innsats
- enten
- element
- elementer
- emalje
- kodet
- Endpoint
- styrke
- Enter
- Entertainment
- entusiast
- Hele
- spesielt
- eksempel
- eksisterende
- Expand
- forklarte
- Mote
- filet
- Filer
- slutt~~POS=TRUNC
- etter
- Til
- format
- Fundament
- fra
- Frontend
- funksjon
- funksjoner
- videre
- g1
- gateway
- generere
- generert
- genererer
- generasjonen
- generative
- Generativ AI
- generator
- veiledning
- Utnyttelse
- he
- høyde
- hjelper
- Høy
- striper
- historie
- Hvordan
- Men
- HTML
- HTTPS
- ID
- if
- illustrerer
- bilde
- bilder
- implementere
- in
- inkludere
- Inkludert
- indre
- inngang
- innsiden
- innsikt
- instruksjoner
- integrere
- integrert
- Integrerer
- integrering
- interesse
- inn
- Introduserer
- påkaller
- innebærer
- IT
- DET ER
- jpg
- JSON
- Hold
- nøkkel
- etiketter
- stor
- større
- LÆRE
- Nivå
- BEGRENSE
- plassering
- London
- Se
- Lot
- Lav
- laget
- gjøre
- mann
- mann
- manuelt
- kart
- merking
- maske
- Media
- metode
- Mote
- modell
- mer
- flere
- musikk
- navn
- Trenger
- negativ
- Ny
- varsling
- Antall
- of
- Tilbud
- ofte
- on
- optimalisert
- or
- rekkefølge
- original
- Annen
- produksjon
- utenfor
- oversikt
- egen
- Parallel
- parameter
- parametere
- partnere
- utfører
- person
- bilde
- plato
- Platon Data Intelligence
- PlatonData
- basseng
- Post
- presis
- Premium
- forhindrer
- prosess
- prosessering
- produktivitet
- ledetekster
- beskytte
- gi
- forutsatt
- gir
- kvalitet
- referere
- relevant
- fjerne
- erstatte
- rapporterer
- anmode
- forespørsler
- oppløsning
- Ressurser
- svar
- svar
- REST
- resultere
- beholde
- Kjør
- går
- sample
- skalerbarhet
- skalerbar
- Skala
- sømløst
- se
- valgt
- send
- sender
- senior
- separat
- server~~POS=TRUNC
- serverer
- Tjenester
- bør
- vist
- Viser
- Enkelt
- forenklet
- forenkler
- Software
- løsning
- Solutions
- kilde
- spesifikk
- spesifisert
- Begynn
- starter
- Tilstand
- status
- Trinn
- Steps
- lagring
- rett fram
- strategier
- effektivisere
- String
- sterk
- innsending
- I ettertid
- vellykket
- slik
- støtte
- Støtter
- system
- bord
- Ta
- lag
- teknikk
- Teknologi
- tekst
- Det
- De
- Kilden
- deres
- Dem
- deretter
- Disse
- denne
- De
- tre
- titan
- til
- sammen
- spor
- Traveling
- typisk
- uautorisert
- forstå
- uønsket
- Oppdater
- oppdatert
- oppdateringer
- lastet opp
- brukt
- Bruker
- Brukere
- bruker
- ved hjelp av
- av
- Se
- ønsker
- se
- we
- web
- Webapplikasjon
- webtjenester
- Hva
- om
- hvilken
- bredde
- med
- Arbeid
- arbeidsflyt
- arbeidsflyt
- hjemkomsten
- virker
- skrive
- Du
- zephyrnet