# Code2Video
**Repository Path**: letian313/Code2Video
## Basic Information
- **Project Name**: Code2Video
- **Description**: No description available
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-16
- **Last Updated**: 2025-12-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Code2Video: 通过代码生成视频
English | 简体中文
Code2Video: 以代码为中心的教学视频生成新范式
Yanzhe Chen*,
Kevin Qinghong Lin*,
Mike Zheng Shou
新加坡国立大学 Show Lab
📄 Arxiv 论文 |
🤗 Daily Paper |
🤗 数据集 |
🌐 项目主页 |
💬 推特 (X)
---
## 🔥 更新
- [x] [2025.10.11] 近期收到关于 [ICONFINDER](https://www.iconfinder.com/account/applications) 注册问题的反馈,在 [MMMC](https://huggingface.co/datasets/YanzheChen/MMMC/tree/main/assets) 数据集中更新了 Code2Video 自动收集的 icon,作为临时替代方案。
- [x] [2025.10.6] 在 Huggingface 上更新了 [MMMC](https://huggingface.co/datasets/YanzheChen/MMMC) 数据集。
- [x] [2025.10.3] 感谢 @_akhaliq 在 [推特](https://x.com/_akhaliq/status/1974189217304780863)上分享我们的工作!
- [x] [2025.10.2] 我们发布了 [ArXiv](https://arxiv.org/abs/2510.01174)、[代码](https://github.com/showlab/Code2Video)和[数据集](https://huggingface.co/datasets/YanzheChen/MMMC)。
- [x] [2025.9.22] Code2Video 已被 **NeurIPS 2025 Workshop ([DL4C](https://dl4c.github.io/))** 接收。
---
### 目录
- [🌟 项目总览](#-项目总览)
- [🚀 快速上手](#-快速上手)
- [1. 环境配置](#1-环境配置)
- [2. 配置 LLM API 密钥](#2-配置-llm-api-密钥)
- [3. 运行智能体](#3-运行智能体)
- [4. 项目结构](#4-项目结构)
- [📊 评测 -- MMMC](#-评测----mmmc)
- [🙏 致谢](#-致谢)
- [📌 引用](#-引用)
-
---
## 🌟 项目总览
**Code2Video** 是一个**基于智能体、以代码为中心**的框架,能够根据知识点生成高质量的**教学视频**。
与基于像素空间的文生视频模型不同,我们的方法生成可执行的 **Manim 代码**来确保视频的**清晰度、连贯性和可复现性**。
**核心特性**:
- 🎬 **以代码为中心的范式** — 将可执行代码作为统一媒介,同时实现教学视频的时间序列和空间布局组织。
- 🤖 **模块化三智能体设计** — 规划者 (Planner) 负责故事板扩展,编码员 (Coder) 负责可调试代码的合成,鉴赏家 (Critic) 负责通过视觉锚点(Visual Anchor)优化布局,三者协同完成结构化生成。
- 📚 **MMMC 基准** — 用于代码驱动视频生成的基准数据集,涵盖了 117 个受 3Blue1Brown 启发的精选学习主题,横跨多个领域。
- 🧪 **多维度评测** — 从效率、美学和端到端知识传递三个维度进行系统性评估。
---
## 🚀 快速上手
### 1. 环境配置
```bash
cd src/
pip install -r requirements.txt
```
这里是 Manim Community v0.19.0 的[官方安装指南](https://docs.manim.community/en/stable/installation.html),以帮助您正确设置环境。
### 2. 配置 LLM API 密钥
请在 `api_config.json` 文件中填入您的 **API key**。
* **LLM API**:
* 运行 Planner 和 Coder 所需。
* 使用 **Claude-4-Opus** 可获得最佳的 Manim 代码质量。
* 使用 **ChatGPT-4.1** 亦具有不错的生成表现。
* **VLM API**:
* 运行 Critic 所需。
* 为优化布局和美学,请提供 **Gemini API key**。
* 使用 **gemini-2.5-pro-preview-05-06** 可获得最佳质量。
* **视觉素材 API**:
* 为丰富视频内容,请从 [IconFinder](https://www.iconfinder.com/account/applications) 获取并设置 `ICONFINDER_API_KEY`。
### 3. 运行智能体
提供了两种 Shell 脚本,用于不同的生成模式:
#### (a) 单个主题生成
脚本: `run_agent_single.sh`
从脚本中指定的单个**知识点**生成视频。
```bash
sh run_agent_single.sh --knowledge_point "Linear transformations and matrices"
```
**`run_agent_single.sh` 内部重要参数:**
* `API`: 指定使用的 LLM。
* `FOLDER_PREFIX`: 输出文件夹的前缀 (例如, `TEST-single`)。
* `KNOWLEDGE_POINT`: 目标概念,例如 `"Linear transformations and matrices"`。
---
#### (b) 完整基准测试模式
脚本: `run_agent.sh`
运行 `long_video_topics_list.json` 中定义的所有(或部分)学习主题。
```bash
sh run_agent.sh
```
**`run_agent.sh` 内部重要参数:**
* `API`: 指定使用的 LLM。
* `FOLDER_PREFIX`: 输出文件夹的前缀 (例如, `TEST-LIST`)。
* `MAX_CONCEPTS`: 要运行的概念数量 (`-1` 表示全部)。
* `PARALLEL_GROUP_NUM`: 并行运行的组数。
### 4. 项目结构
建议的目录结构如下:
```
src/
│── agent.py
│── run_agent.sh
│── run_agent_single.sh
│── api_config.json
│── ...
│
├── assets/
│ ├── icons/ # 通过 IconFinder API 下载的视觉素材缓存
│ └── reference/ # 参考图像
│
├── json_files/ # 基于 JSON 的主题列表及元数据
├── prompts/ # 用于 LLM 调用的提示模板
├── CASES/ # 生成的案例,按 FOLDER_PREFIX 组织
│ └── TEST-LIST/ # 示例:多主题生成结果
│ └── TEST-single/ # 示例:单主题生成结果
```
---
## 📊 评测 -- MMMC
从以下**三个互补的维度**进行评测:
1. **知识传递 (TeachQuiz)**
```bash
python3 eval_TQ.py
```
2. **美学质量 (AES)**
```bash
python3 eval_AES.py
```
3. **效率指标 (EFF)**
* Token 使用量
* 执行时间
👉 更多数据和评测脚本请见:
[HuggingFace: MMMC 基准](https://huggingface.co/datasets/YanzheChen/MMMC)
---
## 🙏 致谢
* 视频数据来源于 **[3Blue1Brown 官方课程](https://www.3blue1brown.com/#lessons)**。
这些视频代表了教学视频在清晰度和美学设计上的最高标准,并为我们的评测指标提供了参考。
* 感谢 **Show Lab @ NUS** 所有成员的支持!
* 本项目得益于 **Manim 社区**和 AI 研究生态系统的开源贡献。
* 高质量的视觉素材(图标)由 **[IconFinder](https://www.iconfinder.com/)** 和 **[Icons8](https://icons8.com/icons)** 提供,用于丰富教学视频内容。
---
## 📌 引用
如果我们的工作对您有帮助,欢迎引用我们的工作:
```bibtex
@misc{code2video,
title={Code2Video: A Code-centric Paradigm for Educational Video Generation},
author={Yanzhe Chen and Kevin Qinghong Lin and Mike Zheng Shou},
year={2025},
eprint={2510.01174},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={[https://arxiv.org/abs/2510.01174](https://arxiv.org/abs/2510.01174)},
}
```
如果您喜欢我们的项目,欢迎在 GitHub 上给我们一个 Star ⭐ 以获取最新动态!
[](https://star-history.com/#showlab/Code2Video&Date)