F5-TTS-THAI / DEPLOYMENT_GUIDE.md
pythonlearnreal's picture
Upload folder using huggingface_hub
106478e verified

A newer version of the Gradio SDK is available: 6.1.0

Upgrade

🚀 คู่มือการ Deploy F5-TTS Thai WebUI

วิธีการ Deploy ไป Hugging Face Spaces

ขั้นตอนที่ 1: เตรียม Account และ Repository

  1. สร้าง Hugging Face Account (ถ้ายังไม่มี)

  2. สร้าง Space ใหม่

    • ไปที่ https://huggingface.co/new-space
    • ตั้งชื่อ Space (เช่น f5-tts-thai)
    • เลือก SDK: Gradio
    • เลือก Hardware: CPU basic (ฟรี) หรือ GPU (ต้องเสียเงิน)

ขั้นตอนที่ 2: Upload โค้ด

วิธีที่ 1: ใช้ Git (แนะนำ)

# 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 (ต้องเสียเงิน)

# ใน 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

# ติดตั้ง gradio
pip install gradio

# Upload app
python app.py --share

การ Optimize สำหรับ Production

1. ลดขนาด Model

# ใน config.py เปลี่ยนเป็น
DEFAULT_MODEL_BASE = "hf://VIZINTZOR/F5-TTS-THAI/model_650000_FP16.pt"  # ใช้ FP16

2. เพิ่ม Caching

# ใน model_manager.py
@lru_cache(maxsize=1)
def get_cached_model():
    return load_model(...)

3. ปรับแต่ง Memory Usage

# ใน app.py
import torch
torch.set_num_threads(2)  # ลด CPU threads

4. เพิ่ม Error Handling

# ใน app.py
import gc
import torch

def cleanup_memory():
    gc.collect()
    if torch.cuda.is_available():
        torch.cuda.empty_cache()

Troubleshooting

ปัญหา: Out of Memory

แก้ไข:

# ใช้โมเดล FP16
# ลด NFE steps
# เพิ่ม memory cleanup

ปัญหา: Slow Loading

แก้ไข:

# Pre-load models
# ใช้ model caching
# ปรับ CPU/GPU settings

ปัญหา: Import Errors

แก้ไข:

# ตรวจสอบ requirements.txt
# เพิ่ม try-except สำหรับ imports
# ใช้ fallback interface

การ Monitor และ Maintain

1. ดู Logs

# ดู logs ของ HF Spaces
# Monitor memory usage
# ตรวจสอบ error rates

2. Update App

# git pull latest changes
# test locally first
# deploy gradually

3. Scale Up/Down

# เปลี่ยน hardware specs
# ปรับ concurrent users
# optimize model loading

Security Considerations

1. Input Validation

def validate_audio_input(audio_file):
    # ตรวจสอบขนาดไฟล์
    # ตรวจสอบรูปแบบไฟล์
    # จำกัดความยาวเสียง

2. Rate Limiting

import time
from functools import wraps

def rate_limit(calls_per_minute=10):
    # implement rate limiting

3. Content Filtering

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

เลือกตามความต้องการและงบประมาณของคุณ! 🚀