darkmedia-x-api / docs /ARCHITECTURE.md
cybermedia's picture
Upload folder using huggingface_hub
343eed9 verified

A newer version of the Gradio SDK is available: 6.15.2

Upgrade

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                │
  └─────────────────┴──────────┴──────────────────────────────┘