Automatisoi kuvien taustan vaihtamisprosessi käyttämällä Amazon Bedrockia ja AWS Step Functionsia | Amazon Web Services

Automatisoi kuvien taustan vaihtamisprosessi käyttämällä Amazon Bedrockia ja AWS Step Functionsia | Amazon Web Services

Monet asiakkaat, mukaan lukien luovan mainonnan, median ja viihteen, verkkokaupan ja muodin toimijat, joutuvat usein vaihtamaan taustaa suuressa määrässä kuvia. Yleensä tämä edellyttää kunkin kuvan manuaalista muokkaamista valokuvaohjelmistolla. Tämä voi vaatia paljon vaivaa, etenkin suurille kuvasarjoille. Kuitenkin, Amazonin kallioperä ja AWS-vaihetoiminnot helpottaa tämän prosessin automatisoimista mittakaavassa.

Amazon Bedrock tarjoaa generatiivisen tekoälypohjamallin Amazon Titan Image Generator G1, joka voi automaattisesti muuttaa kuvan taustaa käyttämällä tekniikkaa nimeltä ulkomaalaus. Step Functionsin avulla voit luoda automatisoidun työnkulun, joka yhdistyy saumattomasti Amazon Bedrockiin ja muihin AWS-palveluihin. Yhdessä Amazon Bedrock ja Step Functions virtaviivaistavat koko prosessin, jossa useiden kuvien taustat vaihdetaan automaattisesti.

Tämä viesti esittelee ratkaisun, joka yksinkertaistaa taustan vaihtamista useissa kuvissa. Hyödyntämällä kykyjä generatiivinen tekoäly Amazon Bedrockin ja Titan Image Generator G1 -mallin ja Step Functionsin kanssa tämä ratkaisu luo tehokkaasti kuvia halutulla taustalla. Tämä viesti antaa käsityksen ratkaisun sisäisestä toiminnasta ja auttaa sinua ymmärtämään tämän oman mukautetun ratkaisun rakentamiseen tehtyjä suunnitteluvalintoja.

Katso GitHub-arkisto tarkat ohjeet tämän ratkaisun käyttöönotosta.

Ratkaisun yleiskatsaus

Katsotaan kuinka ratkaisu toimii korkealla tasolla ennen kuin sukeltaa syvemmälle tiettyihin elementteihin ja käytettyihin AWS-palveluihin. Seuraava kaavio tarjoaa yksinkertaistetun kuvan ratkaisun arkkitehtuurista ja korostaa keskeiset elementit.

Ratkaisuarkkitehtuuri

Työnkulku koostuu seuraavista vaiheista:

  1. Käyttäjä lataa useita kuvia tiedostoon Amazonin yksinkertainen tallennuspalvelu (Amazon S3) ämpäri Streamlit-verkkosovelluksen kautta.
  2. Streamlit-verkkosovellus kutsuu Amazon API -yhdyskäytävä REST API -päätepiste integroitu Amazonin tunnistus DetectLabels API, joka tunnistaa jokaisen kuvan tarrat.
  3. Lähetyksen jälkeen Streamlit-verkkosovellus päivittää Amazon DynamoDB taulukko kuvan yksityiskohdilla.
  4. DynamoDB-päivitys laukaisee AWS Lambda -toiminto, joka käynnistää Step Functions -työnkulun.
  5. Step Functions -työnkulku suorittaa seuraavat vaiheet jokaiselle kuvalle:
    5.1 Rakentaa pyyntöhyötykuorman Amazonin kallioperään InvokeModel API.
    5.2 Kutsuu Amazonin kallioperän InvokeModel API-toiminto.
    5.3 Jäsentää kuvan vastauksesta ja tallentaa sen S3-sijaintiin.
    5.4 Päivittää kuvan tilan DynamoDB-taulukossa.
  6. Step Functions -työnkulku kutsuu Lambda-funktion luomaan tilaraportin.
  7. Työnkulku lähettää sähköpostin käyttämällä Amazonin yksinkertainen ilmoituspalvelu (Amazon SNS).

Kuten seuraavassa kuvakaappauksessa näkyy, Streamlit-verkkosovelluksen avulla voit ladata kuvia ja kirjoittaa tekstikehotteita halutun taustan, negatiivisten kehotteiden ja outpainting-tilan määrittämiseksi kuvien luomista varten. Voit myös tarkastella ja poistaa ei-toivottuja tunnisteita, jotka liittyvät kuhunkin ladattuihin kuviin, joita et halua säilyttää lopullisissa luoduissa kuvissa.

Virtaviivainen verkkosovellus

Tässä esimerkissä taustakehote on "London city background". Automaatioprosessi luo uusia kuvia alkuperäisten ladattujen kuvien perusteella Lontoon taustalla.

Luodut kuvat

Virtaviivaiset verkkosovellusten ja kuvien lataukset

Streamlit-verkkosovellus toimii tämän ratkaisun käyttöliittymänä. Sovelluksen suojaamiseksi luvattomalta käytöltä se integroituu Amazon Cognito käyttäjäpooli. API Gateway käyttää Amazon Cognito -valtuutettu pyyntöjen todentamiseksi. Verkkosovellus suorittaa seuraavat vaiheet:

  1. Jokaiselle valitulle kuvalle se hakee tarrat Amazon Rekognitionin kautta API Gateway REST API -päätepisteen avulla.
  2. Lähetyksen jälkeen sovellus lataa kuvat S3-ämpäriin.
  3. Sovellus päivittää DynamoDB-taulukon asiaankuuluvilla parametreilla, kuvien nimillä ja niihin liittyvillä tunnisteilla jokaiselle kuvalle käyttämällä toista API Gateway REST API -päätepistettä.

Kuvankäsittelyn työnkulku

Kun DynamoDB-taulukko päivitetään, DynamoDB-virrat käynnistää Lambda-toiminnon uuden Step Functions -työnkulun käynnistämiseksi. Seuraava on mallipyyntö työnkulkua varten:

{
  "Id": "621fa85a-38bb-4d98-a656-93bbbcf5477f",
  "S3Bucket": "<Image Bucket>",
  "InputS3Prefix": "image-files/<year>/<month>/<day>/<timestamp>",
  "OutputS3Prefix": "generated-image-files/<year>/<month>/<day>/<timestamp>",
  "StatusS3Prefix": "status-report-files/<year>/<month>/<day>/<timestamp>",
  "Prompt": "london city background",
  "NegativePrompt": "low quality, low resolution",
  "Mode": "PRECISE",
  "Images": [
    {
      "ImageName": "bus.png",
      "Labels": "Bus, Person"
    },
    {
      "ImageName": "cop.png",
      "Labels": "Person, Adult, Male, Man, Helmet, Jacket"
    },
    {
      "ImageName": "iguana-2.png",
      "Labels": "Lizard”
    },
    {
      "ImageName": "dog.png",
      "Labels": "Dog"
    }
  ]
}

Step Functions -työnkulku suorittaa seuraavat kolme vaihetta:

  1. Vaihda kaikkien kuvien tausta.
  2. Luo tilaraportti.
  3. Lähetä sähköpostia Amazon SNS:n kautta.

Seuraava kuvakaappaus havainnollistaa Step Functions -työnkulkua.

AWS Step Functions -työnkulku

Katsotaanpa jokaista vaihetta yksityiskohtaisemmin.

Vaihda kaikkien kuvien tausta

Step Functions käyttää a Jaettu kartta kunkin kuvan käsittelemiseksi rinnakkaisissa lapsityönkuluissa. Hajautettu kartta mahdollistaa korkean samanaikaisuuden käsittelyn. Jokaisella alatason työnkululla on oma erillinen ajohistoriansa päätyönkulun historiasta.

Step Functions käyttää an InvokeModelin optimoitu API-toiminto Amazon Bedrockille. API hyväksyy pyynnöt ja vastaukset, jotka ovat enintään 25 megatavua. Step Functionsissa on kuitenkin 256 kt:n rajoitus tilan hyötykuorman tulolle ja ulostulolle. Suurempien kuvien tukemiseksi ratkaisu käyttää S3-ämpäriä, jossa InvokeModel API lukee tiedot ja kirjoittaa tuloksen. Seuraava on kokoonpano InvokeModel API Amazon Bedrock -integraatiolle:

{
    "ModelId": "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-image-generator-v1",
    "ContentType": "application/json",
    "Input": {  
        "S3Uri": “s3://<Image Bucket>/image-files/<year>/<month>/<day>/<timestamp>/<Image name>.json",
    },  
    "Output": {  
        "S3Uri": “s3://<Image Bucket>/generated-image-files/<year>/<month>/<day>/<timestamp>/<Image name>.json”
    } 
}

- Input S3Uri parametri määrittää lähdesijainnin syöttötietojen hakemiseksi. The Output S3Uri parametri määrittää kohteen API-vastauksen kirjoittamiselle.

Lambda-funktio tallentaa pyyntöhyötykuorman JSON-tiedostona määritettyyn paikkaan Input S3Uri sijainti. The InvokeModel API käyttää tätä syöttöhyötykuormaa kuvien luomiseen määritetyllä taustalla:

{
    "taskType": "OUTPAINTING",
    "outPaintingParams": {
        "text": "london city background",
        "negativeText": "low quality, low resolution",        
        "image": "<base64-encoded string>",                         
        "maskPrompt": "Bus",                      
        "maskImage": "base64-encoded string",                             
        "outPaintingMode": "DEFAULT | PRECISE"                 
    },                                                 
    "imageGenerationConfig": {
        "numberOfImages": 1,
        "quality": "premium",
        "height": 1024,
        "width": 1024,
        "cfgScale": 8.0
    }
}

Titan Image Generator G1 -malli tukee seuraavia parametreja kuvan luomiseen:

  • tehtävätyyppi – Määrittää ulkomaalausmenetelmän kuvan taustan korvaamiseksi.
  • teksti – Tekstikehote taustan määrittämiseksi.
  • negatiivinenTeksti – Tekstikehote määrittää, mitä ei saa sisällyttää kuvaan.
  • maskPrompt – Tekstikehote, joka määrittää maskin. Se vastaa tarroja, jotka haluat säilyttää lopullisissa luoduissa kuvissa.
  • maskikuva – Base64-koodattu JPEG- tai PNG-kuva.
  • outPaintingMode – Määrittää, sallitaanko maskin sisällä olevien pikselien muokkaaminen vai ei. OLETUS sallii maskin sisällä olevan kuvan muokkaamisen, jotta se pysyy yhdenmukaisena rekonstruoidun taustan kanssa. TARKKA estää kuvan muuttamisen maskin sisällä.
  • Kuvien määrä – Luotavien kuvien määrä.
  • laatu – Luotujen kuvien laatu: standard or premium.
  • cfgScale – Määrittää, kuinka voimakkaasti luodun kuvan tulee kiinnittyä kehotteeseen.
  • korkeus – Kuvan korkeus pikseleinä.
  • leveys – Kuvan leveys pikseleinä.

Amazonin kallioperä InvokeModel API luo vastauksen koodatulla kuvalla Output S3Uri sijainti. Toinen Lambda-funktio jäsentää kuvan vastauksesta, purkaa sen base64:stä ja tallentaa kuvatiedoston seuraavaan paikkaan: s3://<Image Bucket>/generated-image-file/<year>/<month>/<day>/<timestamp>/.

Lopuksi alatason työnkulku päivittää DynamoDB-taulukon kuvanluontitilalla ja merkitsee sen joko onnistui or Epäonnistuija sisältää yksityiskohtia, kuten ImageName, Cause, Errorja Status.

Luo tilaraportti

Kuvan luomisen jälkeen Lambda-funktio hakee tilatiedot DynamoDB:stä. Se kokoaa nämä tiedot dynaamisesti kattavaksi tilaraportiksi JSON-muodossa. Sitten se tallentaa luodun tilaraportin JSON-tiedoston seuraavaan sijaintiin: s3://<Image Bucket>/status-report-files/<year>/<month>/<day>/<timestamp>/. ITOps-tiimi voi integroida tämän raportin olemassa olevaan ilmoitusjärjestelmäänsä seuratakseen, onko kuvankäsittely onnistunut. Yrityskäyttäjille voit laajentaa tätä edelleen luodaksesi raportin CSV-muodossa.

Lähetä sähköpostia Amazon SNS:n kautta

Step Functions kutsuu Amazon SNS API -toiminnon sähköpostin lähettämiseksi. Sähköposti sisältää yksityiskohtia, kuten tilaraportin ja lopullisten kuvatiedostojen S3-paikan. Seuraava on esimerkki ilmoitussähköpostista.

Ilmoitussähköposti

Yhteenveto

Tässä viestissä annoimme yleiskatsauksen esimerkkiratkaisusta, joka havainnollistaa kuvien taustan muuttamisen automatisoimista mittakaavassa Amazon Bedrockin ja Step Functionsin avulla. Selitimme myös yksityiskohtaisesti jokaisen ratkaisun elementin. Käyttämällä Step Functions -optimoitua integraatiota Amazon Bedrockin, Distributed Mapin ja Titan Image Generator G1 -mallin kanssa, ratkaisu korvaa tehokkaasti kuvien taustat rinnakkain, mikä parantaa tuottavuutta ja skaalautuvuutta.

Ota ratkaisu käyttöön katsomalla julkaisun ohjeita GitHub-arkisto.

Esittelymateriaalit

Lisätietoja Amazon Bedrockista on seuraavissa resursseissa:

Saat lisätietoja Titan Image Generator G1 -mallista seuraavista lähteistä:

Lisätietoja Amazon Bedrockin käyttämisestä Step Functionsin kanssa on seuraavissa resursseissa:


kirjailijasta

Automatisoi kuvien taustan vaihtamisprosessi käyttämällä Amazon Bedrockia ja AWS Step Functionsia | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Chetan Makvana on vanhempi ratkaisuarkkitehti Amazon Web Services -palvelussa. Hän työskentelee AWS-kumppaneiden ja asiakkaiden kanssa tarjotakseen heille arkkitehtonista ohjausta skaalautuvan arkkitehtuurin rakentamiseen ja strategioiden toteuttamiseen AWS-palvelujen käyttöönoton edistämiseksi. Hän on teknologian harrastaja ja rakentaja, jonka keskeinen kiinnostuksen kohde on luova tekoäly, palvelimettomat ja DevOps-laitteet. Työn ulkopuolella hän nauttii ohjelmien katsomisesta, matkustamisesta ja musiikista. 

Aikaleima:

Lisää aiheesta AWS-koneoppiminen