# FrameForge **Repository Path**: baorui1/open ## Basic Information - **Project Name**: FrameForge - **Description**: 灵映 FrameForge —— AI 驱动的专业视频制作平台。Tauri + Spring Boot 3 + Vue 3 + Hyperframes 混合架构,描述想法→AI 生成场景→可视化编辑→一键渲染 MP4。支持桌面版与 SaaS 双模式部署。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-27 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 灵映 FrameForge **AI 驱动的专业视频制作平台 · 像写文档一样做视频** [![License](https://img.shields.io/badge/license-MIT-blue)](#-开源协议) [![Java](https://img.shields.io/badge/Java-17-orange)](https://openjdk.org/) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2.5-6DB33F)](https://spring.io/projects/spring-boot) [![Vue](https://img.shields.io/badge/Vue-3.4-42b883)](https://vuejs.org/) [![Tauri](https://img.shields.io/badge/Tauri-2.0-FFC131)](https://tauri.app/) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey)](#-安装与部署) > **一句话介绍**:打开灵映,描述你的想法,AI 帮你生成脚本与场景,可视化编辑器精细调整,一键渲染输出 MP4。零门槛,专业输出,完全可控。 --- ## 📖 项目简介 **灵映(FrameForge)** 是一款融合 **AI 智能生成**、**可视化场景编辑** 与 **HTML→MP4 高质量渲染** 的全栈视频创作平台。 它既是一个**本地桌面软件**(数据不离开你的电脑),也可以**作为 SaaS 服务部署**(多用户、集群渲染)。前端、后端、渲染引擎在同一仓库内,开箱即用。 ### 为什么选择灵映? | 痛点 | 灵映的解决方案 | | --- | --- | | AE/PR 学习曲线陡峭,普通人用不来 | 自然语言描述 → AI 生成场景,零门槛 | | 剪映/CapCut 是“剪辑”工具,从零创作困难 | 灵映是“创作”工具,从想法到成片全流程 AI 辅助 | | Runway 等 AI 视频不可控、昂贵 | AI 生成 + 可视化编辑器,**生成可控、效果可调** | | 模板同质化,缺乏定制空间 | 基于 HTML + CSS + GSAP,**无限定制可能** | | 商业软件昂贵(AE ¥154/月) | 激活码制,开发者自定义等级与时长,灵活定价 | ### 核心能力 - 🤖 **AI 全流程参与**:脚本生成 → 场景拆解 → 动画生成 → 文案润色,支持多家大模型(OpenAI / Anthropic / DeepSeek / 智谱 GLM / 通义千问 / 本地 Ollama) - 🎬 **可视化场景编辑器**:所见即所得,拖拽调整,时间轴 + GSAP 动画,Monaco 代码编辑器双模式 - ⚡ **Hyperframes 渲染引擎**:HTML/CSS/JS → MP4,质量媲美专业制作,内置 lint / validate / preview - 🖥️ **双模式部署**:本地桌面版(Tauri,~10MB)保护隐私;SaaS 版(Docker)多用户集群 - 🔑 **灵活的激活码体系**:开发者自由组合 等级(试用/基础/专业)× 天数(1~65535),不绑定机器 - 🧩 **模板生态**:内置模板 + AI 生成模板,社区可扩展 --- ## 🖼️ 项目截图 **启动 / 引导** ![启动 / 引导](docs/images/screenshot-01.png) **主界面 / 工作台** ![主界面 / 工作台](docs/images/screenshot-02.png) **可视化场景编辑器** ![可视化场景编辑器](docs/images/screenshot-03.png) **AI 助手** ![AI 助手](docs/images/screenshot-04.png) **模板库** ![模板库](docs/images/screenshot-05.png) **资产 / 历史记录** ![资产 / 历史记录](docs/images/screenshot-06.png) **渲染输出 / 设置** ![渲染输出 / 设置](docs/images/screenshot-07.png) > 截图来源于实际运行版本,具体界面可能随版本迭代调整。 --- ## 🏗️ 技术架构 灵映采用 **Tauri 原生壳 + Spring Boot 后端 + Vue 3 前端 + Node.js 渲染引擎** 的混合架构。 ``` ┌─ Tauri 原生进程 (Rust) ──────────────────────────────────────────┐ │ ┌─ WebView ──────────────────────────────────────────────────┐ │ │ │ Vue 3 前端 (TypeScript + Naive UI + Pinia + GSAP) │ │ │ └────────────────────────────┬───────────────────────────────┘ │ │ │ HTTP / WebSocket (localhost) │ │ ┌─ Sidecar ─────────────────┴───────────────────────────────┐ │ │ │ Spring Boot 3 (Java 17) │ │ │ │ REST API · WebSocket · JWT · MyBatis-Plus │ │ │ │ ProjectService · RenderService · AiService · LicenseService│ │ │ └────────────────────────────┬───────────────────────────────┘ │ │ │ ProcessBuilder │ │ ┌─ Sidecar ─────────────────┴───────────────────────────────┐ │ │ │ Node.js + Hyperframes Engine │ │ │ │ render · lint · validate · preview │ │ │ └────────────────────────────────────────────────────────────┘ │ │ 原生能力:系统托盘 · 文件对话框 · 自动更新 · 系统通知 │ │ 数据层:SQLite / MySQL · 本地文件 / MinIO · Caffeine / Redis │ └──────────────────────────────────────────────────────────────────┘ ``` ### 技术栈 | 层 | 技术 | | --- | --- | | **桌面壳** | Tauri 2.0(Rust) | | **前端** | Vue 3.4 · TypeScript · Vite 5 · Naive UI · Pinia · Vue Router · GSAP · Monaco Editor · vuedraggable | | **后端** | Spring Boot 3.2.5 · Java 17 · Spring Security + JWT · MyBatis-Plus · WebSocket · WebFlux | | **存储** | SQLite(本地)/ MySQL 8(SaaS)· Caffeine(本地)/ Redis(SaaS)· MinIO / 阿里云 OSS | | **渲染引擎** | Node.js 22 + Hyperframes CLI | | **AI 集成** | OpenAI · Anthropic Claude · DeepSeek · 智谱 GLM · 通义千问 Qwen · Ollama(本地) | | **打包/部署** | NSIS(Windows 安装包)· Docker Compose · Nginx | ### 双模式代码复用 同一套业务代码,通过 Spring Profile 切换数据存储实现: | 模块 | 本地模式 | SaaS 模式 | 复用率 | | --- | --- | --- | --- | | Vue 3 前端 | 100% 相同 | 100% 相同 | **100%** | | Controller / Service / Mapper | SQLite 适配 | MySQL 适配 | **95%+** | | 数据库 | SQLite | MySQL | 适配层 | | 缓存 | Caffeine | Redis | 适配层 | | 文件存储 | 本地磁盘 | MinIO / OSS | 适配层 | --- ## 📁 项目结构 ``` FrameForge/ ├── frameforge-tauri/ # 桌面应用入口(Tauri + Vue 3 前端) │ ├── src/ # Vue 3 前端源码 │ │ ├── views/ # 页面(Editor / Dashboard / Templates / AI / Settings ...) │ │ ├── components/ # 通用组件 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── api/ # 后端 API 调用封装 │ │ ├── composables/ # Vue 组合式函数 │ │ └── router/ # 路由 │ └── src-tauri/ # Rust + Tauri 配置(含打包后的后端 jar) │ ├── frameforge-backend/ # Spring Boot 3 后端 │ └── src/main/java/com/frameforge/ │ ├── controller/ # REST API │ ├── service/ # 业务逻辑 │ ├── mapper/ # MyBatis-Plus Mapper │ ├── entity/ dto/ # 实体与传输对象 │ ├── websocket/ # 实时通信(渲染进度 / AI 流式) │ ├── security/ # JWT 与权限 │ └── config/ # Spring 配置 │ ├── frameforge-engine/ # Node.js 渲染引擎封装 │ └── src/ │ ├── renderer.js # HTML → MP4 渲染 │ ├── validator.js # 场景校验 │ ├── linter.js # 静态分析 │ ├── preview-server.js # 实时预览服务 │ └── cli.js # 命令行入口 │ ├── license-generator/ # 激活码生成工具(Python) │ ├── license_generator.py │ └── requirements.txt │ ├── frameforge-saas/ # SaaS / Docker 部署 │ ├── docker-compose.yml │ ├── Dockerfile │ ├── nginx.conf │ └── deploy.sh / deploy.bat │ ├── frameforge-installer/ # Windows 安装包(NSIS) ├── docs/images/ # 项目截图 ├── FrameForge-Design.md # 完整设计文档(中文,~内部开发文档) └── build.bat # 一键构建脚本 ``` --- ## 🚀 快速开始 ### 环境要求 | 组件 | 版本 | 说明 | | --- | --- | --- | | JDK | 17+ | 后端运行环境 | | Maven | 3.8+ | 后端构建 | | Node.js | 18+ | 前端与渲染引擎 | | Rust | 1.75+ | 仅打包桌面版时需要 | | Python | 3.10+ | 仅使用激活码工具时需要 | | MySQL / Redis / MinIO | — | 仅 SaaS 部署需要,本地版使用 SQLite + 本地文件 | ### ① 克隆仓库 ```bash git clone https://gitee.com//frameforge.git cd frameforge ``` ### ② 启动后端 ```bash cd frameforge-backend mvn clean spring-boot:run # 默认监听 8888 端口 ``` > 本地模式默认使用 SQLite,无需额外安装数据库。SaaS 模式请在 `application-server.yml` 中配置 MySQL / Redis / MinIO。 ### ③ 启动前端 ```bash cd frameforge-tauri npm install npm run dev # 浏览器开发模式(http://localhost:5173) ``` ### ④ 渲染引擎(可选,单独调试) ```bash cd frameforge-engine npm install node src/cli.js preview ./templates/example ``` --- ## 📦 安装与部署 ### 桌面版(推荐普通用户) 1. 在 [Releases](./releases) 下载 `FrameForge-Setup-x.x.x.exe` 2. 双击安装,桌面生成「灵映」快捷方式 3. 首次启动选择昵称 + 头像 → 直接进入主界面(**无需注册、无需登录**) 4. 在「设置 → 激活」输入激活码解锁完整功能 > 桌面版数据 100% 存储在本地,不会上传任何服务器。 ### 自行打包桌面版 ```bash # 1. 构建后端 jar cd frameforge-backend && mvn clean package # 将 target/frameforge-backend.jar 复制到 frameforge-tauri/src-tauri/ # 2. 构建前端 + Tauri 安装包 cd ../frameforge-tauri npm install npm run tauri build # 产物在 src-tauri/target/release/bundle/ ``` ### SaaS / Docker 部署 ```bash cd frameforge-saas cp .env.example .env # 编辑数据库密码、MinIO 密钥、JWT 密钥等 docker compose up -d ``` 包含服务:`nginx` + `frameforge-backend` + `mysql` + `redis` + `minio`。 ### Windows 安装包(NSIS) ```bash cd frameforge-installer/windows build.bat # 产物:build/FrameForge-1.0.0-Setup.exe ``` --- ## 🔑 激活码生成工具 灵映采用**激活码授权**模式:软件免费下载,内置试用,开发者按需生成激活码解锁功能与时长。**激活码不绑定机器**,用户填写即激活。 ```bash cd license-generator pip install -r requirements.txt # 生成 2 个专业版激活码,有效期 365 天 python license_generator.py gen --tier PRO --count 2 --days 365 --note "内测用户" # 查看已生成的激活码 python license_generator.py list # 校验某个激活码 python license_generator.py verify XXXX-XXXX-XXXX-XXXX ``` 激活码格式:`XXXX-XXXX-XXXX-XXXX`(16 位,排除易混淆的 `0/O/1/I/L`),等级与天数直接编码进激活码本身。 | 等级 | 适用场景 | | --- | --- | | `TRIAL` | 体验,功能受限、可能含水印 | | `BASIC` | 日常使用,完整基础功能 | | `PRO` | 高频专业使用,解锁 AI 高级模型、批量渲染、去水印等 | --- ## ⚙️ 配置说明 ### 后端 `frameforge-backend/src/main/resources/application.yml` ```yaml spring: profiles: active: local # local = SQLite/Caffeine/本地文件;server = MySQL/Redis/MinIO frameforge: ai: default-provider: deepseek providers: openai: { api-key: ${OPENAI_API_KEY} } anthropic: { api-key: ${ANTHROPIC_API_KEY} } deepseek: { api-key: ${DEEPSEEK_API_KEY} } glm: { api-key: ${GLM_API_KEY} } qwen: { api-key: ${QWEN_API_KEY} } ollama: { base-url: http://localhost:11434 } ``` ### 前端 `frameforge-tauri/.env.development` ``` VITE_API_BASE_URL=http://localhost:8888/api VITE_WS_URL=ws://localhost:8888/ws ``` --- ## 🧪 开发与测试 ```bash # 后端测试 cd frameforge-backend && mvn test # 前端类型检查 cd frameforge-tauri && npm run type-check # 前端构建 cd frameforge-tauri && npm run build ``` --- ## 🗺️ 路线图 - [x] 桌面版(Tauri)打包与自动更新 - [x] AI 全流程生成(脚本 / 场景 / 文案) - [x] 可视化场景编辑器(拖拽 + 时间轴 + 代码双模式) - [x] 激活码生成工具与试用/基础/专业分级 - [x] Docker Compose 一键 SaaS 部署 - [ ] 模板市场与社区分享 - [ ] 团队协作(SaaS 企业版) - [ ] 渲染队列与 GPU 加速集群 - [ ] 多语言界面(i18n)与海外版 --- ## 🤝 参与贡献 欢迎 Issue 与 PR! 1. Fork 本仓库 2. 新建分支:`git checkout -b feat/your-feature` 3. 提交更改:`git commit -m "feat: add xxx"` 4. 推送分支:`git push origin feat/your-feature` 5. 提交 Pull Request 请遵循 [约定式提交](https://www.conventionalcommits.org/zh-hans/) 规范,并在 PR 中描述清楚动机与测试方式。 --- ## 📄 开源协议 本项目采用 **MIT License** 开源,允许商业使用、修改、分发、再发布,但需保留原作者版权声明与许可证声明。 详见 [LICENSE](./LICENSE)。 > 项目内 `FrameForge-Design.md` 为内部设计文档,仅用于说明设计思路,不构成额外的法律义务。 --- ## 🙏 致谢 - [Hyperframes](https://www.npmjs.com/package/hyperframes) —— 强大的 HTML→视频渲染引擎 - [Vue.js](https://vuejs.org/) · [Tauri](https://tauri.app/) · [Spring Boot](https://spring.io/) · [Naive UI](https://www.naiveui.com/) - 所有为开源社区贡献力量的开发者们 --- ## ☕ 赞赏作者 如果灵映对你有帮助,或者为你节省了时间,欢迎请作者喝杯咖啡 ☕ **开源不易,你的支持是我持续维护与迭代的最大动力。** ![赞赏二维码](docs/images/donate-qr.jpg) > 扫码上方二维码即可赞赏。金额随意,心意最重要 ❤️ --- **如果灵映对你有帮助,欢迎 Star ⭐ 支持一下!** Made with ❤️ by FrameForge Team