Upload CLAUDE.md with huggingface_hub
Browse files
CLAUDE.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# EDEN OS V2
|
| 2 |
+
|
| 3 |
+
Private, self-healing, triple-redundant bidirectional diffusion avatar system.
|
| 4 |
+
|
| 5 |
+
## Architecture
|
| 6 |
+
|
| 7 |
+
- **Gateway**: FastAPI (port 8000) — handles xAI Grok-4 chat + TTS, WebSocket frame streaming
|
| 8 |
+
- **Router**: Pipeline orchestrator with 5 auto-routing features (port 8100)
|
| 9 |
+
- **Watchdog**: Sidecar that monitors frame quality every 3s, triggers failover (port 8200)
|
| 10 |
+
- **5 Pipelines**: MuseTalk (P0), InfiniteTalk (P1), Ditto (P2), StableAvatar (P3), LiveAvatar 14B (P4)
|
| 11 |
+
- **Frontend**: React + Vite with WebSocket streaming and CSS fallback animation
|
| 12 |
+
|
| 13 |
+
## Key commands
|
| 14 |
+
|
| 15 |
+
```bash
|
| 16 |
+
# Local development
|
| 17 |
+
docker compose up # Start all services
|
| 18 |
+
docker compose up gateway router pipeline0 watchdog # Minimal stack
|
| 19 |
+
|
| 20 |
+
# Build
|
| 21 |
+
docker build -t eden-os-v2 .
|
| 22 |
+
|
| 23 |
+
# Push to Docker Hub
|
| 24 |
+
docker tag eden-os-v2 edenberyl/eden-os-v2:latest
|
| 25 |
+
docker push edenberyl/eden-os-v2:latest
|
| 26 |
+
|
| 27 |
+
# Frontend dev
|
| 28 |
+
cd frontend && npm run dev
|
| 29 |
+
```
|
| 30 |
+
|
| 31 |
+
## Models
|
| 32 |
+
|
| 33 |
+
Models are stored on Seagate 5TB at `D:\eden-models\` and mounted into containers via Docker volumes. Models are NOT baked into the Docker image — they are pulled at runtime from HF Hub.
|
| 34 |
+
|
| 35 |
+
## Pipeline priority (smallest → largest for fastest failover)
|
| 36 |
+
|
| 37 |
+
```
|
| 38 |
+
P4 LiveAvatar (1.26 GB) → fastest to load, primary
|
| 39 |
+
P0 MuseTalk (6.37 GB) → fast backup
|
| 40 |
+
P2 Ditto (6.45 GB) → mid backup
|
| 41 |
+
P3 StableAvatar (18.49 GB) → heavy backup
|
| 42 |
+
P1 InfiniteTalk (85.02 GB) → nuclear, largest, most capable
|
| 43 |
+
```
|
| 44 |
+
|
| 45 |
+
Dual-track architecture:
|
| 46 |
+
- **Track 1 (Main)**: Tries smallest pipeline first
|
| 47 |
+
- **Track 2 (Backup)**: Escalates through remaining on failure
|
| 48 |
+
|
| 49 |
+
Failover is agent-enhanced (Grok-4-fast via xAI API) with static-threshold fallback.
|
| 50 |
+
Watchdog detects static frames every 3s and triggers intelligent failover.
|
| 51 |
+
|
| 52 |
+
## RunPod idle sleep
|
| 53 |
+
|
| 54 |
+
Pod auto-stops after 5 minutes of inactivity to save costs.
|
| 55 |
+
Configure via `RUNPOD_IDLE_TIMEOUT_S` env var (default: 300s).
|
| 56 |
+
|
| 57 |
+
## Environment
|
| 58 |
+
|
| 59 |
+
All secrets go in `.env` (see `.env.template`). Never commit `.env`.
|