يوضح هذا المشروع كيفية إنشاء الصور باستخدام Stable Diffusion من خلال استضافة ComfyUI على Amazon SageMaker Inference. إنه نمط تصميم يسمح بإضافة إمكانية إنشاء صور GenAI إلى تطبيقك.
تعد ComfyUI واحدة من واجهات المستخدم الرسومية والواجهة الخلفية الأكثر شيوعًا والتي تتيح لك إنشاء صور باستخدام Stable Diffusion. بعض الميزات الرئيسية:
من خلال استضافة ComfyUI باستخدام Amazon SageMaker Inference، يمكن أن يكون مناسبًا بشكل خاص عندما تريد:
توجد وظيفة Lambda لاستدعاء نقطة نهاية استنتاج SageMaker (التي تقوم بتشغيل ComfyUI) لإنشاء الصور. على سبيل المثال، تم تكوين عنوان URL لوظيفة Lambda بحيث يمكنك اختبار إنشاء الصورة عن طريق الاتصال بنقطة نهاية HTTPS المخصصة هذه.
أسهل طريقة هي إطلاق مثيل EC2 لـ g5.xlarge
الذي يقوم بتشغيل AMI Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.3.0 (Amazon Linux 2)
. اتصل بـ instane باستخدام Session Manager ، ثم قم بإضافة مستخدم إلى مجموعة docker
عن طريق تشغيل الأمر التالي.
sudo usermod -a -G docker $( whoami )
قم بقطع الاتصال والاتصال مرة أخرى لتفعيل عضوية المجموعة المحدثة.
- إذا لم تقم بتشغيل ComfyUI محليًا، فإن المثيل الذي لا يحتوي على GPU مثل
t3.small
يعمل أيضًا.- إذا كنت تريد تشغيل طراز FLUX.1، فاستخدم
g5.2xlarge
على الأقل أو أعلى لإصدار fp8. استخدمg5.4xlarge
على الأقل لإصدار fp16.
يعمل AWS Cloud9 أو الجهاز المحلي أيضًا ولكن تأكد من تثبيت ما يلي بشكل صحيح.
ملاحظات: Apple M1/M2/M3 لا يعمل لأن إنشاء الحاوية عبر البنية غير مدعوم حتى الآن. يجب عليك البناء على x86_64 الذي يطابق نقطة نهاية SageMaker.
الخطوة 1 - استنساخ المشروع:
git clone https://github.com/aws-samples/comfyui-on-amazon-sagemaker.git
الخطوة 2 - تخصيص الملفات التالية (اختياري):
FLUX.1 - إذا كنت ترغب في تجربة نماذج FLUX.1:
- قم بإلغاء التعليق هنا أو هنا لتحميل النماذج.
- قم بالتحديث هنا لتغيير
SAGEMAKER_INSTANCE_TYPE
إلىml.g5.2xlarge
على الأقل.- استخدم ملف المطالبة المقابل
flux1-dev-fp8-ckpt.json
أوflux1-schnell-fp8-ckpt.json
في طلب API.
الخطوة 3 – تشغيل Deploy.sh. عادة ما يستغرق الأمر أقل من ساعة واحدة لإكماله.
./deploy.sh
للتوضيح، تم تمكين عنوان URL لوظيفة Lambda حتى تتمكن من اختبار إنشاء الصورة عن طريق الاتصال بنقطة نهاية HTTPS المخصصة هذه. يمكن العثور على عنوان URL لنقطة النهاية على ComfyUIFunctionUrl
من مخرجات المكدس.
يتم تكوين مصادقة AWS_IAM
بشكل افتراضي لاستدعاء عنوان URL لوظيفة lambda، لذا يجب عليك التوقيع على كل طلب HTTP باستخدام AWS Signature الإصدار 4 (SigV4). توفر أدوات مثل awscurl وPostman وAWS SigV4 Proxy طرقًا مدمجة لتوقيع طلباتك باستخدام SigV4. يمكنك تعطيل المصادقة عن طريق تعيين LAMBDA_URL_AUTH_TYPE
على NONE
في Deploy.sh ولكنه أمر خطير لأن عنوان URL للوظيفة مفتوح للجميع.
مثال على ترخيص AWS Signature باستخدام Postman:
وهنا مثال على نص الطلب:
{
"positive_prompt" : " hill happy dog " ,
"negative_prompt" : " hill " ,
"prompt_file" : " workflow_api.json " ,
"seed" : 11245
}
استدعاء ناجح لرؤية الصورة التي تم إنشاؤها:
احذف الموارد التالية التي تم نشرها بواسطة Deploy.sh.
comfyui
)comfyui-sagemaker-<AWS_ACCOUNT_ID>-<AWS_REGION>
)comfyui-sagemaker
) انظر التنمية
انظر المساهمة لمزيد من المعلومات.
هذه المكتبة مرخصة بموجب ترخيص MIT-0. انظر ملف الترخيص.