অ্যামাজন বেডরক এবং AWS স্টেপ ফাংশন ব্যবহার করে ইমেজ ব্যাকগ্রাউন্ড পরিবর্তন করার প্রক্রিয়া স্বয়ংক্রিয় করুন আমাজন ওয়েব সার্ভিসেস

অ্যামাজন বেডরক এবং AWS স্টেপ ফাংশন ব্যবহার করে ইমেজ ব্যাকগ্রাউন্ড পরিবর্তন করার প্রক্রিয়া স্বয়ংক্রিয় করুন আমাজন ওয়েব সার্ভিসেস

সৃজনশীল বিজ্ঞাপন, মিডিয়া এবং বিনোদন, ইকমার্স এবং ফ্যাশন সহ অনেক গ্রাহকদের প্রায়শই প্রচুর সংখ্যক ছবিতে পটভূমি পরিবর্তন করতে হয়। সাধারণত, এটি ফটো সফ্টওয়্যার দিয়ে প্রতিটি ছবি ম্যানুয়ালি সম্পাদনা করে। এটি অনেক প্রচেষ্টা নিতে পারে, বিশেষ করে বড় ব্যাচের চিত্রগুলির জন্য৷ যাহোক, আমাজন বেডরক এবং এডাব্লুএস স্টেপ ফাংশন স্কেলে এই প্রক্রিয়াটি স্বয়ংক্রিয় করার জন্য এটি সহজতর করুন।

আমাজন বেডরক জেনারেটিভ এআই ফাউন্ডেশন মডেল অফার করে আমাজন টাইটান ইমেজ জেনারেটর G1, যা স্বয়ংক্রিয়ভাবে একটি কৌশল ব্যবহার করে একটি ছবির পটভূমি পরিবর্তন করতে পারে আউটপেইন্টিং. স্টেপ ফাংশন আপনাকে একটি স্বয়ংক্রিয় ওয়ার্কফ্লো তৈরি করতে দেয় যা অ্যামাজন বেডরক এবং অন্যান্য AWS পরিষেবাগুলির সাথে নির্বিঘ্নে সংযোগ করে৷ একসাথে, অ্যামাজন বেডরক এবং স্টেপ ফাংশনগুলি একাধিক ইমেজ জুড়ে স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ড পরিবর্তন করার পুরো প্রক্রিয়াটিকে প্রবাহিত করে।

এই পোস্টটি এমন একটি সমাধান উপস্থাপন করেছে যা একাধিক ছবিতে ব্যাকগ্রাউন্ড পরিবর্তন করার প্রক্রিয়াটিকে সহজ করে তোলে। এর ক্ষমতা ব্যবহার করে জেনারেটিভ এআই অ্যামাজন বেডরক এবং টাইটান ইমেজ জেনারেটর G1 মডেলের সাথে, স্টেপ ফাংশনগুলির সাথে মিলিত, এই সমাধানটি দক্ষতার সাথে পছন্দসই পটভূমিতে ছবি তৈরি করে। এই পোস্টটি সমাধানের অভ্যন্তরীণ কাজের অন্তর্দৃষ্টি প্রদান করে এবং আপনাকে এই নিজস্ব কাস্টম সমাধান তৈরি করার জন্য ডিজাইনের পছন্দগুলি বুঝতে সাহায্য করে।

দেখ GitHub সংগ্রহস্থল এই সমাধান স্থাপনের বিস্তারিত নির্দেশাবলীর জন্য।

সমাধান ওভারভিউ

নির্দিষ্ট উপাদান এবং ব্যবহৃত AWS পরিষেবাগুলির গভীরে যাওয়ার আগে সমাধানটি উচ্চ স্তরে কীভাবে কাজ করে তা দেখা যাক৷ নিম্নলিখিত চিত্রটি সমাধানের আর্কিটেকচারের একটি সরলীকৃত দৃশ্য প্রদান করে এবং মূল উপাদানগুলিকে হাইলাইট করে।

সমাধান আর্কিটেকচার

কর্মপ্রবাহ নিম্নলিখিত পদক্ষেপ নিয়ে গঠিত:

  1. একজন ব্যবহারকারী একটিতে একাধিক ছবি আপলোড করে আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3) একটি Streamlit ওয়েব অ্যাপ্লিকেশনের মাধ্যমে বালতি।
  2. Streamlit ওয়েব অ্যাপ্লিকেশন একটি কল অ্যামাজন এপিআই গেটওয়ে REST API এন্ডপয়েন্ট এর সাথে ইন্টিগ্রেটেড আমাজন রেকোনিশন DetectLabels API, যা প্রতিটি ছবির জন্য লেবেল সনাক্ত করে।
  3. জমা দেওয়ার পরে, স্ট্রিমলিট ওয়েব অ্যাপ্লিকেশন একটি আপডেট করে আমাজন ডায়নামোডিবি ছবির বিবরণ সহ টেবিল।
  4. DynamoDB আপডেট একটি ট্রিগার করে এডাব্লুএস ল্যাম্বদা ফাংশন, যা একটি স্টেপ ফাংশন ওয়ার্কফ্লো শুরু করে।
  5. স্টেপ ফাংশন ওয়ার্কফ্লো প্রতিটি ছবির জন্য নিম্নলিখিত ধাপগুলি চালায়:
    5.1 অ্যামাজন বেডরকের জন্য একটি অনুরোধ পেলোড তৈরি করে৷ InvokeModel API- টি।
    5.2 অ্যামাজন বেডরককে আহ্বান করে InvokeModel API অ্যাকশন।
    5.3 প্রতিক্রিয়া থেকে একটি চিত্র পার্স করে এবং এটি একটি S3 অবস্থানে সংরক্ষণ করে৷
    5.4 একটি DynamoDB টেবিলে চিত্রের অবস্থা আপডেট করে।
  6. স্টেপ ফাংশন ওয়ার্কফ্লো একটি স্ট্যাটাস রিপোর্ট তৈরি করতে একটি Lambda ফাংশন আহ্বান করে।
  7. ওয়ার্কফ্লো ব্যবহার করে একটি ইমেল পাঠায় অ্যামাজন সাধারণ বিজ্ঞপ্তি পরিষেবা (আমাজন এসএনএস)।

নিম্নলিখিত স্ক্রিনশটে দেখানো হয়েছে, স্ট্রিমলিট ওয়েব অ্যাপ্লিকেশন আপনাকে ছবি আপলোড করতে এবং ইমেজ তৈরির জন্য পছন্দসই ব্যাকগ্রাউন্ড, নেতিবাচক প্রম্পট এবং আউটপেইন্টিং মোড নির্দিষ্ট করতে পাঠ্য প্রম্পট প্রবেশ করতে দেয়। এছাড়াও আপনি প্রতিটি আপলোড করা ছবির সাথে সম্পর্কিত অবাঞ্ছিত লেবেলগুলি দেখতে এবং মুছে ফেলতে পারেন যা আপনি চূড়ান্ত জেনারেট করা ছবিতে রাখতে চান না৷

স্ট্রিমলিট ওয়েব অ্যাপ্লিকেশন

এই উদাহরণে, পটভূমির জন্য প্রম্পট হল "লন্ডন শহরের পটভূমি।" স্বয়ংক্রিয়তা প্রক্রিয়াটি মূল আপলোড করা ছবিগুলির উপর ভিত্তি করে নতুন ছবি তৈরি করে যার পটভূমিতে লন্ডন রয়েছে৷

উত্পন্ন ছবি

স্ট্রিমলিট ওয়েব অ্যাপ্লিকেশন এবং ছবি আপলোড

একটি Streamlit ওয়েব অ্যাপ্লিকেশন এই সমাধানের জন্য ফ্রন্টএন্ড হিসাবে কাজ করে। অননুমোদিত অ্যাক্সেস থেকে অ্যাপ্লিকেশনটিকে রক্ষা করতে, এটি একটি এর সাথে একীভূত হয় অ্যামাজন কগনিটো ব্যবহারকারী পুল। API গেটওয়ে একটি ব্যবহার করে অ্যামাজন কগনিটো অনুমোদনকারী অনুরোধ প্রমাণীকরণ করতে। ওয়েব অ্যাপ্লিকেশন নিম্নলিখিত পদক্ষেপগুলি সম্পন্ন করে:

  1. প্রতিটি নির্বাচিত চিত্রের জন্য, এটি একটি API গেটওয়ে REST API এন্ডপয়েন্ট ব্যবহার করে অ্যামাজন স্বীকৃতির মাধ্যমে লেবেলগুলি পুনরুদ্ধার করে৷
  2. জমা দেওয়ার পরে, অ্যাপ্লিকেশনটি একটি S3 বালতিতে ছবি আপলোড করে।
  3. অ্যাপ্লিকেশনটি অন্য API গেটওয়ে REST API এন্ডপয়েন্ট ব্যবহার করে প্রতিটি ছবির জন্য প্রাসঙ্গিক প্যারামিটার, ছবির নাম এবং সংশ্লিষ্ট লেবেল সহ একটি DynamoDB টেবিল আপডেট করে।

ইমেজ প্রসেসিং ওয়ার্কফ্লো

যখন DynamoDB টেবিল আপডেট করা হয়, ডায়নামোডিবি স্ট্রীম একটি নতুন স্টেপ ফাংশন ওয়ার্কফ্লো শুরু করতে একটি Lambda ফাংশন ট্রিগার করে। নিম্নলিখিত কর্মপ্রবাহের জন্য একটি নমুনা অনুরোধ:

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

স্টেপ ফাংশন ওয়ার্কফ্লো পরবর্তীতে নিম্নলিখিত তিনটি ধাপ সম্পাদন করে:

  1. সমস্ত ছবির জন্য পটভূমি প্রতিস্থাপন করুন.
  2. একটি স্ট্যাটাস রিপোর্ট তৈরি করুন।
  3. Amazon SNS এর মাধ্যমে একটি ইমেল পাঠান।

নিম্নলিখিত স্ক্রিনশট স্টেপ ফাংশন ওয়ার্কফ্লো ব্যাখ্যা করে।

AWS স্টেপ ফাংশন ওয়ার্কফ্লো

আসুন আরো বিস্তারিতভাবে প্রতিটি ধাপ তাকান।

সমস্ত ছবির জন্য পটভূমি প্রতিস্থাপন

স্টেপ ফাংশন ব্যবহার করে a বিতরণ করা মানচিত্র সমান্তরাল চাইল্ড ওয়ার্কফ্লোতে প্রতিটি ইমেজ প্রক্রিয়া করতে। ডিস্ট্রিবিউটেড ম্যাপ উচ্চ-সঙ্গতি প্রক্রিয়াকরণের অনুমতি দেয়। প্রতিটি শিশুর কর্মপ্রবাহের পিতামাতার কর্মপ্রবাহের থেকে নিজস্ব পৃথক রানের ইতিহাস রয়েছে।

ধাপ ফাংশন একটি ব্যবহার করে আমাজন বেডরকের জন্য InvokeModel অপ্টিমাইজ করা API অ্যাকশন. API 25 MB পর্যন্ত অনুরোধ এবং প্রতিক্রিয়া গ্রহণ করে। যাইহোক, স্টেপ ফাংশনের স্টেট পেলোড ইনপুট এবং আউটপুটে 256 KB সীমা রয়েছে। বড় ইমেজ সমর্থন করতে, সমাধান একটি S3 বালতি ব্যবহার করে যেখানে InvokeModel API থেকে ডেটা পড়ে এবং ফলাফল লিখে। নিম্নলিখিত জন্য কনফিগারেশন InvokeModel আমাজন বেডরক ইন্টিগ্রেশনের জন্য 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”
    } 
}

সার্জারির 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
    }
}

টাইটান ইমেজ জেনারেটর G1 মডেল ইমেজ তৈরির জন্য নিম্নলিখিত পরামিতি সমর্থন করে:

  • টাস্ক টাইপ - ছবির পটভূমি প্রতিস্থাপন করার জন্য আউটপেইন্টিং পদ্ধতি নির্দিষ্ট করে।
  • পাঠ - পটভূমি সংজ্ঞায়িত করার জন্য একটি পাঠ্য প্রম্পট।
  • নেতিবাচক পাঠ্য - ছবিতে কী অন্তর্ভুক্ত করা উচিত নয় তা সংজ্ঞায়িত করার জন্য একটি পাঠ্য প্রম্পট৷
  • মাস্কপ্রম্পট - একটি পাঠ্য প্রম্পট যা মুখোশকে সংজ্ঞায়িত করে। এটি লেবেলগুলির সাথে মিলে যায় যা আপনি চূড়ান্ত জেনারেট করা চিত্রগুলিতে রাখতে চান৷
  • মাস্ক ইমেজ - বেস64 এ এনকোড করা JPEG বা PNG ছবি।
  • আউটপেইন্টিং মোড - মাস্কের ভিতরে পিক্সেল পরিবর্তনের অনুমতি দেওয়া হবে কিনা তা নির্দিষ্ট করে। ডিফল্ট মাস্কের ভিতরে ইমেজ পরিবর্তন করার অনুমতি দেয় যাতে এটি পুনর্গঠিত পটভূমির সাথে সামঞ্জস্যপূর্ণ থাকে। PRECISE মুখোশের ভিতরে চিত্রের পরিবর্তনকে বাধা দেয়।
  • সংখ্যার ছবি - তৈরি করা ছবির সংখ্যা।
  • গুণ - উত্পন্ন চিত্রের গুণমান: standard or premium.
  • cfgScale - উত্পন্ন চিত্রটি প্রম্পটকে কতটা দৃঢ়ভাবে মেনে চলতে হবে তা নির্দিষ্ট করে।
  • উচ্চতা - পিক্সেলে ছবির উচ্চতা।
  • প্রস্থ - পিক্সেলে ছবির প্রস্থ।

আমাজন বেডরক InvokeModel API-এ একটি এনকোড করা চিত্র সহ একটি প্রতিক্রিয়া তৈরি করে৷ Output S3Uri অবস্থান আরেকটি Lambda ফাংশন প্রতিক্রিয়া থেকে চিত্রটি পার্স করে, বেস64 থেকে এটিকে ডিকোড করে এবং নিম্নলিখিত অবস্থানে চিত্র ফাইলটিকে সংরক্ষণ করে: 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 ফর্ম্যাটে একটি প্রতিবেদন তৈরি করতে এটিকে আরও প্রসারিত করতে পারেন।

Amazon SNS এর মাধ্যমে একটি ইমেল পাঠান

স্টেপ ফাংশন একটি ইমেল পাঠাতে একটি Amazon SNS API অ্যাকশন আহ্বান করে। ইমেলে স্ট্যাটাস রিপোর্ট এবং চূড়ান্ত ছবি ফাইলের জন্য S3 অবস্থান সহ বিশদ বিবরণ রয়েছে। নিম্নলিখিত নমুনা বিজ্ঞপ্তি ইমেল.

বিজ্ঞপ্তি ইমেল

উপসংহার

এই পোস্টে, আমরা অ্যামাজন বেডরক এবং স্টেপ ফাংশন ব্যবহার করে স্কেলে চিত্রের পটভূমি পরিবর্তনের স্বয়ংক্রিয়তা প্রদর্শন করে একটি নমুনা সমাধানের একটি ওভারভিউ প্রদান করেছি। আমরা সমাধানের প্রতিটি উপাদান বিশদভাবে ব্যাখ্যা করেছি। অ্যামাজন বেডরক, ডিস্ট্রিবিউটেড ম্যাপ, এবং টাইটান ইমেজ জেনারেটর G1 মডেলের সাথে স্টেপ ফাংশন অপ্টিমাইজড ইন্টিগ্রেশন ব্যবহার করে, সমাধানটি দক্ষতার সাথে সমান্তরালভাবে চিত্রগুলির ব্যাকগ্রাউন্ডগুলিকে প্রতিস্থাপন করে, উত্পাদনশীলতা এবং মাপযোগ্যতা বাড়ায়।

সমাধান স্থাপন করতে, নির্দেশাবলী পড়ুন GitHub সংগ্রহস্থল.

Resources

অ্যামাজন বেডরক সম্পর্কে আরও জানতে, নিম্নলিখিত সংস্থানগুলি দেখুন:

টাইটান ইমেজ জেনারেটর জি 1 মডেল সম্পর্কে আরও জানতে, নিম্নলিখিত সংস্থানগুলি দেখুন:

স্টেপ ফাংশন সহ অ্যামাজন বেডরক ব্যবহার সম্পর্কে আরও জানতে, নিম্নলিখিত সংস্থানগুলি দেখুন:


লেখক সম্পর্কে

অ্যামাজন বেডরক এবং AWS স্টেপ ফাংশন ব্যবহার করে ইমেজ ব্যাকগ্রাউন্ড পরিবর্তন করার প্রক্রিয়া স্বয়ংক্রিয় করুন আমাজন ওয়েব সার্ভিস প্লেটোব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.চেতন মাকভানা আমাজন ওয়েব সার্ভিসের একজন সিনিয়র সলিউশন আর্কিটেক্ট। তিনি AWS অংশীদারদের এবং গ্রাহকদের সাথে কাজ করেন যাতে তারা স্কেলযোগ্য স্থাপত্য তৈরির জন্য স্থাপত্য নির্দেশিকা প্রদান করে এবং AWS পরিষেবাগুলি গ্রহণ করার জন্য কৌশলগুলি বাস্তবায়ন করে। তিনি একজন প্রযুক্তি উত্সাহী এবং একজন নির্মাতা যিনি জেনারেটিভ AI, সার্ভারহীন এবং DevOps-এর উপর আগ্রহের মূল ক্ষেত্র। কাজের বাইরে, তিনি শো, ভ্রমণ এবং গান দেখতে পছন্দ করেন। 

সময় স্ট্যাম্প:

থেকে আরো এডাব্লুএস মেশিন লার্নিং

AWS অ্যাক্সিলারেটর জুড়ে স্টার্টআপগুলি মিশন-সমালোচনামূলক গ্রাহক চ্যালেঞ্জগুলি সমাধান করতে AI এবং ML ব্যবহার করে

উত্স নোড: 1734450
সময় স্ট্যাম্প: নভেম্বর 1, 2022

এমএল প্রশিক্ষণ এবং অনুমান কর্মক্ষমতা এবং খরচ অপ্টিমাইজ করতে অ্যামাজন মিউজিক কীভাবে NVIDIA-এর সাথে SageMaker ব্যবহার করে | আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 1916113
সময় স্ট্যাম্প: নভেম্বর 21, 2023

প্রযুক্তি উদ্ভাবন ইনস্টিটিউট Amazon SageMaker-এ অত্যাধুনিক ফ্যালকন LLM 40B ফাউন্ডেশন মডেলকে প্রশিক্ষণ দেয় | আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 1846484
সময় স্ট্যাম্প: জুন 7, 2023