Automatiseerige piltide tausta muutmise protsess Amazon Bedrocki ja AWS Step Functions | abil Amazoni veebiteenused

Automatiseerige piltide tausta muutmise protsess Amazon Bedrocki ja AWS Step Functions | abil Amazoni veebiteenused

Paljud kliendid, sealhulgas loomingulise reklaami, meedia ja meelelahutuse, e-kaubanduse ja moevaldkonna kliendid, peavad sageli suurel hulgal piltidel tausta muutma. Tavaliselt hõlmab see iga pildi käsitsi redigeerimist fototarkvaraga. See võib nõuda palju pingutusi, eriti suurte pildipartiide puhul. Kuid, Amazonase aluspõhi ja AWS-i astmefunktsioonid muuta selle protsessi mastaabis automatiseerimine lihtsaks.

Amazon Bedrock pakub generatiivset AI vundamendi mudelit Amazon Titan Image Generator G1, mis suudab automaatselt muuta pildi tausta, kasutades tehnikat nimega ülevärvimine. Step Functions võimaldab teil luua automatiseeritud töövoo, mis ühendab sujuvalt Amazon Bedrocki ja teiste AWS-teenustega. Amazon Bedrock ja Step Functions ühtlustavad koos mitme pildi tausta automaatse muutmise protsessi.

See postitus tutvustab lahendust, mis lihtsustab mitme pildi tausta muutmise protsessi. Kasutades ära võimalusi generatiivne AI Amazon Bedrocki ja mudeliga Titan Image Generator G1 koos sammufunktsioonidega genereerib see lahendus tõhusalt soovitud taustaga pilte. See postitus annab ülevaate lahenduse sisemisest toimimisest ja aitab teil mõista selle kohandatud lahenduse loomiseks tehtud disainivalikuid.

Vaata GitHubi hoidla üksikasjalikke juhiseid selle lahenduse juurutamiseks.

Lahenduse ülevaade

Vaatame, kuidas lahendus kõrgel tasemel töötab, enne kui sukeldume konkreetsetesse elementidesse ja kasutatavatesse AWS-teenustesse. Järgmine diagramm annab lihtsustatud ülevaate lahenduse arhitektuurist ja toob esile peamised elemendid.

Lahenduse arhitektuur

Töövoog koosneb järgmistest sammudest:

  1. Kasutaja laadib faili üles mitu pilti Amazoni lihtne salvestusteenus (Amazon S3) ämber Streamlit veebirakenduse kaudu.
  2. Streamlit veebirakendus kutsub üles an Amazon API värav REST API lõpp-punkt on integreeritud Amazon Rekognitsioon DetectLabels API, mis tuvastab iga pildi sildid.
  3. Pärast esitamist värskendab Streamliti veebirakendus an Amazon DynamoDB tabel pildi üksikasjadega.
  4. DynamoDB värskendus käivitab AWS Lambda funktsioon, mis käivitab sammufunktsioonide töövoo.
  5. Sammufunktsioonide töövoog käitab iga pildi jaoks järgmisi samme.
    5.1 Koostab Amazoni aluspõhja päringu kasuliku koormuse InvokeModel API.
    5.2 kutsub esile Amazonase aluspõhja InvokeModel API toiming.
    5.3 Parsib vastusest pildi ja salvestab selle S3 asukohta.
    5.4 Värskendab pildi olekut DynamoDB tabelis.
  6. Step Functions töövoog kutsub olekuaruande genereerimiseks välja lambda funktsiooni.
  7. Töövoog saadab meili kasutades Amazoni lihtne teavitusteenus (Amazon SNS).

Nagu on näidatud järgmisel ekraanipildil, võimaldab Streamliti veebirakendus teil pilte üles laadida ja sisestada tekstiviipasid, et määrata soovitud taustad, negatiivsed viibad ja piltide genereerimiseks väljavärvimisrežiim. Samuti saate vaadata ja eemaldada soovimatud sildid, mis on seotud iga üleslaaditud pildiga, mida te ei soovi lõplikel loodud piltidel säilitada.

Sujuv veebirakendus

Selles näites on tausta viip „Londoni linna taust”. Automatiseerimisprotsess genereerib uued pildid, mis põhinevad algselt üles laaditud piltidel ja taustaks on London.

Loodud pildid

Sujuv veebirakenduste ja piltide üleslaadimine

Streamlit veebirakendus toimib selle lahenduse esipaneelina. Rakenduse kaitsmiseks volitamata juurdepääsu eest integreeritakse see rakendusega Amazon Cognito kasutajate bassein. API Gateway kasutab Amazon Cognito autoriseerija taotluste autentimiseks. Veebirakendus teeb järgmised sammud:

  1. Iga valitud pildi jaoks hangib see sildid Amazon Rekognitioni kaudu, kasutades API Gateway REST API lõpp-punkti.
  2. Pärast esitamist laadib rakendus pildid üles S3 ämbrisse.
  3. Rakendus värskendab DynamoDB tabelit asjakohaste parameetrite, kujutiste nimede ja seotud siltidega iga pildi jaoks, kasutades teist API Gateway REST API lõpp-punkti.

Pilditöötluse töövoog

Kui DynamoDB tabelit värskendatakse, DynamoDB vood käivitab Lambda funktsiooni uue astmefunktsioonide töövoo käivitamiseks. Järgmine on töövoo taotluse näidis.

{
  "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"
    }
  ]
}

Sammufunktsioonide töövoog teostab seejärel järgmised kolm sammu.

  1. Asendage kõigi piltide taust.
  2. Loo olekuaruanne.
  3. Saatke meil Amazon SNS-i kaudu.

Järgmine ekraanipilt illustreerib sammufunktsioonide töövoogu.

AWS-i sammufunktsioonide töövoog

Vaatame iga sammu üksikasjalikumalt.

Asendage kõigi piltide taust

Step Functions kasutab a Levinud kaart iga pildi töötlemiseks paralleelsetes alamtöövoogudes. Hajutatud kaart võimaldab kõrge samaaegsusega töötlemist. Igal alamtöövool on oma käitamisajalugu põhitöövoo omast eraldi.

Step Functions kasutab an InvokeModeli optimeeritud API-toiming Amazon Bedrocki jaoks. API võtab vastu kuni 25 MB suuruseid päringuid ja vastuseid. Siiski on Step Functions oleku kasuliku koormuse sisendi ja väljundi piirang 256 KB. Suuremate piltide toetamiseks kasutab lahendus S3 ämbrit, kus InvokeModel API loeb andmeid ja kirjutab tulemuse sinna. Järgmine on konfiguratsioon InvokeModel API Amazon Bedrocki integreerimiseks:

{
    "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 parameeter määrab allika asukoha sisendandmete toomiseks. The Output S3Uri parameeter määrab API vastuse kirjutamise sihtkoha.

Lambda funktsioon salvestab päringu kasuliku koormuse määratud JSON-failina Input S3Uri asukoht. The InvokeModel API kasutab seda sisendkoormust määratud taustaga piltide genereerimiseks:

{
    "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
    }
}

Mudel Titan Image Generator G1 toetab kujutiste genereerimiseks järgmisi parameetreid:

  • ülesande tüüp – Määrab väljavärvimismeetodi pildi tausta asendamiseks.
  • tekst – Tekstiviip tausta määramiseks.
  • negatiivneTekst – Tekstiviip, mis määrab, mida pildile mitte kaasata.
  • maskPrompt – maski määratlev tekstiviip. See vastab siltidele, mida soovite lõplikel loodud piltidel säilitada.
  • maskPilt – JPEG- või PNG-pilt, mis on kodeeritud baas64-s.
  • outPaintingMode – Määrab, kas lubada maskis olevate pikslite muutmist või mitte. DEFAULT võimaldab muuta maski sees olevat pilti, et see oleks kooskõlas rekonstrueeritud taustaga. TÄPNE hoiab ära pildi muutmise maski sees.
  • piltide arv – genereeritavate piltide arv.
  • kvaliteet – Loodud piltide kvaliteet: standard or premium.
  • cfgScale – Määrab, kui tugevalt peab loodud pilt viipale kinni pidama.
  • kõrgus – pildi kõrgus pikslites.
  • laius – pildi laius pikslites.

Amazonase aluspõhi InvokeModel API genereerib vastuse kodeeritud pildiga Output S3Uri asukoht. Teine Lambda funktsioon analüüsib vastusest saadud kujutist, dekodeerib selle base64-st ja salvestab pildifaili järgmisesse asukohta: s3://<Image Bucket>/generated-image-file/<year>/<month>/<day>/<timestamp>/.

Lõpuks värskendab alamtöövoog DynamoDB tabelit kujutise genereerimise olekuga, märkides selle kui kumbagi Õnnestus or Ebaõnnestunudja sealhulgas selliseid üksikasju nagu ImageName, Cause, Errorja Status.

Loo olekuaruanne

Pärast pildi genereerimise protsessi hangib Lambda funktsioon DynamoDB-st oleku üksikasjad. See koostab need üksikasjad dünaamiliselt terviklikuks olekuaruandeks JSON-vormingus. Seejärel salvestab see loodud olekuaruande JSON-failina järgmisesse asukohta: s3://<Image Bucket>/status-report-files/<year>/<month>/<day>/<timestamp>/. ITOpsi meeskond saab selle aruande integreerida oma olemasoleva teavitussüsteemiga, et jälgida, kas pilditöötlus on edukalt lõpule viidud. Ärikasutajate jaoks saate seda CSV-vormingus aruande loomiseks veelgi laiendada.

Saatke meil Amazon SNS-i kaudu

Step Functions kutsub meili saatmiseks välja Amazon SNS API toimingu. Meil sisaldab üksikasju, sealhulgas olekuaruande ja lõplike piltide failide S3 asukohta. Järgmine on teavitusmeili näidis.

Teavitusmeil

Järeldus

Selles postituses andsime ülevaate näidislahendusest, mis demonstreerib pilditausta muutmise automatiseerimist skaalal, kasutades Amazon Bedrocki ja Step Functions. Samuti selgitasime üksikasjalikult iga lahenduse elementi. Kasutades Step Functions optimeeritud integratsiooni Amazon Bedrocki, Distributed Mapi ja mudeliga Titan Image Generator G1, asendab lahendus tõhusalt paralleelselt piltide tausta, suurendades tootlikkust ja skaleeritavust.

Lahenduse juurutamiseks vaadake juhiseid jaotises GitHubi hoidla.

Vahendid

Amazon Bedrocki kohta lisateabe saamiseks vaadake järgmisi ressursse:

Mudeli Titan Image Generator G1 kohta lisateabe saamiseks vaadake järgmisi ressursse:

Kui soovite lisateavet Amazon Bedrocki kasutamise kohta koos Step Funktsioonidega, vaadake järgmisi ressursse:


Teave Autor

Automate the process to change image backgrounds using Amazon Bedrock and AWS Step Functions | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Chetan Makvana on Amazon Web Servicesi vanemlahenduste arhitekt. Ta teeb koostööd AWS-i partnerite ja klientidega, et pakkuda neile arhitektuurseid juhiseid skaleeritava arhitektuuri ehitamiseks ja strateegiate rakendamiseks AWS-i teenuste kasutuselevõtu edendamiseks. Ta on tehnoloogiaentusiast ja ehitaja, kelle põhihuvi on generatiivne AI, serverita ja DevOps. Väljaspool tööd naudib ta saadete vaatamist, reisimist ja muusikat. 

Ajatempel:

Veel alates AWS-i masinõpe