VideoMaMa / QUICKSTART.md
pizb's picture
gpu support
fdd09ce
# Quick Start: Fix ZeroGPU CUDA Error
## The Problem
```
RuntimeError: CUDA has been initialized before importing the `spaces` package.
```
## The Solution (Applied ✅)
### 1. Import `spaces` FIRST in app.py
```python
# BEFORE (❌ Wrong):
import os
import torch
import spaces # Too late!
# AFTER (✅ Fixed):
import spaces # MUST BE FIRST!
import os
import torch
```
### 2. Add GPU Decorators
```python
@spaces.GPU
def sam_refine(...):
initialize_models() # Lazy load
# ... processing
@spaces.GPU(duration=120) # 2 minutes for video processing
def run_videomama_with_sam2(...):
initialize_models() # Lazy load
# ... processing
```
### 3. Lazy Load Models
```python
# Don't load at startup:
if __name__ == "__main__":
# initialize_models() # ❌ Remove this
demo.launch()
# Load on first use instead:
@spaces.GPU
def inference_function():
initialize_models() # ✅ Load here
# ...
```
### 4. Update requirements.txt
```txt
spaces # Add this at the top
torch>=2.0.0
gradio==4.31.0
# ... rest
```
### 5. Update README.md
```yaml
---
hardware: zero-a10g # For ZeroGPU Pro
sdk_version: 4.31.0
---
```
## All Changes Applied ✅
The following files have been updated:
- ✅ `app.py` - Added `import spaces` at top, GPU decorators, lazy loading
- ✅ `requirements.txt` - Added `spaces` package
- ✅ `README.md` - Added hardware configuration
## Deploy Now
Simply push to your Hugging Face Space:
```bash
git add app.py requirements.txt README.md
git commit -m "Fix ZeroGPU CUDA initialization error"
git push
```
## Test Result
Your Space should now:
1. ✅ Start without CUDA errors
2. ✅ Allocate GPU only when needed (clicks or processing)
3. ✅ Work with ZeroGPU Pro subscription
## Need Help?
See `HUGGINGFACE_DEPLOY.md` for detailed documentation.