Files
localMiniDrama/docs/en.md
T
2026-06-30 15:07:31 +08:00

12 KiB
Raw Blame History

🎬 LocalMiniDrama

A locally-running AI short drama & comic generator — download and run, no cloud required, fully open source

version license platform stack PRs Welcome

中文 | English | Author's Story


There are plenty of AI short-drama tools out there, but almost none that truly run offline locally, work out of the box, and keep your assets private.
This project is built entirely in JavaScript from scratch. Connect your own AI API and start generating your own AI short drama immediately.

No subscription · Data stays local · Multiple AI providers · Fully open source


📸 Screenshots

Project list
Project list · Export/Import projects
Storyboard editor
Storyboard editor · One-click image + video generation

Features

🔄 Full Creation Workflow

Step Feature Description
1 Story Generation Enter a synopsis + style; AI generates a full multi-episode script
2 Script Editing Manage episodes and freely edit script text
3 Character Generation AI extracts characters; generate a portrait image for each
4 Scene Generation Auto-extract scenes from script; generate scene background images
5 Prop Generation Extract / manually add props; generate prop images
6 Storyboard Generation Auto-generate storyboard per episode (shot type, camera, dialogue…)
7 Image / Video Generation Generate still image and video clip for each shot
8 Video Synthesis Automatically merge all shot videos into a complete episode

One-Click Pipeline

  • Generate All: Characters → Scenes → Storyboard → Images → Videos → Synthesis — fully automated
  • Fill & Generate: Intelligently skips already-generated content; only fills what's missing
  • Auto Retry: Up to 3 retries per step (handles 429 rate limits etc.); errors are logged and the pipeline continues
  • Live Progress: Shows the current step and full error log in real time

🗂 Project & Asset Management

  • Project Export / Import: Pack the full project as a ZIP (images, videos, text, configs); share or migrate with one file
  • Material Library: Global character / scene / prop library reusable across projects; per-project and global libraries are strictly isolated
  • Aspect Ratio: Set the ratio (16:9 / 9:16 / 1:1 …) when creating a project; all generated images and videos adapt automatically
  • Episode Management: Add / delete episodes; script preview

✏️ Storyboard Fine Editing

  • Classic vs Universal mode: Toggle per storyboard. Classic shows the main reference image in the center (video is blocked with a prompt if no reference image); Universal mode uses a segment prompt field (universal_segment_text) for omni video APIs — pair with volcengine_omni (Volcengine Ark Seedance 2.0 multi-image) or kling_omni (Kling Omni), with a pre-submit config check. Classic fields remain; switch back anytime
  • @Image1 … slot references: In the segment prompt, use @图片1 / @图片2 to align with the reference order (scene → characters → props; excludes the classic center panel image); “Generate from storyboard” can fill camera/movement hints. If the segment prompt is non-empty, only that text is sent for video (structured video fields are not concatenated)
  • Tail-frame link (v1.2.7): Extract the last frame from the current shots completed video and set it as the next shots first frame
  • Export storyboard sheet (v1.2.7): Export the current episode to an HTML table for review and collaboration
  • Image Prompt: View and edit the image-generation prompt for each shot; regenerate after changes
  • Video Prompt: Edit the full prompt text, or expand the composition panel to edit individual fields (scene / duration / action / mood / camera / shot type) — auto-reassembled on save
  • Image Management: AI generation, manual upload, drag-and-drop; replace at any time

🤖 AI Configuration

  • Three independent model slots: image generation, video generation, text generation
  • Compatible with Alibaba DashScope, Volcengine (Doubao), locally-deployed models and any OpenAI-compatible API
  • Visual config panel; changes take effect immediately; connection test supported
  • Built-in quick-setup wizards for DashScope and Volcengine, with step-by-step API key instructions

🌓 UI / Theme

  • Dark mode (default) and Light mode toggle, preference persisted
  • Theme toggle available on every page

🚀 Quick Start

Go to Releases and download the latest:

  • LocalMiniDrama Setup x.x.x.exe — NSIS installer
  • LocalMiniDrama x.x.x.exe — portable, no install needed

Double-click → open AI Config → enter your API key → start creating.

On first launch a config file is created at:
%APPDATA%\LocalMiniDrama\backend\configs\config.yaml

Option B — Development Mode

Requires Node.js >= 18

# 1. Clone
git clone https://github.com/your-username/LocalMiniDrama.git
cd LocalMiniDrama

# 2. Backend (port 5679)
cd backend-node
npm install
cp configs/config.example.yaml configs/config.yaml
# Edit config.yaml — set your AI API endpoint and key
npm run migrate   # first run: initialise DB
npm start

# 3. Frontend (new terminal, port 3013)
cd frontweb
npm install
npm run dev

Open http://localhost:3013 in your browser.

You can also double-click run_dev.bat at the project root to start both servers at once.

📖 Full developer guide, packaging, and FAQ → Quickstart Guide


🤖 AI Provider Support

Provider Text Image Video
Alibaba DashScope (Qwen)
Volcengine / Doubao
Local (Ollama, OpenAI-compat.)
Other OpenAI-compatible APIs

📖 API key registration and configuration → Configuration Guide


🏗 Architecture

LocalMiniDrama/
├── backend-node/          # Node.js backend (Express + SQLite)
│   ├── src/
│   │   ├── config/        # YAML config loader
│   │   ├── db/            # SQLite connection & migrations
│   │   ├── services/      # Business logic (generation, export/import…)
│   │   └── routes/        # REST API routes
│   └── configs/           # config.yaml lives here
├── frontweb/              # Vue 3 frontend (Vite + Element Plus)
│   └── src/
│       ├── views/
│       │   ├── FilmList.vue      # Home: project list & material library
│       │   ├── DramaDetail.vue   # Drama: info / episodes / resource library
│       │   └── FilmCreate.vue    # Studio: script / characters / storyboard
│       ├── api/                  # Backend API wrappers
│       ├── stores/               # Pinia state management
│       └── styles/               # Global styles & theme variables
├── desktop/               # Electron shell (builds the exe)
├── docs/                  # Documentation
└── README.md

Tech Stack:

Layer Technology
Frontend Vue 3 + Vite + Element Plus + Pinia + Axios
Backend Node.js + Express + SQLite (better-sqlite3)
Desktop Electron 28 + electron-builder
Language Plain JavaScript (no TypeScript)

📋 Changelog

Full version history → CHANGELOG

Latest v1.2.7 highlights:

  • 🆕 Tail-frame link — one-click extract the last frame of the current shots video (server-side ffmpeg) and set it as the next shots first frame
  • 🆕 Export storyboard sheet — export the current episodes shots to an HTML table (dialogue, narration, universal segment, prompts, etc.)
  • 🆕 Unified generation task progress — shared Pinia store for character/scene/prop/storyboard image & video async jobs, with recovery after page refresh
  • 🔧 Video mode guards — Universal mode checks kling_omni or volcengine_omni + Seedance 2.x before Omni multi-ref submit; Classic mode blocks video when no storyboard reference image
  • 🔧 Separate first/last frame binding — last frame no longer overwrites the main panel; Seedance 2.0 certified assets marked stale when the character main image changes

v1.2.6 / v1.2.5 highlights:

  • 🆕 Seedance 2.0 + Universal storyboard modevolcengine_omni / kling_omni, multi-ref @图片N, universal_segment_text (see CHANGELOG)

v1.2.3 highlights:

  • 🆕 Storyboard narrator (narration) — optional per-shot voice-over text separate from character dialogue, for TTS and editing
  • 🆕 Export narration SRT — build subtitle cues from shot order and durations
  • 🔧 First-shot empty narration fix — incrementally saved rows are merged from the final parsed JSON so stream-early inserts are not stuck without narration
  • 🔧 Stricter narration prompts — system/user instructions require opening VO and non-empty lines when the mode is enabled
  • 🎨 Narration UI — textarea/button contrast in light & dark themes; high-contrast “Export SRT” button

Earlier releases: see CHANGELOG.md for v1.2.2 (coherent frames, novel import, ffmpeg) and full history.


🎯 Who Is This For

User Scenario
📹 Content creators Batch-produce AI short dramas / comics
🔒 Privacy-conscious users Keep all assets local, no cloud uploads
🛠 Developers Extend AI providers or customise the pipeline
🌱 Beginners Explore the AI video space at zero cost

🔗 Similar Tools

Tool Notes
Kino 视界 Active Chinese AI short-drama platform; cloud-based, closed source
Filmaction AI AI-driven plot / storyboard / voice; SaaS / web, partly paid
oiioii Open source, lightweight AI visual creation, flexible deployment
ChatFire AI dialogue-based short drama; inspired this project's backend design

This project focuses on local offline use, a friendly UI, and easy customisation. Feel free to open an Issue to recommend other tools.


🤝 Contributing

All contributions are welcome!

  • 🐛 Report a bugNew Issue
  • 💡 Suggest a featureNew Issue
  • 🔧 Submit code → Fork → Edit → Pull Request
  • Star the project → Help others discover it

Buy the Author a Coffee

LocalMiniDrama is free, open source, and runs locally — maintained in spare time. If it saved you hours or helped ship a short drama, optional tips are warmly appreciated (any amount; totally voluntary).

Tips do not affect features, issues, or PRs. A Star or sharing the repo helps just as much.

WeChat Pay tip QR
WeChat Pay
Alipay tip QR
Alipay

💬 About the Author

Just an ordinary game developer who got excited about the AI short-drama trend and built this open-source tool in JavaScript. Ship first, figure out the rest later.

Full story, inspirations, and acknowledgements → Author's Story


📄 License

MIT


If this project helps you, a Star is the best encouragement for the author!