AI animation story engineering manager for turning an idea into a structured short-video production project.
mjj-ai-studio is a Flask + browser UI workspace for AI image/video creation. It combines script generation, storyboard planning, visual workflow canvas editing, asset management, and one-click generation controls into a single production surface. The project is designed for creators who want to organize characters, scenes, prompts, images, and video tasks before sending them to AI generation services.
Live preview: huabu.septem.cn
- Generate animation scripts from a short theme, such as subject, characters, style, and duration.
- Break stories into storyboard beats with timing, characters, scenes, and shot descriptions.
- Edit node-based generation workflows on a visual canvas.
- Run text-to-image, image-to-image, Midjourney-style, ComfyUI, and video generation flows.
- Manage generated images, videos, uploaded references, workflow JSON files, and project history.
- Store API settings locally through environment variables or runtime configuration.
This project is an AI animation and visual workflow studio. A typical flow starts with a story idea, generates a script, splits it into shots, prepares characters and scenes, then connects text, size, image generation, MJ generation, upscale, and video nodes on a canvas. It is useful for short drama prototyping, AI storyboard generation, image prompt experiments, video workflow orchestration, and creator-side production management.
- Script generation: create narrative scripts and dialogue from a theme prompt.
- Storyboard preview: organize shots by time range, scene, character, and description.
- Workflow canvas: connect nodes for text, size, image generation, MJ generation, upscale, and follow-up operations.
- Multi-provider generation: supports DeepSeek, GrsAI, Yunwu, PoloAI, ComfyUI, and related image/video APIs through configurable endpoints.
- Project management: save projects, load workflows, keep generation history, and reuse visual assets.
- Local-first runtime: generated media and secrets stay out of Git by default.
- AI short video pre-production
- Animation storyboard generation
- Character and scene concept development
- Midjourney-style prompt workflows
- ComfyUI workflow orchestration
- Image-to-video and text-to-video experiments
- Creator tools for repeatable AI video pipelines
剧本生成: generate a story from a topic and preview script content.画布编辑: build node-based workflows for image and video generation.素材管理: manage local images, references, and generated assets.一键生成: run selected workflow steps in sequence.对话记录: keep prompt and generation context for later reuse.
- Python
- Flask
- Flask-CORS
- OpenAI-compatible API clients
- Pillow
- Requests
- Vanilla HTML/CSS/JavaScript
- ComfyUI workflow JSON
AI animation, AI video, AI short video, AI storyboard, story generator, script generator, visual workflow, node editor, workflow canvas, image generation, video generation, text to image, image to image, text to video, image to video, Midjourney workflow, ComfyUI workflow, AI creator tool, AI production pipeline, prompt workflow, Flask AI app, AI filmmaking, storyboard editor, character design, scene generation, one-click generation.
中文关键词:AI动画、AI视频、AI短剧、短视频生成、剧本生成、分镜生成、故事板、视觉工作流、节点画布、图像生成、视频生成、文生图、图生图、文生视频、图生视频、Midjourney工作流、ComfyUI工作流、AI创作工具、AI视频工作流、提示词工作流、角色设定、场景生成、一键生成。
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Copy-Item .env.example .env
python backend.pyOpen http://localhost:5001 after the server starts.
There are two supported ways to configure the app. The open-source version does not ship with private API keys, upload servers, cloud ComfyUI endpoints, or local machine paths.
Open the app and click the settings button in the top bar. The API settings panel lets you configure:
- DeepSeek, GRS, Yunwu/Gemini, Yunwu/MJ, and PoloAI/Veo API keys.
- Public base URL for generated asset links.
- Image upload relay server.
- GRS, Yunwu, PoloAI, local ComfyUI, and cloud ComfyUI endpoints.
- ComfyUI input and output directories.
Secret fields are masked when loaded. Leaving a secret field empty keeps the existing value. Saved settings are written to config/settings.json, which is ignored by Git.
The same configuration is exposed through:
GET /api/settingsPUT /api/settingsPOST /api/settings/llm
Copy .env.example to .env and fill in the service keys and endpoints you use:
MJJ_PUBLIC_BASE_URL=http://localhost:5001
DEEPSEEK_API_KEY=
GRSAI_API_KEY=
GRSAI_HOST=https://grsai.dakka.com.cn
YUNWU_GEMINI_API_KEY=
YUNWU_MJ_API_KEY=
YUNWU_HOST=https://yunwu.ai
POLOAI_API_KEY=
POLOAI_HOST=https://poloai.top
IMAGE_UPLOAD_SERVER=
CLOUD_COMFYUI_BASE=
COMFYUI_URL=http://127.0.0.1:8188
COMFYUI_INPUT_DIR=
COMFYUI_OUTPUT_DIR=Do not commit .env, config/settings.json, Streamlit secrets, generated images, videos, uploads, or other runtime output.
backend.py Flask API server and project routes
index.html Main browser UI
js/ Frontend workflow and canvas logic
config_store.py Runtime configuration loader
image_api.py Image generation API integrations
video_api.py Video generation API integrations
comfyui_api.py Local ComfyUI helper functions
cloud_cfui.py Cloud ComfyUI helper functions
cfui_wf/ Example local ComfyUI workflows
cloud_wf/ Example cloud workflow JSON files
This repository was prepared for public release by removing hard-coded API keys from source files. Any key that was previously stored in local files should be treated as compromised and rotated at the provider before using this project again.
MIT