Spaces:
Sleeping
Sleeping
A newer version of the Gradio SDK is available: 6.15.2
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 │
└─────────────────┴──────────┴──────────────────────────────┘