โครงการนี้มีเว็บแอปพลิเคชันที่สร้างอวตารจาก headshots ที่จับผ่านเว็บแคมหรือไฟล์ที่อัปโหลด มันใช้ประโยชน์จากฟังก์ชันการทำงานของ img2img
ของ REST REST ที่เสถียรซึ่งรวมเข้าด้วยกันผ่าน WebUI การแพร่กระจายที่เสถียร
โครงการอยู่กึ่งกลางแอปพลิเคชัน Python ( app.py
) ที่เปิดเผย REST API API นี้ประมวลผลภาพต้นฉบับพร้อมกับพารามิเตอร์เสริม (ระดับแฟนตาซีและการตั้งค่าทางเพศ) และส่งคืนอวตารที่สร้างขึ้น รวมไดเรกทอรีและไฟล์ต่อไปนี้:
.
├── app.py # Main application file exposing REST API
├── static # Static resources for the web application
│ ├── Hyland_logo.png
│ └── style.css
└── templates # HTML templates
└── index.html
แอปพลิเคชัน Python ได้รับการกำหนดค่าให้เชื่อมต่อกับ REST DIALTUCING REST ที่เสถียรที่ http://localhost:7861/sdapi/v1/img2img
โดยค่าเริ่มต้น ทำตามขั้นตอนเหล่านี้เพื่อติดตั้งและตั้งค่า REST API ในเครื่อง:
โคลนที่เก็บ webui การแพร่กระจายที่เสถียร
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
ดาวน์โหลดรูปแบบการแพร่กระจายที่เสถียรจากการกอดใบหน้า
cd models/Stable-diffusion
wget https://huggingface.co/lllyasviel/fav_models/resolve/main/fav/realisticVisionV51_v51VAE.safetensors
cd ../..
สร้างสภาพแวดล้อมเสมือนจริง
python3 -m venv venv
source venv/bin/activate
ติดตั้งการพึ่งพาและเริ่ม webui
เรียกใช้สคริปต์เพื่อติดตั้งข้อกำหนดและเริ่มแอปพลิเคชัน:
./webui.sh
เมื่อแอปพลิเคชันทำงานที่ http://127.0.0.1:7860
คุณสามารถหยุดด้วย Ctrl+C
หมายเหตุ: ขั้นตอนนี้จำเป็นต้องใช้เฉพาะในระหว่างการตั้งค่าเริ่มต้น
เริ่ม API ที่เหลือ
หากคุณไม่มี GPU คุณสามารถเริ่มต้น API โดยใช้ CPU:
python3 launch.py --nowebui --skip-python-version-check --always-cpu --skip-torch-cuda-test
API จะสามารถเข้าถึงได้ผ่านเบราว์เซอร์ของคุณที่ http://localhost:7861/docs#/default/img2imgapi_sdapi_v1_img2img_post
เพื่อทดสอบแอปพลิเคชันในเครื่อง:
เริ่มต้นการแพร่กระจายที่เสถียร API และตรวจสอบให้แน่ใจว่า http://localhost:7861/sdapi/v1/img2img
สามารถเข้าถึงได้
เริ่มเว็บแอปพลิเคชัน
ตั้งค่าสภาพแวดล้อม Python และเรียกใช้แอปพลิเคชัน:
python3 -m venv venv
source venv/bin/activate
pip install flask requests Pillow boto3
python3 app.py
เข้าถึงเว็บแอปพลิเคชัน
เปิดเว็บเบราว์เซอร์และนำทางไปที่ http://localhost:5000
เพื่อใช้เครื่องกำเนิดอวาตาร์
ในการปรับใช้แอปพลิเคชันบนอินสแตนซ์ AWS EC2 ให้ทำตามกระบวนการปกติของการตั้งค่าเซิร์ฟเวอร์เพื่อให้มั่นใจว่า Python 3.10 การแพร่กระจายที่เสถียร WebUI และการพึ่งพาอื่น ๆ ได้รับการติดตั้งอย่างเหมาะสม ปรับกลุ่มความปลอดภัยและประเภทอินสแตนซ์ขึ้นอยู่กับว่าคุณใช้ GPU หรือไม่ อ้างถึงเอกสาร AWS สำหรับคำแนะนำโดยละเอียด
คู่มือนี้สรุปขั้นตอนในการปรับใช้แอปพลิเคชัน Avatar Generator บนอินสแตนซ์ AWS EC2 ที่ติดตั้ง GPU
g4dn.xlarge
อัปเดตแพ็คเกจระบบ
sudo apt-get update
sudo apt-get upgrade -y
ตรวจสอบการปรากฏตัวของอุปกรณ์ Nvidia
sudo lshw -c video
คุณควรเห็นเอาต์พุตที่ระบุว่ามี Nvidia GPU เช่น:
*-display:1
description: 3D controller
product: TU104GL [Tesla T4]
vendor: NVIDIA Corporation
ติดตั้งไดรเวอร์ Nvidia
sudo apt install -y ubuntu-drivers-common
sudo ubuntu-drivers autoinstall
รีบูตอินสแตนซ์
sudo reboot
หลังจากรีบูตเครื่องตรวจสอบว่าไดรเวอร์ Nvidia ได้รับการติดตั้งอย่างถูกต้อง:
nvidia-smi
เอาต์พุตที่คาดหวังควรแสดงเวอร์ชันไดรเวอร์ Nvidia และรุ่น CUDA
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการติดตั้งไดรเวอร์ Nvidia โปรดดูเอกสารของ Ubuntu
โคลนที่เก็บ webui การแพร่กระจายที่เสถียร
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
ดาวน์โหลดรูปแบบการแพร่กระจายที่เสถียร
cd models/Stable-diffusion
wget https://huggingface.co/lllyasviel/fav_models/resolve/main/fav/realisticVisionV51_v51VAE.safetensors
cd ../..
ติดตั้งตัวติดตั้งแพ็คเกจ Python
sudo apt install python3-pip
สร้างและเปิดใช้งานสภาพแวดล้อมเสมือนจริง
python3 -m venv venv
source venv/bin/activate
ติดตั้งการพึ่งพาและเริ่ม webui
./webui.sh
คุณสามารถหยุดแอปพลิเคชันด้วย Ctrl+C
หลังจากเริ่มทำงานที่ http://127.0.0.1:7860
เริ่ม API ที่เหลือ
python3 launch.py --nowebui --skip-python-version-check --skip-torch-cuda-test
สร้างสคริปต์เริ่มต้นสำหรับ REST API
สร้างสคริปต์เพื่อเริ่ม API ได้อย่างง่ายดายในอนาคต:
$ cat start_api.sh
#! /bin/bash
# Navigate to the stable-diffusion-webui directory
cd stable-diffusion-webui
# Create a virtual environment if it doesn't exist
if [ ! -d " venv " ] ; then
python3 -m venv venv
fi
# Activate the virtual environment
source venv/bin/activate
# Launch the application and write output to api.log
python3 launch.py --nowebui --skip-python-version-check --skip-torch-cuda-test > ../api.log 2>&1 &
# Print a message indicating the application has started
echo " API has started. Output is being written to api.log "
โคลนพื้นที่เก็บข้อมูลเว็บแอปพลิเคชัน
git clone https://github.com/aborroy/communitylive-avatar.git
cd communitylive-avatar
สร้างสภาพแวดล้อมเสมือนจริงและเริ่มแอปพลิเคชัน
python3 -m venv venv
source venv/bin/activate
pip install flask requests Pillow boto3
python3 app.py
สร้างสคริปต์เริ่มต้นสำหรับเว็บแอปพลิเคชัน
สร้างสคริปต์เพื่อเริ่มเว็บแอปพลิเคชันได้อย่างง่ายดาย:
$ cat start_app.sh
#! /bin/bash
# Navigate to the app directory
cd communitylive-avatar
# Create a virtual environment if it doesn't exist
if [ ! -d " venv " ] ; then
python3 -m venv venv
fi
# Activate the virtual environment
source venv/bin/activate
# Launch the application and write output to app.log
python3 app.py > ../app.log 2>&1 &
# Print a message indicating the application has started
echo " Application has started. Output is being written to app.log "
เนื่องจากแอปพลิเคชันใช้เว็บแคมจึงจำเป็นต้องมีการเชื่อมต่อ HTTPS ที่ปลอดภัย ใช้ AWS Route 53 เพื่อกำหนดเส้นทางการจราจรไปยังอินสแตนซ์ EC2 ตัวอย่าง DNS: communitylive-avatar.alfdemo.com
ติดตั้ง nginx
sudo apt-get install nginx
ติดตั้งปลั๊กอิน CertBot และ Nginx
sudo apt-get install certbot python3-certbot-nginx
กำหนดค่า nginx
สร้างไฟล์กำหนดค่า Nginx:
sudo vi /etc/nginx/sites-available/app
เพิ่มการกำหนดค่าต่อไปนี้:
server {
listen 80 ;
server_name communitylive-avatar.alfdemo.com;
client_max_body_size 64M ;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host ;
proxy_set_header X-Real-IP $remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
proxy_set_header X-Forwarded-Proto $scheme ;
}
}
เปิดใช้งานการกำหนดค่า NGINX
sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled
ทดสอบการกำหนดค่า Nginx และโหลดซ้ำ
sudo nginx -t
sudo systemctl reload nginx
รับใบรับรอง SSL
sudo certbot --nginx -d communitylive-avatar.alfdemo.com
CERTBOT จะกำหนดค่า NGINX โดยอัตโนมัติเพื่อใช้ TLS บนพอร์ต 443
ในการเปิดใช้งานการส่งอีเมลของอวตารโดยใช้ AWS SES (บริการอีเมลง่าย ๆ ) ให้ทำตามขั้นตอนเหล่านี้:
ติดตั้ง AWS CLI :
กำหนดค่า AWS CLI :
aws configure
ตั้งค่า AWS SES :
aws ses verify-email-identity --email-address [email protected]
ทดสอบการส่งอีเมล SES :
aws ses send-email --from [email protected] --destination [email protected] --message " Subject={Data=Test Email},Body={Text={Data=Hello!}} "
ด้วยการกำหนดค่า AWS SES แอปพลิเคชันของคุณจะสามารถส่งอวตารที่สร้างขึ้นผ่านอีเมลไปยังผู้รับที่ระบุ
หากทุกขั้นตอนเสร็จสมบูรณ์แอปพลิเคชันของคุณจะสามารถเข้าถึงได้ที่ https://communitylive-avatar.alfdemo.com