Spaces:
Sleeping
Sleeping
| # DarkMedia-X Studio Architecture | |
| ``` | |
| ┌─────────────────────────────────────────────────────────────────────────┐ | |
| │ DARKMEDIA-X STUDIO ARCHITECTURE │ | |
| └─────────────────────────────────────────────────────────────────────────┘ | |
| ┌──────────────────┐ | |
| │ VERCEL │ https://darkmedia-xstudio.vercel.app | |
| │ (Landing Page) │ Static HTML — scanlines, vignette, CTA | |
| └────────┬─────────┘ | |
| │ | |
| │ "LANCER LE STUDIO" | |
| ▼ | |
| ┌──────────────────────────────────────────────────────────────┐ | |
| │ HUGGING FACE SPACE (Gradio UI) │ | |
| │ cybermedia/darkmedia-x-studio │ | |
| │ app.py — Python 3.12+ │ | |
| │ │ | |
| │ ┌─────────────┐ ┌─────────────┐ ┌────────────────────┐ │ | |
| │ │ PROJECT │ │ EDITOR │ │ MONITOR │ │ | |
| │ │ BIN │ │ Scripting │ │ Video Output │ │ | |
| │ │ Stories │ │ Gallery │ │ System Logs │ │ | |
| │ │ Delete │ │ Visuals │ │ Service Status │ │ | |
| │ └─────────────┘ └─────────────┘ └────────────────────┘ │ | |
| │ │ | |
| │ ┌──────────────────────────────────────────────────────┐ │ | |
| │ │ EXTERNAL SERVICES PANEL │ │ | |
| │ │ ⚡ Hugging Face ● ONLINE │ │ | |
| │ │ ⚡ Gradio Spaces ● ONLINE │ │ | |
| │ │ ⚡ FFmpeg ● v7.x │ │ | |
| │ │ ⚡ Edge TTS ● ONLINE │ │ | |
| │ │ ⚡ Cloudflare R2 ● ONLINE │ │ | |
| │ │ │ │ | |
| │ │ 🖼 Image FLUX.1-schnell ● READY │ │ | |
| │ │ 🎤 Voice Parler-TTS-mini-v1 ● READY │ │ | |
| │ │ 🎵 Music MusicGen-small ● READY │ │ | |
| │ │ 🎬 Video SVD-img2vid-xt ● READY │ │ | |
| │ └──────────────────────────────────────────────────────┘ │ | |
| └──────────────────────────┬──────────────────────────────────┘ | |
| │ | |
| ┌──────────────────┼──────────────────┐ | |
| │ │ │ | |
| ▼ ▼ ▼ | |
| ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ | |
| │ HF INFER. │ │ HF INFER. │ │ HF INFER. │ | |
| │ API (ZeroGPU)│ │ API (ZeroGPU)│ │ API (ZeroGPU)│ | |
| │ │ │ │ │ │ | |
| │ 🖼 FLUX.1 │ │ 🎤 Parler- │ │ 🎵 MusicGen │ | |
| │ 1080x1920 │ │ TTS │ │ small │ | |
| │ 4 steps │ │ French voice │ │ 30s audio │ | |
| └───────┬───────┘ └───────┬───────┘ └───────┬───────┘ | |
| │ │ │ | |
| │ │ │ | |
| ▼ ▼ ▼ | |
| ┌──────────────────────────────────────────────────────┐ | |
| │ CLOUDFLARE R2 (Media Storage) │ | |
| │ darkmedia-x-studio bucket │ | |
| │ │ | |
| │ stories/ │ | |
| │ horror_story_01/ │ | |
| │ assets/images/scene_1.png ← R2 URL │ | |
| │ assets/images/scene_2.png ← R2 URL │ | |
| │ assets/sounds/voice_1.wav ← R2 URL │ | |
| │ assets/sounds/background_music.wav ← R2 URL │ | |
| │ horror_story_01_final.mp4 ← R2 URL │ | |
| └──────────────────────────────────────────────────────┘ | |
| ┌──────────────────────────────────────────────────────┐ | |
| │ LOCAL MACHINE │ | |
| │ │ | |
| │ backend/ ← FastAPI (dev only, optional) │ | |
| │ engine/ ← Python + Rust generators │ | |
| │ data/stories/ ← Local story cache │ | |
| │ data/videos/ ← Local video cache │ | |
| └──────────────────────────────────────────────────────┘ | |
| DATA FLOW: | |
| 1. User clicks "LANCER LE STUDIO" on Vercel → HF Space | |
| 2. HF Space receives story text → parses scenes | |
| 3. For each scene: | |
| a. Sends prompt → HF Inference API (FLUX) → gets image | |
| b. Sends narration → HF Inference API (Parler-TTS) → gets audio | |
| 4. Background music → HF Inference API (MusicGen) → gets audio | |
| 5. All generated files → auto-upload to Cloudflare R2 | |
| 6. ffmpeg assembles images + audio → final MP4 → upload to R2 | |
| 7. Gallery shows media via R2 public URLs (not local disk) | |
| GPU USAGE: | |
| ┌─────────────────┬──────────┬──────────────────────────────┐ | |
| │ Component │ GPU? │ Provider │ | |
| ├─────────────────┼──────────┼──────────────────────────────┤ | |
| │ Image gen │ ✅ ZeroGPU│ HF Inference API (FLUX) │ | |
| │ Voice gen │ ✅ ZeroGPU│ HF Inference API (Parler) │ | |
| │ Music gen │ ✅ ZeroGPU│ HF Inference API (MusicGen) │ | |
| │ Video gen │ ✅ ZeroGPU│ HF Inference API (SVD) │ | |
| │ ffmpeg assembly │ ❌ CPU │ HF Space (lightweight) │ | |
| │ Vercel frontend │ ❌ Static│ CDN only │ | |
| │ Local machine │ ❌ Idle │ Nothing heavy │ | |
| └─────────────────┴──────────┴──────────────────────────────┘ | |
| ``` | |