Αυτοματοποιήστε τη διαδικασία αλλαγής φόντου εικόνας χρησιμοποιώντας το Amazon Bedrock και το AWS Step Functions | Υπηρεσίες Ιστού της Amazon

Αυτοματοποιήστε τη διαδικασία αλλαγής φόντου εικόνας χρησιμοποιώντας το Amazon Bedrock και το AWS Step Functions | Υπηρεσίες Ιστού της Amazon

Πολλοί πελάτες, συμπεριλαμβανομένων εκείνων της δημιουργικής διαφήμισης, των μέσων ενημέρωσης και της ψυχαγωγίας, του ηλεκτρονικού εμπορίου και της μόδας, συχνά χρειάζεται να αλλάξουν το φόντο σε μεγάλο αριθμό εικόνων. Συνήθως, αυτό περιλαμβάνει τη μη αυτόματη επεξεργασία κάθε εικόνας με λογισμικό φωτογραφιών. Αυτό μπορεί να χρειαστεί πολλή προσπάθεια, ειδικά για μεγάλες παρτίδες εικόνων. Ωστόσο, Θεμέλιο του Αμαζονίου και Λειτουργίες βημάτων AWS καθιστούν εύκολη την αυτοματοποίηση αυτής της διαδικασίας σε κλίμακα.

Το Amazon Bedrock προσφέρει το γενετικό μοντέλο θεμελίωσης AI Amazon Titan Image Generator G1, το οποίο μπορεί να αλλάξει αυτόματα το φόντο μιας εικόνας χρησιμοποιώντας μια τεχνική που ονομάζεται βαφή. Το Step Functions σάς επιτρέπει να δημιουργήσετε μια αυτοματοποιημένη ροή εργασίας που συνδέεται άψογα με το Amazon Bedrock και άλλες υπηρεσίες AWS. Μαζί, το Amazon Bedrock και το Step Functions βελτιστοποιούν ολόκληρη τη διαδικασία αυτόματης αλλαγής φόντου σε πολλές εικόνες.

Αυτή η ανάρτηση εισάγει μια λύση που απλοποιεί τη διαδικασία αλλαγής φόντου σε πολλές εικόνες. Αξιοποιώντας τις δυνατότητες του γενετική AI Με το Amazon Bedrock και το μοντέλο Titan Image Generator G1, σε συνδυασμό με τις λειτουργίες Step, αυτή η λύση δημιουργεί αποτελεσματικά εικόνες με το επιθυμητό φόντο. Αυτή η ανάρτηση παρέχει πληροφορίες για τις εσωτερικές λειτουργίες της λύσης και σας βοηθά να κατανοήσετε τις σχεδιαστικές επιλογές που έγιναν για να δημιουργήσετε αυτήν τη δική σας προσαρμοσμένη λύση.

Δείτε το Αποθετήριο GitHub για λεπτομερείς οδηγίες σχετικά με την ανάπτυξη αυτής της λύσης.

Επισκόπηση λύσεων

Ας δούμε πώς λειτουργεί η λύση σε υψηλό επίπεδο προτού βουτήξουμε βαθύτερα σε συγκεκριμένα στοιχεία και τις υπηρεσίες AWS που χρησιμοποιούνται. Το παρακάτω διάγραμμα παρέχει μια απλοποιημένη άποψη της αρχιτεκτονικής λύσης και επισημαίνει τα βασικά στοιχεία.

Αρχιτεκτονική λύσεων

Η ροή εργασίας αποτελείται από τα ακόλουθα βήματα:

  1. Ένας χρήστης ανεβάζει πολλές εικόνες σε ένα Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κάδος μέσω μιας εφαρμογής web Streamlit.
  2. Η εφαρμογή web Streamlit καλεί ένα Amazon API Gateway Τελικό σημείο REST API ενσωματωμένο με το Αναγνώριση Amazon DetectLabels API, το οποίο ανιχνεύει ετικέτες για κάθε εικόνα.
  3. Μετά την υποβολή, η εφαρμογή web Streamlit ενημερώνει ένα Amazon DynamoDB πίνακας με λεπτομέρειες εικόνας.
  4. Η ενημέρωση DynamoDB ενεργοποιεί ένα AWS Lambda λειτουργία, η οποία ξεκινά μια ροή εργασίας Βήμα Λειτουργίες.
  5. Η ροή εργασίας Step Functions εκτελεί τα ακόλουθα βήματα για κάθε εικόνα:
    5.1 Κατασκευάζει ένα ωφέλιμο φορτίο αιτήματος για το Amazon Bedrock InvokeModel API.
    5.2 Επικαλείται το Θεμέλιο του Αμαζονίου InvokeModel Ενέργεια API.
    5.3 Αναλύει μια εικόνα από την απάντηση και την αποθηκεύει σε μια θέση S3.
    5.4 Ενημερώνει την κατάσταση της εικόνας σε έναν πίνακα DynamoDB.
  6. Η ροή εργασίας Step Functions καλεί μια συνάρτηση Lambda για να δημιουργήσει μια αναφορά κατάστασης.
  7. Η ροή εργασίας στέλνει ένα email χρησιμοποιώντας Υπηρεσία απλών ειδοποιήσεων Amazon (Amazon SNS).

Όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης, η εφαρμογή Ιστού Streamlit σάς επιτρέπει να ανεβάσετε εικόνες και να εισαγάγετε μηνύματα κειμένου για να καθορίσετε το επιθυμητό φόντο, τις αρνητικές προτροπές και τη λειτουργία εκτός ζωγραφικής για τη δημιουργία εικόνων. Μπορείτε επίσης να προβάλετε και να αφαιρέσετε ανεπιθύμητες ετικέτες που σχετίζονται με κάθε μεταφορτωμένη εικόνα που δεν θέλετε να διατηρήσετε στις τελικές δημιουργημένες εικόνες.

Εφαρμογή Web Streamlit

Σε αυτό το παράδειγμα, η προτροπή για το φόντο είναι "Φόντο πόλης του Λονδίνου". Η διαδικασία αυτοματισμού δημιουργεί νέες εικόνες με βάση τις αρχικές μεταφορτωμένες εικόνες με φόντο το Λονδίνο.

Δημιουργημένες εικόνες

Βελτιωμένη εφαρμογή web και μεταφορτώσεις εικόνων

Μια εφαρμογή Ιστού Streamlit χρησιμεύει ως διεπαφή για αυτήν τη λύση. Για την προστασία της εφαρμογής από μη εξουσιοδοτημένη πρόσβαση, ενσωματώνεται με ένα Amazon Cognito ομάδα χρηστών. Το API Gateway χρησιμοποιεί ένα Εξουσιοδοτητής Amazon Cognito για τον έλεγχο ταυτότητας αιτημάτων. Η διαδικτυακή εφαρμογή ολοκληρώνει τα ακόλουθα βήματα:

  1. Για κάθε επιλεγμένη εικόνα, ανακτά ετικέτες μέσω του Amazon Rekognition χρησιμοποιώντας ένα τελικό σημείο API Gateway REST API.
  2. Μετά την υποβολή, η εφαρμογή ανεβάζει εικόνες σε έναν κάδο S3.
  3. Η εφαρμογή ενημερώνει έναν πίνακα DynamoDB με σχετικές παραμέτρους, ονόματα εικόνων και σχετικές ετικέτες για κάθε εικόνα χρησιμοποιώντας ένα άλλο τελικό σημείο API Gateway REST API.

Ροή εργασιών επεξεργασίας εικόνας

Όταν ενημερωθεί ο πίνακας DynamoDB, Ροές DynamoDB ενεργοποιεί μια συνάρτηση Lambda για να ξεκινήσει μια νέα ροή εργασίας Step Functions. Το παρακάτω είναι ένα δείγμα αιτήματος για τη ροή εργασίας:

{
  "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 εκτελεί τα ακόλουθα τρία βήματα:

  1. Αντικαταστήστε το φόντο για όλες τις εικόνες.
  2. Δημιουργήστε μια αναφορά κατάστασης.
  3. Στείλτε ένα email μέσω Amazon SNS.

Το ακόλουθο στιγμιότυπο οθόνης απεικονίζει τη ροή εργασίας Βήμα Λειτουργίες.

Ροή εργασιών AWS Step Functions

Ας δούμε κάθε βήμα με περισσότερες λεπτομέρειες.

Αντικαταστήστε το φόντο για όλες τις εικόνες

Βήμα Συναρτήσεις χρησιμοποιεί α Κατανεμημένος χάρτης για την επεξεργασία κάθε εικόνας σε παράλληλες θυγατρικές ροές εργασίας. Ο κατανεμημένος χάρτης επιτρέπει την επεξεργασία υψηλού συγχρονισμού. Κάθε θυγατρική ροή εργασίας έχει το δικό της ξεχωριστό ιστορικό εκτέλεσης από αυτό της γονικής ροής εργασίας.

Βήμα Λειτουργίες χρησιμοποιεί ένα Ενέργεια API βελτιστοποιημένης InvokeModel για το Amazon Bedrock. Το API δέχεται αιτήματα και απαντήσεις που είναι έως 25 MB. Ωστόσο, το Step Functions έχει όριο 256 KB για την είσοδο και την έξοδο ωφέλιμου φορτίου κατάστασης. Για να υποστηρίξει μεγαλύτερες εικόνες, η λύση χρησιμοποιεί έναν κάδο S3 όπου το InvokeModel Το API διαβάζει δεδομένα από και εγγράφει το αποτέλεσμα. Ακολουθεί η διαμόρφωση για το InvokeModel API για ενσωμάτωση Amazon Bedrock:

{
    "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 Η παράμετρος καθορίζει τη θέση της πηγής για την ανάκτηση των δεδομένων εισόδου. ο Output S3Uri Η παράμετρος καθορίζει τον προορισμό για την εγγραφή της απόκρισης API.

Μια συνάρτηση Lambda αποθηκεύει το ωφέλιμο φορτίο αιτήματος ως αρχείο JSON στο καθορισμένο Input S3Uri τοποθεσία. ο InvokeModel Το API χρησιμοποιεί αυτό το ωφέλιμο φορτίο εισόδου για τη δημιουργία εικόνων με το καθορισμένο φόντο:

{
    "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 υποστηρίζει τις ακόλουθες παραμέτρους για τη δημιουργία εικόνων:

  • Τύπος εργασίας – Καθορίζει τη μέθοδο εξωζωγραφικής για την αντικατάσταση του φόντου της εικόνας.
  • κείμενο – Μια προτροπή κειμένου για να ορίσετε το φόντο.
  • αρνητικό κείμενο – Μια προτροπή κειμένου για να ορίσετε τι δεν πρέπει να συμπεριλάβετε στην εικόνα.
  • maskPrompt – Μια προτροπή κειμένου που ορίζει τη μάσκα. Αντιστοιχεί σε ετικέτες που θέλετε να διατηρήσετε στις τελικές παραγόμενες εικόνες.
  • εικόνα μάσκας – Η εικόνα JPEG ή PNG κωδικοποιημένη στο base64.
  • OutPaintingMode – Καθορίζει εάν θα επιτρέπεται η τροποποίηση των pixel μέσα στη μάσκα ή όχι. Το DEFAULT επιτρέπει την τροποποίηση της εικόνας μέσα στη μάσκα, προκειμένου να διατηρείται συνεπής με το ανακατασκευασμένο φόντο. Το PRECISE αποτρέπει την τροποποίηση της εικόνας μέσα στη μάσκα.
  • αριθμός Εικόνων – Ο αριθμός των εικόνων που θα δημιουργηθούν.
  • ποιότητα – Η ποιότητα των δημιουργούμενων εικόνων: standard or premium.
  • cfgScale – Καθορίζει πόσο έντονα θα πρέπει να συμμορφώνεται η παραγόμενη εικόνα με την προτροπή.
  • ύψος – Το ύψος της εικόνας σε pixel.
  • πλάτος – Το πλάτος της εικόνας σε pixel.

Το θεμέλιο του Αμαζονίου InvokeModel Το API δημιουργεί μια απόκριση με μια κωδικοποιημένη εικόνα στο Output S3Uri τοποθεσία. Μια άλλη συνάρτηση Lambda αναλύει την εικόνα από την απόκριση, την αποκωδικοποιεί από το base64 και αποθηκεύει το αρχείο εικόνας στην ακόλουθη θέση: s3://<Image Bucket>/generated-image-file/<year>/<month>/<day>/<timestamp>/.

Τέλος, μια θυγατρική ροή εργασίας ενημερώνει έναν πίνακα DynamoDB με την κατάσταση δημιουργίας εικόνας, επισημαίνοντάς τον ως ένα από τα δύο Επιτυχία or Απέτυχεκαι περιλαμβάνει λεπτομέρειες όπως ImageName, Cause, Error, να Status.

Δημιουργήστε μια αναφορά κατάστασης

Μετά τη διαδικασία δημιουργίας εικόνας, μια συνάρτηση Lambda ανακτά τις λεπτομέρειες κατάστασης από το DynamoDB. Συγκεντρώνει δυναμικά αυτές τις λεπτομέρειες σε μια ολοκληρωμένη αναφορά κατάστασης σε μορφή JSON. Στη συνέχεια, αποθηκεύει την αναφορά κατάστασης που δημιουργήθηκε σε ένα αρχείο JSON στην ακόλουθη τοποθεσία: s3://<Image Bucket>/status-report-files/<year>/<month>/<day>/<timestamp>/. Η ομάδα ITOps μπορεί να ενσωματώσει αυτήν την αναφορά με το υπάρχον σύστημα ειδοποιήσεων για να παρακολουθεί εάν η επεξεργασία εικόνας ολοκληρώθηκε με επιτυχία. Για επαγγελματίες χρήστες, μπορείτε να το επεκτείνετε περαιτέρω για να δημιουργήσετε μια αναφορά σε μορφή CSV.

Στείλτε ένα email μέσω Amazon SNS

Το Step Functions καλεί μια ενέργεια API SNS του Amazon για να στείλει ένα email. Το email περιέχει λεπτομέρειες, συμπεριλαμβανομένης της θέσης S3 για την αναφορά κατάστασης και τα τελικά αρχεία εικόνων. Ακολουθεί το δείγμα ηλεκτρονικού ταχυδρομείου ειδοποίησης.

Email ειδοποίησης

Συμπέρασμα

Σε αυτήν την ανάρτηση, παρέχουμε μια επισκόπηση ενός δείγματος λύσης που δείχνει την αυτοματοποίηση της αλλαγής του φόντου εικόνας σε κλίμακα χρησιμοποιώντας τις λειτουργίες του Amazon Bedrock και Step. Εξηγήσαμε επίσης λεπτομερώς κάθε στοιχείο της λύσης. Χρησιμοποιώντας τη βελτιστοποιημένη ενσωμάτωση Step Functions με το Amazon Bedrock, το Distributed Map και το μοντέλο Titan Image Generator G1, η λύση αντικαθιστά αποτελεσματικά τα φόντο των εικόνων παράλληλα, βελτιώνοντας την παραγωγικότητα και την επεκτασιμότητα.

Για να αναπτύξετε τη λύση, ανατρέξτε στις οδηγίες στο Αποθετήριο GitHub.

Υποστηρικτικό υλικό

Για να μάθετε περισσότερα για το Amazon Bedrock, ανατρέξτε στους ακόλουθους πόρους:

Για να μάθετε περισσότερα σχετικά με το μοντέλο Titan Image Generator G1, ανατρέξτε στους ακόλουθους πόρους:

Για να μάθετε περισσότερα σχετικά με τη χρήση του Amazon Bedrock with Step Functions, ανατρέξτε στους ακόλουθους πόρους:


Σχετικά με το Συγγραφέας

Αυτοματοποιήστε τη διαδικασία αλλαγής φόντου εικόνων χρησιμοποιώντας το Amazon Bedrock και το AWS Step Functions | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Τσετάν Μακβάνα είναι Senior Solutions Architect με τις Υπηρεσίες Web της Amazon. Συνεργάζεται με συνεργάτες και πελάτες της AWS για να τους παρέχει αρχιτεκτονική καθοδήγηση για τη δημιουργία κλιμακούμενης αρχιτεκτονικής και την εφαρμογή στρατηγικών για την υιοθέτηση των υπηρεσιών AWS. Είναι λάτρης της τεχνολογίας και οικοδόμος με βασικό τομέα ενδιαφέροντος για γενετική τεχνητή νοημοσύνη, χωρίς διακομιστές και DevOps. Εκτός δουλειάς, του αρέσει να παρακολουθεί παραστάσεις, να ταξιδεύει και τη μουσική. 

Σφραγίδα ώρας:

Περισσότερα από Μηχανική εκμάθηση AWS