يتيح لك نموذج الانتشار المستقر إنشاء صور إبداعية باستخدام النص. تقدم Amazon نماذج مدربة مسبقًا لسهولة الاستخدام للتعلم الآلي (ML) باستخدام Sagemaker JumpStart ، والتي تم تزويدها بنماذج فرق إضافية منذ أكتوبر 2022. يتيح لك ذلك إنشاء صورة فرق مستقرة بسهولة ، وكذلك تقديم نقطة نهاية Sagemaker للخدمة الفورية. تتوسع نقطة نهاية Sagemaker تلقائيًا عند زيادة حركة المرور ، بحيث يمكنها الحفاظ على البنية التحتية بكفاءة حتى عندما تكون تقلبات حركة المرور شديدة وتوفر أمنًا معززة على IAM.
في الكلمات الرئيسية المستقرة ، يمكنك رؤية نتائج الفرق المستقر وفقًا للكلمات الرئيسية.
"The Legend of Zelda Landscape Atmospheric ، واقعية مفرطة ، 8 كيلو ، تكوين ملحمي ، سينمائي ، عرض الأوكتان ، المناظر الطبيعية Clifton & Galen Rowell ، قرار 16 كيلو بايت ، Photo Veduta Photo Dustin Lefevre & Tdraw ، قرار 8K Deviantart ، Flickr ، تم تقديمه في Enscape ، Miyazaki ، Nausicaa Ghibli ، Breath of the Wild ، 4K معالجة ما بعد التفاصيل ، ArtStation ، تقديم بواسطة محرك غير واقعي "

الاستجابة التي تم الحصول عليها عند طلب صورة الانتشار المستقرة التي توفرها JumpStart مع نقطة نهاية Sagemaker هي كما يلي. في استجابة JSON ، يتم تسليم معلومات RGB للصورة إلى حقل "internated_image". من أجل استخدام هذا في العميل ، يجب تغييره إلى تنسيق الصورة. بالإضافة إلى ذلك ، نظرًا لأنه يجب المصادقة على شهادة IAM عند طلب توليد صورة مستقر مع نقطة نهاية Sagemaker ، يجب أن يكون للعميل بيانات اعتماد IAM ، ومعلومات حساسة ، وطلب API من خلال AWS SDK. لذلك ، يصعب تقديم متصفحات الويب أو تطبيقات الهاتف المحمول. لهذا السبب ، يستخدم هذا المنشور بوابة API و Lambda للحصول على شهادة IAM وتحويل ملف الصور إلى نقطة نهاية Sagemaker.
{
"generated_image" : [
[[ 221 , 145 , 108 ],[ 237 , 141 , 98 ],[ 249 , 154 , 111 ],..]
...
],
"prompt" : "{
predictions" :[{
"prompt" : "astronaut on a horse" ,
"width" : 768 ,
"height" : 512 ,
"num_images_per_prompt" : 1 ,
"num_inference_steps" : 50 ,
"guidance_scale" : 7.5
}]
}
}العمارة العامة هي كما يلي. لدى Sagemaker نموذج انتشار مستقر يقدمه JumpStart لإنشاء صورة من نص الإدخال. تقوم Lambda بتسليم المعلومات النصية التي يقدمها المستخدم إلى نقطة نهاية Sagemaker من خلال مصادقة IAM ويحصل على معلومات الصورة الناتجة في شكل خريطة الصورة. يتم تخزين خريطة الصورة في S3 كتنسيق JPEG لسهولة الاستخدام ، وتنشئ عنوان URL للصورة باستخدام معلومات مجال CloudFront. تتلقى API Gateway طلب المستخدم كواجهة برمجة تطبيقات مريحة وتقدم طلب المستخدم إلى Lambda ، ويتم تسليم معلومات صورة عنوان URL التي أنشأتها Lambda إلى المستخدم. يتم توزيع جميع الخدمات باستخدام AWS CDK ، ويتم إدارة صور حاوية Docker مع ECR.

في Lambda ، يجب عليك تحديد "ContentType" و "قبول" كما هو موضح أدناه عند طلب الاستدلال مع نقطة نهاية Sagemaker.
"ContentType" : "application/json" ,
"Accept" : "application/json" ,في هذه الحالة ، يقدم جسم الطلب المعلومات اللازمة للفرق المستقر للتنسيق أدناه. العرض ، يجب تقسيم الارتفاع إلى 8 لتحديد حجم الصورة. num_images_per_prompt هو عدد الصور التي تم إنشاؤها في وقت واحد ، ويشير num_inference_steps إلى خطوة تقليلها عند إنشاء صورة. Guidance_Scale يعبر عن مدى المطالبة.
{
predictions ":[{
" prompt ": "astronaut on a horse" ,
"width" : 768 ,
"height" : 512 ,
"num_images_per_prompt" : 1 ,
"num_inference_steps" : 50 ,
"guidance_scale" : 7.5
}]
}في lambda_function.py ، نقدم طلبًا كما هو موضح أدناه. باستخدام Python's Boto3 ، يتم تسليم الطلب إلى نقطة نهاية Sagemaker ، و ContentType هو "Application/JSON" ، ورأس قبول هو "قبول = 'التطبيق/json" أو يمكنك استخدام "قبول = 'التطبيق/JSON ؛ JPEG".
import boto3
runtime = boto3 . Session (). client ( 'sagemaker-runtime' )
response = runtime . invoke_endpoint ( EndpointName = endpoint , ContentType = 'application/json' , Accept = 'application/json;jpeg' , Body = json . dumps ( payload ))إذا تم تسمية القبول "Application/JSON" للاستعلام في نقطة نهاية Sagemaker ، فإن البيانات النصية المصنوعة من RGB تنخفض. يتم استخراج بيانات الصورة من "جسم" JSON و "endrended_image" ، ثم تتحول إلى بيانات صورة ثنائية يمكن تخزينها في S3 باستخدام PIL (وسادة) ومكتبة Numpy. يظهر الرمز في lambda_function.py أدناه.
from PIL import Image
import numpy as np
def parse_response ( query_response ):
response_dict = json . loads ( query_response )
return response_dict [ "generated_images" ], response_dict [ "prompt" ]
response_payload = response [ 'Body' ]. read (). decode ( 'utf-8' )
generated_image , prompt = parse_response ( response_payload )
image = Image . fromarray ( np . uint8 ( generated_images [ 0 ]))
buffer = io . BytesIO ()
image . save ( buffer , "jpeg" )
buffer . seek ( 0 )
s3 = boto3 . client ( 's3' )
s3 . upload_fileobj ( buffer , mybucket , mykey , ExtraArgs = { "ContentType" : "image/jpeg" })بالمناسبة ، في Lambda ، يجب إضافة الوسادة والمكتبات numpy مع "PIP install -target = [Lambda Folder] Pillow Numpy" ثم مضغوط وتحميل. يتيح لك استخدام مكتبات مثل Numpy. مثال Dockerfile في هذا الوقت هو كما يلي.
FROM amazon / aws - lambda - python : 3.8
RUN pip3 install -- upgrade pip
RUN python - m pip install joblib awsiotsdk
RUN pip install numpy pillow
WORKDIR / var / task / lambda
COPY lambda_function . py / var / task
COPY . .
CMD [ "lambda_function.lambda_handler" ]إذا قمت بتعيين رأس قبول على "Application/JSON ؛ JPEG" ، فإن نقطة نهاية Sagemaker تنقل صورة JPEG الترميز إلى BASE64. لذلك ، بعد فك تشفير BASE64 ، قم بتغييره إلى تيار ثنائي في الذاكرة وتحميله إلى S3.
response_payload = response [ 'Body' ]. read (). decode ( 'utf-8' )
generated_image , prompt = parse_response ( response_payload )
import base64
img_str = base64 . b64decode ( generated_image )
buffer = io . BytesIO ( img_str )
s3 . upload_fileobj ( buffer , mybucket , mykey , ExtraArgs = { "ContentType" : "image/jpeg" })استعدادًا لنشر CDK ، نصف كيفية نشر S3 و Lambda و API Gateway و CloudFront إلى CDK.
نقطة نهاية الانتشار المستقرة إنشاء نقطة نهاية فرق مستقرة في Sagemaker Jumpstart.
البنية التحتية للتفكير هي بوابة API و S3 و Lambda و CloudFront وتوزيعها على AWS CDK. للحصول على معلومات التوزيع التفصيلية ، راجع stack. بعد تحديد إنشاء بيئة في وحدة التحكم Cloud9 لإنشاء Cloud9 ، أدخل الاسم كما هو موضح أدناه. هنا ، دخلت "انتشار Stabel". بعد ذلك ، حافظ على كل الباقي وحدد [إنشاء].

بعد إنشاء Cloud9 ، حدد [فتح] وأدخل المحطة كما هو موضح أدناه.

بعد ذلك ، قم بتنزيل الكود ذي الصلة كما هو موضح أدناه.
git clone https : //github.com/kyopark2014/stable-diffusion-api-serverنظرًا لأن معلومات نقطة النهاية الخاصة بـ SageMaker مطلوبة عند إنشاء البنية التحتية ، حدد "Diffification CDK/LIB/LIB/LIB/LIF/Liffusion-diffusion-stack.ts" كما هو موضح أدناه.

انتقل إلى Diffification CDK وتثبيت مكتبات "AWS-CDK-LIB" و "Path" مع NPM. هنا ، "AWS-CDK-LIB" تعني مكتبة CDK 2.0.
cd cdk - stable - diffusion && npm install aws - cdk - lib pathتثبيت البنية التحتية بأكملها مع الأمر التالي.
cdk deployعند اكتمال البنية التحتية مع CDK ، يمكنك معرفة معلومات البنية التحتية المثبتة كما هو موضح أدناه. حيث يتوفر Appurl لاتصال API باستخدام عبارة الاستعلام في المتصفح ، ويتم استخدام Curlurl للاختبار في Shell.

المثال الفعلي هو كما يلي.
CdkStableDiffusionStack . WebUrl = https : //1r9dqh4f37.execute-api.ap-northeast-2.amazonaws.com/dev/text2image?prompt=astronaut
CdkStableDiffusionStack . curlUrl = curl - X POST https : //1r9dqh4f37.execute-api.ap-northeast-2.amazonaws.com/dev/text2image -H "Content-Type: application/json" -d '{"text":"astronaut on a horse"}'كيفية الاتصال من المتصفح كما يلي. أدخل الجملة للاستعلام في المطالبة.
https : //1r9dqh4f37.execute-api.ap-northeast-2.amazonaws.com/dev/text2image?prompt=astronaut on a horseالنتائج في هذا الوقت هي كما يلي.

يمكنك تشغيل كما يلي مع أمر Curl.
curl - X POST https : //1r9dqh4f37.execute-api.ap-northeast-2.amazonaws.com/dev/text2image -H "Content-Type: application/json" -d '{"text":"astronaut on a horse"}'مثال على نتيجة التفكير. "الجسم" لديه عنوان URL للصورة التي تم إنشاؤها نتيجة للتفكير.
{ "statusCode" : 200 , "body" : "https://d283dvdglbetjo.cloudfront.net/img_20230208-014926" }حدد طريقة النشر كما هو موضح أدناه وأدخل عنوان URL.

أدخل في JSON في [الجسم] - [RAW].
{
"text" : "astronaut on a horse"
}أضف التطبيق/JSON إلى [الرؤوس] كأنه من نوع Conten كما هو موضح أدناه.

حدد [إرسال] واحصل على النتائج التالية.

لقد غيرت النص للدخول كما هو موضح أدناه.



جدي شاب شقراء جدي مع الشعر القصير يقف في فن مفهوم غروب الشمس من قبل دوغ تشيانغ السينمائي ، والرسم الواقعية ، والتحديد العالي ، والمفهوم الفن ، صورة بورت ، تتبع المسار ، المناظر الطبيعية الهادئة ، الجودة العالية ، مفصلة للغاية ، 8K ، ألوان ناعمة ، ألوان دافئة ، البحر المضطرب ، التماسك العالي ، التشريحي الفن الصحيح ، المفرط ، الفنية المفهوم ، الوجه المحدد ، خمسة أصابع ، متناظرة

عين العاصفة ، الغلاف الجوي ، واقعية مفرطة ، 8 كيلو ، تركيبة ملحمية ، سينمائية ، أو أوكتان ، رويل ، قرار 16K ، صورة فيدوتا للمناظر الطبيعية من تأليف داستن ليفيفري و Tdraw ، دقة 8K ، مشهد مفصل Flickr ، المقدمة في Enscape ، Miyazaki ، Nausicaa Ghibli ، Breath of the Wild ، 4K معالجة ما بعد التفصيلية

قم بإنشاء صور من نص مع نموذج الاختلاف المستقر على Amazon Sagemaker Jumpstart
تبسيط النماذج وحلول التعلم الآلي مسبقًا مع Amazon Sagemaker Jumpstart
مقدمة إلى JumpStart -Text إلى الصورة
نقطة نهاية Sagemaker (نقطة نهاية نموذج واحد)
قم ببناء وتلقائي إدارة مستخدمي Sagemaker Studio CDK
نشر نقاط نهاية Sagemaker مع CloudFormation
تشغيل ML بدون خادم على AWS Lambda
نشر نماذج فرق مستقرة على نقطة نهاية Amazon Sagemaker