File size: 5,375 Bytes
6f2c7f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
# Hướng dẫn Deploy MIMO lên Hugging Face Spaces

## Tổng quan
MIMO là một mô hình AI để tạo video nhân vật có thể điều khiển được. Hướng dẫn này sẽ giúp bạn deploy dự án lên Hugging Face Spaces.

## Chuẩn bị Files

### 1. Files cần thiết đã được tạo/cập nhật:
-`app_hf.py` - Ứng dụng Gradio được tối ưu cho HF Spaces
-`README_HF.md` - README với metadata cho HF Spaces
-`requirements.txt` - Dependencies đã được cập nhật
-`.gitattributes` - Cấu hình Git LFS cho files lớn

### 2. Cấu trúc thư mục sau khi deploy:
```
repo/
├── app.py (rename from app_hf.py)
├── README.md (use README_HF.md content)
├── requirements.txt
├── .gitattributes
├── configs/
├── src/
├── tools/
├── assets/ (sẽ được tải tự động hoặc cần upload)
└── pretrained_weights/ (sẽ được tải tự động)
```

## Các bước Deploy

### Bước 1: Tạo Repository trên Hugging Face
1. Truy cập https://huggingface.co/new-space
2. Chọn "Create new Space"
3. Điền thông tin:
   - **Space name**: `mimo-demo` (hoặc tên khác)
   - **License**: Apache 2.0
   - **SDK**: Gradio
   - **Hardware**: GPU (khuyến nghị T4 hoặc A10G)
   - **Visibility**: Public

### Bước 2: Clone và Setup Repository
```bash
# Clone space repository
git clone https://huggingface.co/spaces/YOUR_USERNAME/mimo-demo
cd mimo-demo

# Copy files từ project hiện tại
cp /path/to/mimo-demo/app_hf.py ./app.py
cp /path/to/mimo-demo/README_HF.md ./README.md
cp /path/to/mimo-demo/requirements.txt ./
cp /path/to/mimo-demo/.gitattributes ./
cp -r /path/to/mimo-demo/configs ./
cp -r /path/to/mimo-demo/src ./
cp -r /path/to/mimo-demo/tools ./

# Tạo thư mục assets cơ bản (nếu chưa có)
mkdir -p assets/masks assets/test_image assets/video_template
```

### Bước 3: Cấu hình Git LFS
```bash
# Initialize git lfs
git lfs install

# Add large files to git lfs tracking
git lfs track "*.pth"
git lfs track "*.bin"
git lfs track "*.safetensors"
git lfs track "*.mp4"
git lfs track "assets/**"
git lfs track "pretrained_weights/**"
```

### Bước 4: Upload Assets và Model Weights
Có 2 cách để xử lý model weights và assets:

#### Cách 1: Tự động download (Khuyến nghị)
Code trong `app_hf.py` đã được thiết kế để tự động download models từ Hugging Face khi khởi động. Điều này giúp giảm kích thước repository.

#### Cách 2: Upload manual
```bash
# Download và upload assets manually nếu cần
# (Chỉ nên dùng cho files nhỏ < 50MB)
```

### Bước 5: Commit và Push
```bash
git add .
git commit -m "Initial deployment of MIMO demo"
git push
```

### Bước 6: Cấu hình Space Settings
1. Truy cập settings của Space trên Hugging Face
2. Kiểm tra:
   - **Hardware**: Chọn GPU phù hợp (T4 minimum, A10G khuyến nghị)
   - **Environment variables**: Thêm nếu cần
   - **Secrets**: Thêm API keys nếu cần

## Tối ưu hóa Performance

### 1. GPU Memory Management
- App đã được tối ưu để sử dụng `@spaces.GPU` decorator
- Tự động fallback về CPU nếu không có GPU
- Clear GPU cache sau mỗi inference

### 2. Model Loading Optimization
- Lazy loading cho models
- Error handling cho missing files
- Fallback mechanisms

### 3. File Size Optimization
- Sử dụng Git LFS cho files > 10MB
- Automatic model downloading thay vì upload
- Compress assets khi có thể

## Troubleshooting

### Lỗi thường gặp:

#### 1. "Model files not found"
- **Nguyên nhân**: Models chưa được download
- **Giải pháp**: Kiểm tra function `download_models()` và network connection

#### 2. "CUDA out of memory"
- **Nguyên nhân**: GPU memory không đủ
- **Giải pháp**:
  - Upgrade lên GPU lớn hơn
  - Reduce batch size trong code
  - Optimize model loading

#### 3. "Assets not found"
- **Nguyên nhân**: Assets folder trống
- **Giải pháp**:
  - Upload assets manually
  - Sử dụng fallback mechanisms trong code

#### 4. "Build timeout"
- **Nguyên nhân**: Requirements install quá lâu
- **Giải pháp**:
  - Optimize requirements.txt
  - Use pre-built images
  - Split installation steps

### Logs và Monitoring
- Kiểm tra logs trong HF Spaces interface
- Monitor GPU usage và memory
- Check app performance metrics

## Cấu hình nâng cao

### Environment Variables
```bash
# Thêm trong Space settings nếu cần:
HF_TOKEN=your_token_here
CUDA_VISIBLE_DEVICES=0
```

### Custom Dockerfile (Nếu cần)
```dockerfile
FROM python:3.10

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

EXPOSE 7860

CMD ["python", "app.py"]
```

## Kết luận

Sau khi hoàn thành các bước trên, Space của bạn sẽ:
- ✅ Tự động build và deploy
- ✅ Load models từ Hugging Face
- ✅ Có GPU acceleration
- ✅ UI thân thiện với người dùng
- ✅ Error handling tốt

**Lưu ý quan trọng**:
- GPU Spaces có chi phí. Kiểm tra pricing trên Hugging Face
- Test thoroughly trước khi public
- Monitor usage và performance

## Support
Nếu gặp vấn đề:
1. Check Space logs
2. Review Hugging Face documentation
3. Check MIMO GitHub repository issues
4. Contact repository maintainers