Zephyrnet Logosu

Amazon Bedrock ve AWS Step Functions'ı kullanarak görüntü arka planlarını değiştirme sürecini otomatikleştirin | Amazon Web Hizmetleri

Tarih:

Yaratıcı reklamcılık, medya ve eğlence, e-ticaret ve moda sektörlerinde faaliyet gösterenler de dahil olmak üzere pek çok müşteri, genellikle çok sayıda görselin arka planını değiştirme ihtiyacı duyar. Tipik olarak bu, her görüntünün fotoğraf yazılımıyla manuel olarak düzenlenmesini içerir. Bu, özellikle büyük resim grupları için çok fazla çaba gerektirebilir. Fakat, Amazon Ana Kayası ve AWS Basamak İşlevleri Bu süreci geniş ölçekte otomatikleştirmeyi kolaylaştırın.

Amazon Bedrock üretken yapay zeka temel modelini sunuyor Amazon Titan Görüntü Oluşturucu G1adı verilen bir tekniği kullanarak bir görüntünün arka planını otomatik olarak değiştirebilen boyamak. Step Functions, Amazon Bedrock ve diğer AWS hizmetlerine sorunsuz bir şekilde bağlanan otomatik bir iş akışı oluşturmanıza olanak tanır. Amazon Bedrock ve Step Functions birlikte, birden fazla görüntüdeki arka planların otomatik olarak değiştirilmesi sürecinin tamamını kolaylaştırır.

Bu yazı, birden fazla görüntüde arka planı değiştirme işlemini basitleştiren bir çözüm sunuyor. Yeteneklerinden yararlanarak üretken yapay zeka Amazon Bedrock ve Titan Image Generator G1 modelinin Step Functions ile birlikte kullanıldığı bu çözüm, istenen arka plana sahip görüntüleri verimli bir şekilde oluşturur. Bu gönderi, çözümün iç işleyişine ilişkin bilgi sağlar ve bu özel çözümü oluşturmak için yapılan tasarım seçimlerini anlamanıza yardımcı olur.

Bak GitHub deposu Bu çözümün dağıtımına ilişkin ayrıntılı talimatlar için.

Çözüme genel bakış

Belirli öğelere ve kullanılan AWS hizmetlerine daha derinlemesine dalmadan önce çözümün yüksek düzeyde nasıl çalıştığına bakalım. Aşağıdaki diyagram, çözüm mimarisinin basitleştirilmiş bir görünümünü sağlar ve temel unsurları vurgular.

Çözüm Mimarisi

İş akışı aşağıdaki adımlardan oluşur:

  1. Bir kullanıcı birden fazla görüntüyü bir dosyaya yükler. Amazon Basit Depolama Hizmeti (Amazon S3) Streamlit web uygulaması aracılığıyla kova.
  2. Streamlit web uygulaması bir çağrı yapar Amazon API Ağ Geçidi REST API uç noktası ile entegre Amazon Rekognisyon DetectLabels API'si, her görüntü için etiketleri algılar.
  3. Gönderim üzerine Streamlit web uygulaması bir güncellemeyi günceller. Amazon DinamoDB görüntü ayrıntıları içeren tablo.
  4. DynamoDB güncellemesi bir tetikleyiciyi tetikler: AWS Lambda Step Functions iş akışını başlatan işlev.
  5. Step Functions iş akışı her görüntü için aşağıdaki adımları çalıştırır:
    5.1 Amazon Ana Kayası için bir istek verisi oluşturur InvokeModel API.
    5.2 Amazon Ana Kayasını Çağırır InvokeModel API eylemi.
    5.3 Yanıttan bir görüntüyü ayrıştırır ve bunu bir S3 konumuna kaydeder.
    5.4 DynamoDB tablosundaki görüntü durumunu günceller.
  6. Step Functions iş akışı, bir durum raporu oluşturmak için Lambda işlevini çağırır.
  7. İş akışı şunu kullanarak bir e-posta gönderir: Amazon Basit Bildirim Servisi (Amazon SNS'si).

Aşağıdaki ekran görüntüsünde gösterildiği gibi Streamlit web uygulaması, görüntü oluşturma için istenen arka planları, negatif istemleri ve dış boyama modunu belirlemek için görüntüleri yüklemenize ve metin istemleri girmenize olanak tanır. Ayrıca, yüklenen her görselle ilişkili olan ve son oluşturulan görsellerde kalmasını istemediğiniz istenmeyen etiketleri görüntüleyebilir ve kaldırabilirsiniz.

Kolaylaştırılmış Web Uygulaması

Bu örnekte arka plan istemi "Londra şehrinin arka planı"dır. Otomasyon süreci, arka planda Londra olmak üzere, yüklenen orijinal görüntülere dayalı olarak yeni görüntüler oluşturur.

Oluşturulan Görseller

Kolaylaştırılmış web uygulaması ve görsel yüklemeleri

Streamlit web uygulaması bu çözüm için ön uç görevi görür. Uygulamayı yetkisiz erişime karşı korumak için bir uygulamayla bütünleşir. Amazon Cognito'su kullanıcı havuzu. API Ağ Geçidi şunu kullanır: Amazon Cognito yetkilendiricisi istekleri doğrulamak için. Web uygulaması aşağıdaki adımları tamamlar:

  1. Seçilen her görüntü için etiketleri, bir API Gateway REST API uç noktası kullanarak Amazon Rekognition aracılığıyla alır.
  2. Gönderim üzerine uygulama, görüntüleri bir S3 klasörüne yükler.
  3. Uygulama, başka bir API Gateway REST API uç noktası kullanarak bir DynamoDB tablosunu ilgili parametreler, görüntü adları ve her görüntü için ilişkili etiketlerle günceller.

Görüntü işleme iş akışı

DynamoDB tablosu güncellendiğinde, DynamoDB Akışları yeni bir Step Functions iş akışını başlatmak için bir Lambda işlevini tetikler. Aşağıda iş akışına ilişkin örnek bir istek verilmiştir:

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

Adım İşlevleri iş akışı daha sonra aşağıdaki üç adımı gerçekleştirir:

  1. Tüm görsellerin arka planını değiştirin.
  2. Bir durum raporu oluşturun.
  3. Amazon SNS aracılığıyla bir e-posta gönderin.

Aşağıdaki ekran görüntüsü Step Functions iş akışını göstermektedir.

AWS Adım İşlevleri İş Akışı

Her adıma daha ayrıntılı olarak bakalım.

Tüm görsellerin arka planını değiştirin

Adım İşlevleri şunları kullanır: Dağıtılmış Harita her görüntüyü paralel alt iş akışlarında işlemek için. Dağıtılmış Harita, yüksek eşzamanlılık işlemeye olanak tanır. Her alt iş akışının, üst iş akışının çalışma geçmişinden ayrı bir çalışma geçmişi vardır.

Adım İşlevleri şunu kullanır: Amazon Bedrock için InvokeModel optimize edilmiş API eylemi. API, boyutu 25 MB'a kadar olan istekleri ve yanıtları kabul eder. Ancak Step Functions'ın durum verisi girişi ve çıkışında 256 KB sınırı vardır. Daha büyük görüntüleri desteklemek için çözüm, S3 klasörünü kullanır. InvokeModel API verileri okur ve sonucu yazar. Aşağıdakiler için yapılandırmadır: InvokeModel Amazon Bedrock entegrasyonu için API:

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

The Input S3Uri parametresi giriş verilerinin alınacağı kaynak konumunu belirtir. Output S3Uri parametresi API yanıtının yazılacağı hedefi belirtir.

Lambda işlevi, istek yükünü belirtilen JSON dosyası olarak kaydeder. Input S3Uri yer. InvokeModel API, belirtilen arka plana sahip görüntüler oluşturmak için bu giriş yükünü kullanır:

{
    "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 modeli, görüntü oluşturmaya yönelik aşağıdaki parametreleri destekler:

  • görev Türü – Görüntünün arka planını değiştirmek için dış boyama yöntemini belirtir.
  • metin – Arka planı tanımlamak için bir metin istemi.
  • NegatifMetin – Resme nelerin dahil edilmeyeceğini tanımlayan bir metin istemi.
  • maskeİstemi – Maskeyi tanımlayan bir metin istemi. Oluşturulan son görüntülerde saklamak istediğiniz etiketlere karşılık gelir.
  • maskeResim – Base64'te kodlanmış JPEG veya PNG görüntüsü.
  • outPaintingMode – Maske içindeki piksellerin değiştirilmesine izin verilip verilmeyeceğini belirtir. DEFAULT, yeniden oluşturulan arka planla tutarlı kalması için maskenin içindeki görüntünün değiştirilmesine izin verir. PRECISE, maskenin içindeki görüntünün değiştirilmesini önler.
  • resim sayısı – Oluşturulacak görüntü sayısı.
  • kalite – Oluşturulan görüntülerin kalitesi: standard or premium.
  • cfgÖlçek – Oluşturulan görüntünün istemlere ne kadar güçlü bir şekilde uyması gerektiğini belirtir.
  • yükseklik – Görüntünün piksel cinsinden yüksekliği.
  • genişlik – Görüntünün piksel cinsinden genişliği.

Amazon Ana Kayası InvokeModel API, kodlanmış bir görüntüyle bir yanıt oluşturur. Output S3Uri konum. Başka bir Lambda işlevi, görüntüyü yanıttan ayrıştırır, base64'ten kodunu çözer ve görüntü dosyasını aşağıdaki konuma kaydeder: s3://<Image Bucket>/generated-image-file/<year>/<month>/<day>/<timestamp>/.

Son olarak, bir alt iş akışı, bir DynamoDB tablosunu görüntü oluşturma durumuyla günceller ve onu şu şekilde işaretler: başarılı or başarısızve aşağıdaki gibi ayrıntıları içerir: ImageName, Cause, Error, ve Status.

Durum raporu oluştur

Görüntü oluşturma sürecinin ardından bir Lambda işlevi, durum ayrıntılarını DynamoDB'den alır. Bu ayrıntıları JSON formatında kapsamlı bir durum raporunda dinamik olarak derler. Daha sonra oluşturulan durum raporunu bir JSON dosyasına aşağıdaki konuma kaydeder: s3://<Image Bucket>/status-report-files/<year>/<month>/<day>/<timestamp>/. ITOps ekibi, görüntü işlemenin başarıyla tamamlanıp tamamlanmadığını takip etmek için bu raporu mevcut bildirim sistemleriyle entegre edebilir. İş kullanıcıları için CSV formatında bir rapor oluşturmak üzere bunu daha da genişletebilirsiniz.

Amazon SNS aracılığıyla bir e-posta gönderin

Step Functions, e-posta göndermek için bir Amazon SNS API eylemini başlatır. E-posta, durum raporu ve son görüntü dosyaları için S3 konumu da dahil olmak üzere ayrıntıları içerir. Örnek bildirim e-postası aşağıdadır.

Bildirim e-postası

Sonuç

Bu gönderide Amazon Bedrock ve Step Functions'ı kullanarak görüntü arka planlarını uygun ölçekte değiştirmenin otomasyonunu gösteren örnek bir çözüme genel bir bakış sunduk. Ayrıca çözümün her unsurunu detaylı bir şekilde anlattık. Step Functions'ın Amazon Bedrock, Distributed Map ve Titan Image Generator G1 modeliyle optimize edilmiş entegrasyonunu kullanan çözüm, görüntülerin arka planlarını verimli bir şekilde paralel olarak değiştirerek üretkenliği ve ölçeklenebilirliği artırır.

Çözümü dağıtmak için aşağıdaki talimatlara bakın. GitHub deposu.

Kaynaklar

Amazon Bedrock hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:

Titan Image Generator G1 modeli hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:

Amazon Bedrock'u Step Functions ile kullanma hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:


Yazar Hakkında

Çetan Makvana Amazon Web Services'te Kıdemli Çözüm Mimarıdır. Ölçeklenebilir mimari oluşturma ve AWS hizmetlerinin benimsenmesini teşvik edecek stratejiler uygulama konusunda onlara mimari rehberlik sağlamak için AWS iş ortakları ve müşterileri ile birlikte çalışıyor. Kendisi bir teknoloji tutkunu ve temel ilgi alanı üretken yapay zeka, sunucusuz ve DevOps olan bir inşaatçıdır. İş dışında şov izlemekten, seyahat etmekten ve müzikten hoşlanıyor. 

spot_img

En Son İstihbarat

spot_img