# banfoStyle **Repository Path**: eleorc/banfoStyle ## Basic Information - **Project Name**: banfoStyle - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-25 - **Last Updated**: 2024-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 半佛视频风格生成器 视频地址: [看我如何克隆半佛仙人,批量产出视频!](https://www.bilibili.com/video/BV12v411u7kw) ## 项目背景 半佛在2020年凭借众多沙雕表情包视频 + 魔性的文案迅速出圈。正如上一句所说,一个优秀的视频需要两部分组成,优秀的文案以及优秀的视频。那么半佛的成功是否可以复制呢?我认为在一定程度上是可以复制的。那么具体应该如何复制呢?我们尝试分析一下: ### 优秀的文案 半佛仙人的文案普遍比较nice,直接分析视频的文案似乎有点儿难度。好在半佛仙人还有微信公众号,直接学习微信公众号的写作风格是一个不错的选择,但是需要我们付出比较多的时间成本,并且学习效果不够直观。有没有什么更省事更直观效果更nice的方法呢?有。得益于GPT2模型强大的文本生成能力,我们也可以借助该模型训练一个半佛仙人风格文章生成器。 ### 优秀的视频 直观上来说视频的生成似乎要简单一些,事实上确实如此。半佛仙人的视频大部分是由相关性不是很强的表情包堆砌起来,我们不可能有大量精力来寻找下载一个个导入视频制作软件并设置字幕。有没有什么自动化的方法?有。搞一个图片搜索接口,不妨我们自定义一个视频制作软件。 **理论存在,实践开始。** ## 思路: 我们再来详细复习一下思路,理清一下我们要做的每一件事情。 ### 文案生成 直接生成大篇幅文案似乎不太现实,因为就目前来看,GPT2模型逻辑性不够强,上下文能力也有待提高,雪上加霜的是我们的电脑性能也不太行,只能采用GPT2蒸馏过后的模型,效果进一步下降,因此我们可以做一个文案提示器。当我们撰写文案的时候,轻松一按,即可生成相应的下文提示,这个思路是没有任何问题的。 1. 爬取半佛仙人微信公众号历史文章 2. 此处我们思考了一下框架的选择。不是很想在本地训练,目前体验以及部署最快的方案应该属于百度的AI Studio了。正好百度paddlenlp提供了中文GPT2预训练模型,因此我们就利用AI studio对GPT2Chinese预训练模型进行微调。 3. 数据集预处理。既然要微调自然需要预处理,由于只爬取到800+文章,为了扩大数据量,我们将滑动窗口设置的小一些。 4. 直接开整训练,数据不是很多的情况下,并不需要训练太久。百度每天8个小时免费GPU,训练几天也就ok了。 5. 写一个小小的窗口。 ### 视频生成 1. 输入断句后的文案 2. 将文案根据短句分割,每句作为一条字幕 3. 根据字幕搜索表情包并选择设置 4. 利用语音合成手段合成配音 5. 重复3、4步骤,直到所有的字幕均完成表情包设定、字幕设定、配音设定 6. 合成视频并加入背景音乐 7. 导出成品 ## 安装 1. 安装python3.8.3 2. 安装requirements.txt依赖 3. 运行`python main.py` 4. 运行`edit.py`请先按照百度paddlepaddle安装教程安装相应的库 ## 使用 ### 文案生成 1. 输入文件名或拖入文件 2. 输入文案 3. 按F1或者点击提示获取提示 4. 导出文案 5. 需要注意的是,导出文案需手动逐句分割 ### 视频生成 1. 确定文件名,点击设置按钮可以新建工程。 2. 可以拖入txt格式的文案或者直接拖入软件内,或者直接增加文案。 3. 点击上一句以及下一句文案,预览区可预览字幕,搜索区可搜索相关图片/表情包。 4. 预览字幕时,若需要将一句话分为两页,则应用\n分开。 5. 所有字幕均设置完毕可进行生成视频。 6. 软件每5秒保存一次工程文件。崩溃时可重新拖放加载工程文件。工程文件位置:`material/{ProgectName}/*.bfs` 7. 工程所用到的素材默认会存放至`material/{ProgectName}/audio/`以及`material/{ProgectName}/img/` 8. 可将工程文件拖放入软件加载上一次的工程内容。需要注意的是加载工程要求素材文件夹必须存在! 9. 可将txt格式的文案拖入软件! 10. 可将表情包图片/gif文件拖入软件,用于设置当前字幕的表情包! ## TODO - [x] 优化gif显示 - [x] 表情包尺寸的统一问题 - [x] 编辑保存防止异常退出工作丢失 - [x] 支持修改文案 - [x] 文件名自定义 - [x] 使用的图片与未使用的图片缓存分开,依据文件名归档 - [x] 使用过的配音缓存分类归档 - [x] 支持字幕不设置表情包 - [x] 修复只修改字幕最后成品无效果的bug - [x] 修改单词拼写错误的小问题 - [x] 支持单条字幕分割成多页, 需要分割请在单条字幕分割的地方加上\n - [ ] 自定义背景音乐 - [x] 跳转到n条文案 - [x] 生成视频的过程中主页面卡死问题 - [x] 生成视频显示进度条 - [ ] 下拉到底继续加载图片 - [x] 文案生成 ## Reference [一键生成半佛仙人视频,表情包之王你也可以!](https://www.bilibili.com/video/BV1oz411e7Jk) [MoviePy](https://zulko.github.io/moviepy/) [斗图啦](https://www.doutula.com/article/list/) [百度图片](https://image.baidu.com/) [百度在线语音合成](https://cloud.baidu.com/product/speech/tts_online) [百度飞桨AI studio](https://aistudio.baidu.com/aistudio/index) [百度飞桨NLP](https://paddlenlp.readthedocs.io/zh/latest/) [deepai](https://deepai.org/) ## License [GNU General Public License v3.0](LICENSE)