# 🚀 คู่มือการ Deploy F5-TTS Thai WebUI ## วิธีการ Deploy ไป Hugging Face Spaces ### ขั้นตอนที่ 1: เตรียม Account และ Repository 1. **สร้าง Hugging Face Account** (ถ้ายังไม่มี) - ไปที่ https://huggingface.co/join - สร้าง account ฟรี 2. **สร้าง Space ใหม่** - ไปที่ https://huggingface.co/new-space - ตั้งชื่อ Space (เช่น `f5-tts-thai`) - เลือก SDK: **Gradio** - เลือก Hardware: **CPU basic** (ฟรี) หรือ **GPU** (ต้องเสียเงิน) ### ขั้นตอนที่ 2: Upload โค้ด **วิธีที่ 1: ใช้ Git (แนะนำ)** ```bash # Clone repository ที่สร้างจาก HF Spaces git clone https://huggingface.co/spaces/YOUR_USERNAME/f5-tts-thai cd f5-tts-thai # คัดลอกไฟล์จากโปรเจ็กต์ของคุณ cp -r /path/to/F5-TTS-THAI/src . cp /path/to/F5-TTS-THAI/app.py . cp /path/to/F5-TTS-THAI/requirements.txt . # สร้าง README.md จาก README_DEPLOYMENT.md cp /path/to/F5-TTS-THAI/README_DEPLOYMENT.md README.md # Commit และ push git add . git commit -m "Initial deployment" git push ``` **วิธีที่ 2: อัปโหลดผ่าน Web Interface** 1. ไปที่ Space ที่คุณสร้าง 2. คลิก "Files and versions" 3. อัปโหลดไฟล์ทีละไฟล์: - `app.py` - `requirements.txt` - `README.md` (จาก README_DEPLOYMENT.md) - โฟลเดอร์ `src/` ทั้งหมด ### ขั้นตอนที่ 3: ตรวจสอบการ Deploy 1. **รอการ Build** - Hugging Face จะ build app อัตโนมัติ - ดู logs ได้ที่ "Logs" tab 2. **ทดสอบ App** - เมื่อ build สำเร็จ จะแสดง URL ของ app - ทดสอบ functionality ต่างๆ ### ขั้นตอนที่ 4: Configuration ขั้นสูง **เปิดใช้งาน GPU (ต้องเสียเงิน)** ```yaml # ใน README.md header --- title: F5-TTS Thai emoji: 🎤 colorFrom: blue colorTo: purple sdk: gradio sdk_version: 4.44.0 app_file: app.py pinned: false license: mit python_version: 3.10 hardware: gpu-t4-small # เปลี่ยนจาก cpu-basic --- ``` **ปรับแต่ง Environment Variables** ใน Space settings เพิ่ม variables: - `CUDA_VISIBLE_DEVICES=0` (สำหรับ GPU) - `TRANSFORMERS_CACHE=/tmp` (เพื่อประหยัด storage) ## วิธีการ Deploy ไป Gradio.app ### ขั้นตอนที่ 1: สร้าง Account 1. ไปที่ https://gradio.app 2. สร้าง account และ login ### ขั้นตอนที่ 2: Deploy ```bash # ติดตั้ง gradio pip install gradio # Upload app python app.py --share ``` ## การ Optimize สำหรับ Production ### 1. ลดขนาด Model ```python # ใน config.py เปลี่ยนเป็น DEFAULT_MODEL_BASE = "hf://VIZINTZOR/F5-TTS-THAI/model_650000_FP16.pt" # ใช้ FP16 ``` ### 2. เพิ่ม Caching ```python # ใน model_manager.py @lru_cache(maxsize=1) def get_cached_model(): return load_model(...) ``` ### 3. ปรับแต่ง Memory Usage ```python # ใน app.py import torch torch.set_num_threads(2) # ลด CPU threads ``` ### 4. เพิ่ม Error Handling ```python # ใน app.py import gc import torch def cleanup_memory(): gc.collect() if torch.cuda.is_available(): torch.cuda.empty_cache() ``` ## Troubleshooting ### ปัญหา: Out of Memory **แก้ไข:** ```python # ใช้โมเดล FP16 # ลด NFE steps # เพิ่ม memory cleanup ``` ### ปัญหา: Slow Loading **แก้ไข:** ```python # Pre-load models # ใช้ model caching # ปรับ CPU/GPU settings ``` ### ปัญหา: Import Errors **แก้ไข:** ```python # ตรวจสอบ requirements.txt # เพิ่ม try-except สำหรับ imports # ใช้ fallback interface ``` ## การ Monitor และ Maintain ### 1. ดู Logs ```bash # ดู logs ของ HF Spaces # Monitor memory usage # ตรวจสอบ error rates ``` ### 2. Update App ```bash # git pull latest changes # test locally first # deploy gradually ``` ### 3. Scale Up/Down ```bash # เปลี่ยน hardware specs # ปรับ concurrent users # optimize model loading ``` ## Security Considerations ### 1. Input Validation ```python def validate_audio_input(audio_file): # ตรวจสอบขนาดไฟล์ # ตรวจสอบรูปแบบไฟล์ # จำกัดความยาวเสียง ``` ### 2. Rate Limiting ```python import time from functools import wraps def rate_limit(calls_per_minute=10): # implement rate limiting ``` ### 3. Content Filtering ```python def filter_inappropriate_content(text): # กรองเนื้อหาที่ไม่เหมาะสม # ตรวจสอบ spam ``` ## Cost Optimization ### Free Tier (CPU) - **ข้อจำกัด**: ช้า, memory จำกัด - **เหมาะสำหรับ**: demo, testing ### GPU Tier (T4/A10G) - **ราคา**: ~$0.60-3.00/ชั่วโมง - **เหมาะสำหรับ**: production, fast inference ### Tips ประหยัดค่าใช้จ่าย 1. ใช้ CPU สำหรับ development 2. เปิด GPU เฉพาะเวลาที่ต้องการ 3. ใช้ auto-shutdown 4. Monitor usage regularly ## สรุป การ deploy F5-TTS Thai WebUI ไป cloud platforms ทำได้ง่ายและมีหลายทางเลือก: ✅ **Hugging Face Spaces**: ง่าย, มี free tier ✅ **Gradio.app**: รวดเร็ว, เหมาะสำหรับ quick demos ✅ **Cloud Platforms**: AWS, GCP, Azure สำหรับ enterprise เลือกตามความต้องการและงบประมาณของคุณ! 🚀