将 360° 全景风景视频与自拍照融合为"你在风景中"的电影级短视频。
- ✨ AI 驱动的智能帧选择算法
- 📸 360° 全景视频处理
- 👤 高质量人像抠图与场景融合
- 🎬 电影级视频生成效果
- 🌐 现代化 Web 界面
- 🚀 快速部署与启动
TimeSlice Fusion 是一个创新的 AI 视频生成工具,能够将 360° 全景风景视频与用户自拍照融合,创造出仿佛置身于风景中的电影级短视频。
核心技术特点:
- 360° 全景视频帧提取
- AI 驱动的帧选择算法
- 人像抠图与场景融合
- I2V(图像到视频)动画生成
timeslice-fusion/
├── server.py # FastAPI 后端服务器
├── web/ # 前端界面
│ └── timeslice-fusion.html
├── scripts/ # 核心处理脚本
│ ├── timeslice.py # 主处理逻辑
│ └── remove_bg.swift # macOS 人像抠图
└── start.sh # 快速启动脚本
# 确保已安装 uv
pip install uv --break-system-packages
# 启动服务(默认端口 8000)
./start.sh
# 或指定端口
./start.sh 3000# 安装依赖并启动
uv run server.pyPORT- 服务器端口 (默认: 8000)CLEANUP_AFTER_MINUTES- 清理过期任务的时间(分钟,默认: 60,设为0禁用自动清理)
- 启动服务后,在浏览器中访问
http://localhost:8000 - 上传 360° 全景风景视频和自拍照
- 选择风格和持续时间
- 点击生成,等待处理完成
- 查看并下载生成的视频
- 后端: FastAPI
- 前端: HTML/CSS/JavaScript
- AI 引擎: Qwen-VL (阿里云 DashScope)
- 处理工具: FFmpeg, Pillow
- 包管理: uv (Python)
- 人像预处理(裁剪、抠图)
- 360° 视频帧提取
- AI 选帧(选择最佳场景)
- 场景和人物分析
- 人物与场景合成
- 视频生成(I2V 动画化)
- 项目使用 macOS Vision Framework 进行人像抠图
- 需要网络连接以调用 AI 服务
- 大视频文件处理可能需要较长时间
- Fork 仓库:点击右上角的 Fork 按钮将仓库复制到你的账户
- 克隆仓库:
git clone https://github.com/你的用户名/timeslice-fusion.git cd timeslice-fusion
# 安装 uv(如果尚未安装)
pip install uv
# 启动服务
./start.shFROM ghcr.io/astral-sh/uv:python3.10-bookworm-slim
WORKDIR /app
COPY . .
RUN uv sync --all-extras
EXPOSE 8000
CMD ["uv", "run", "server.py"]
⚠️ 安全提醒: 本项目使用阿里云 DashScope API(Qwen-VL),请确保 API 密钥安全
- 在根目录创建
.env文件:DASHSCOPE_API_KEY=your_api_key_here - 将
.env添加到.gitignore中(已在默认配置中包含)
如需自动部署到云服务,可参考以下 .github/workflows/deploy.yml 配置:
name: Deploy to Cloud
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup uv
uses: astral-sh/setup-uv@v2
with:
version: latest
- name: Install dependencies
run: uv sync --all-extras
- name: Run tests
run: python -m pytest tests/
- name: Deploy
env:
DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
run: |
# 添加部署命令- 项目不会存储用户的视频和图片文件,处理完成后会定期清理
- 所有上传的文件仅在本地处理,不会上传到任何第三方服务(除了AI API调用)
- 敏感配置文件(如
.env)已在.gitignore中排除 - 使用 CORS 中间件允许所有来源(仅在开发环境中)- 生产环境请配置具体域名
欢迎提交 Issues 和 Pull Requests 来帮助改进项目!
- Fork 仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
如有问题,请提交 Issue 或联系:
- 项目主页: https://github.com/lank/timeslice-fusion
- 文档: 请参阅相关注释和文档