โปรเจ็กต์นี้สาธิตวิธีสร้างอิมเมจโดยใช้ Stable Diffusion โดยการโฮสต์ ComfyUI บน Amazon SageMaker Inference เป็นรูปแบบการออกแบบที่ช่วยเพิ่มความสามารถในการสร้างภาพ GenAI ให้กับแอปพลิเคชันของคุณ
ComfyUI เป็นหนึ่งใน GUI และแบ็กเอนด์ยอดนิยมที่ช่วยให้คุณสามารถสร้างภาพโดยใช้ Stable Diffusion คุณสมบัติที่สำคัญบางประการ:
ด้วยการโฮสต์ ComfyUI โดยใช้ Amazon SageMaker Inference จะเหมาะสมอย่างยิ่งเมื่อคุณต้องการ:
มีฟังก์ชัน Lambda เพื่อเรียกใช้จุดสิ้นสุดการอนุมานของ SageMaker (ซึ่งใช้ ComfyUI) เพื่อสร้างรูปภาพ เพื่อเป็นตัวอย่าง URL ฟังก์ชัน Lambda ได้รับการกำหนดค่าเพื่อให้คุณสามารถทดสอบการสร้างอิมเมจได้โดยการเรียกไปยังตำแหน่งข้อมูล HTTPS เฉพาะนี้
วิธีที่ง่ายที่สุดคือการเปิดใช้ EC2 instance ของ g5.xlarge
ที่ใช้งาน AMI Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.3.0 (Amazon Linux 2)
เชื่อมต่อกับอินสแตนซ์โดยใช้ 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 โดยใช้บุรุษไปรษณีย์:
และนี่คือตัวอย่างเนื้อหาคำขอ:
{
"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 ดูไฟล์ใบอนุญาต