-
Notifications
You must be signed in to change notification settings - Fork 1
Home
欢迎访问 [BADAPPLE](https://github.com/SendingA/BADAPPLE) 用户指南!加入我们不断增强和发展 BADAPPLE 的旅程。我们很高兴与大家分享我们的成就、未来计划以及对未来的展望。我们的用户指南不仅仅是一份即将已推出的功能列表,它还反映了我们对创新的承诺以及与社区合作的决心。我们邀请您深入了解我们的路线图,提供您的反馈意见,帮助塑造 BADAPPLE 的未来!
BADAPPLE由南方科技大学多媒体信息处理课程([CS330 MIP](https://bb.sustech.edu.cn/webapps/blackboard/content/listContent.jsp?course_id=_6947_1&content_id=_506128_1))的团队小组开发,是一个小说转视频生成器,旨在通过人工智能技术实现小说文本到动态短视频动画的自动化转换,打造面向碎片化阅读用户群体的全新阅读体验。核心贡献者包括来自21级计算机科学与工程系的刘圣鼎、张展玮、陈康睿、谢嘉楠、王然。
针对目前小说改编动画的痛点包括:制作周期长、投入成本高、开发人力投入量大等问题,BADAPPLE项目利用目前已有的AI与AIGC技术,通过跨模态内容的自动化生成,以快节奏、强情节的新型创新内容,满足了“高频率、快产出”的用户需求。迎合当下短视频+爽文的内容风口,以沉浸式多感官交互,激发全民创作与数字内容生态拓展,从而发掘商业潜力。

有趣的是,BADAPPLE 这个名字以项目的第一个生成视频《白雪公主》中的关键道具“坏苹果”命名,“坏苹果”在《白雪公主》故事中不仅是一个推动情节发展的关键道具,更是一个具有深刻象征意义的元素。这种命名方式代表着《白雪公主》这部作品对项目的重要性以及我们的黑色幽默感(如同白雪公主与皇后之间的“识人术”、“社交的手腕”)😋,还有对未来小说转视频生成器发展的展望。
了解 BADAPPLE 的新功能🙉!本节总结了每个版本的新功能、改进、已知问题和错误修复。您可以在本部分找到 v2.5.0 之后每个版本的发布说明。我们建议您定期访问此页面以了解更新信息。
我们很高兴地宣布 BADAPPLE正式发布!该版本引入了强大的新功能,如多分析器功能和扩展的标记符支持(Jieba、Lindera、ICU、Language Identifier)。我们还进行了多项改进,包括动态分段加载线程池更新和优化 binlog 导入过程中的删除过滤。主要的错误修复解决了潜在的段丢失问题、BM25 搜索失败和 JSON 统计过滤错误。
我们建议您升级到 2.5.11,以利用这些改进和修复!
-
增加了为多语言支持配置多个分析器(标记器)的功能,并可根据输入数据的指令选择适当的分析器[(#41444](https://github.com/milvus-io/milvus/pull/41444))。
-
增强了 BM25 分析器功能[(#41456](https://github.com/milvus-io/milvus/pull/41456))。
- 引入了用于干运行的
run_analyzerAPI,以帮助分析标记化结果。有关详细信息,请参阅[分析器概述](https://milvus.io/docs/zh/analyzer-overview.md)。 - 标记化器
- 过滤器
- 扩展了对内置停止词过滤器的语言支持。更多信息,请参阅停止。
- 添加了
remove_punct过滤器以移除标点符号。有关更多信息,请参阅[删除标点符号](https://milvus.io/docs/zh/removepunct-filter.md)。 - 添加了
regex过滤器,用于基于模式的文本过滤。更多信息,请参阅[Regex](https://milvus.io/docs/zh/regex-filter.md)。
- 引入了用于干运行的
- 启用了对分段加载线程池大小的动态更新[(#41549](https://github.com/milvus-io/milvus/pull/41549))。
- 在导入 binlog 时加速删除过滤[(#41552](https://github.com/milvus-io/milvus/pull/41552))。
- 为表达式过滤比率添加了监控参数[(#41403](https://github.com/milvus-io/milvus/pull/41403))。
- 添加了一个配置选项,以强制将索引重建为最新版本[(#41432](https://github.com/milvus-io/milvus/pull/41432))。
- 改进了列表策略的错误日志信息[(#41368](https://github.com/milvus-io/milvus/pull/41368))。
- 调整了对 gRPC 元数据头中连字符的处理[(#41372](https://github.com/milvus-io/milvus/pull/41372))。
- 将 Go 版本升级至 1.24.1,以解决 CVE 问题[(#41522](https://github.com/milvus-io/milvus/pull/41522),[[#41319](https://github.com/milvus-io/milvus/pull/41319)](https://github.com/milvus-io/milvus/pull/41319))。
- 修正了在丢弃分区时可能无法正确丢弃分段的问题[(#41543](https://github.com/milvus-io/milvus/pull/41543))。
- 修正了批量插入使用函数运行程序的输入字段列表而非 Schema 的字段列表的问题[(#41561](https://github.com/milvus-io/milvus/pull/41561))。
- 修正了当
avgdl(平均文档长度)为 NaN 时出现的 BM25 搜索失败问题[(#41503](https://github.com/milvus-io/milvus/pull/41503))。 - 修正了查询节点指标中不准确的标签[(#41422](https://github.com/milvus-io/milvus/pull/41422))。
- 修正了一个问题,即如果数据包含空映射,JSON 统计索引创建可能会失败[(#41506](https://github.com/milvus-io/milvus/pull/41506))。
- 修正了
AlterCollectionAPI,以正确保存修改时间戳[(#41469](https://github.com/milvus-io/milvus/pull/41469))。 - 修正了
ConjunctExpr下 JSON 统计中的间歇性过滤错误,并改进了任务槽计算逻辑,以加快 JSON 统计的构建[(#41458](https://github.com/milvus-io/milvus/pull/41458))。 - 修正了 BM25 统计计算中的 IDF 甲骨文泄漏问题[(#41426](https://github.com/milvus-io/milvus/pull/41426))。
- 确保在碎片编号验证过程中首先检查预创建的主题[(#41421](https://github.com/milvus-io/milvus/pull/41421))。
- 修正了单元测试中出现的错误死锁报告[(#41377](https://github.com/milvus-io/milvus/pull/41377))。
作为一个开源项目,BADAPPLE 的发展离不开社区的贡献。以下是您如何参与我们的旅程。
- 问题报告:遇到错误或有建议?在我们的[GitHub 页面](https://github.com/milvus-io/milvus/issues)上打开一个问题。
- 功能建议:有关于新功能或改进的想法?加入[我们的讨论主题吧](https://github.com/milvus-io/milvus/discussions/40263)。
- 拉取请求:直接向我们的[代码库](https://github.com/milvus-io/milvus/pulls)投稿。无论是修复错误、添加功能还是改进文档,我们都欢迎您的贡献。
- 开发指南:查看我们的[用户指南](https://github.com/milvus-io/milvus/blob/82915a9630ab0ff40d7891b97c367ede5726ff7c/CONTRIBUTING.md),了解代码贡献指南。
- 社交分享:喜欢 BADAPPLE 吗?在社交媒体和技术博客上分享您的使用案例和经验。
- 在 GitHub 上为我们加星:在我们的[GitHub 存储库上](https://github.com/milvus-io/milvus)加星,表示您对我们的支持。
BADAPPLE的项目核心围绕“文本、图像、语音、视频”四大模块展开,最终生成完整的动漫化短视频。
- 首先利用如[千问通义](https://github.com/QwenLM/Qwen-7B)、[[gpt-3.5-turbo](https://platform.openai.com/docs/models/gpt-3.5-turbo)](https://platform.openai.com/docs/models/gpt-3.5-turbo)等大型语言模型(LLM)对小说内容进行语义分段和场景分析,提取关键剧情节点,形成结构化剧情大纲。
- 随后借助[Stable Diffusion(SD)](https://github.com/CompVis/stable-diffusion)及[[ControlNet](https://github.com/lllyasviel/ControlNet)](https://github.com/lllyasviel/ControlNet)等图像生成技术,自动生成符合剧情背景和角色设定的高清动画画面。通过AI语音合成技术,使用[[MARS5](https://gitcode.com/mirrors/CAMB-AI/MARS5-TTS)](https://gitcode.com/mirrors/CAMB-AI/MARS5-TTS)为角色配音并生成旁白,实现自然流畅的语言交互。
- 最后结合时间线和动画合成技术,将图像与语音动态融合,生成完整的动漫化短视频。
- 该系统通过全流程AIGC技术降低了内容制作成本,大幅提升了生成效率。
下图为BADAPPLE的用户界面概念图,这张图片展示了多领域交互界面的概念设计。界面分为四个主要部分:文本域、图像域、音频域和视频域。每个部分都有特定的输入和生成选项。文本域允许用户输入不同的场景和提示词;图像域让用户设置采样步数和其他参数来生成图像;音频域支持文本转语音合成;视频域则整合了帧率、特效和容器格式等设置,最终生成完整的视频输出。BADAPPLE界面旨在提供一个综合性的创作平台,方便用户在不同媒体形式之间无缝转换和生成内容。
项目的页面设计主要由 Hugging Face 开发的开源[Gradio](https://github.com/gradio-app/gradio) 完成,Gradio 是专为快速构建交互式 Web 界面设计,开发者能够轻松创建交互式 Web 应用,使用几行 Python 代码便可以快速生成美观且功能齐全的用户界面。
一键生成模式旨在提供便捷的一键生成模式,可自动将小说文本转化为生动的视频内容,非常适合想偷懒宝宝的体质🤓。用户只需在“一键生成”页面输入小说文本后,点击“开始生成”按钮,系统将自动完成从文本分析、场景构建、角色配音到视频合成的所有步骤🌹。整个过程无需用户干预,省时省力🌻。具体界面如下图所示:
- 在「一键生成」页面输入小说文本,系统将会使用默认的参数进行生成
- 点击「开始生成」,系统将自动完成所有步骤
- 等待处理完成,最终视频将保存在
../video目录
除了便捷的一键生成模式,BADAPPLE 还为高级用户提供了灵活的分步骤执行模式,允许用户对视频生成的每个环节进行精细控制🤩。通过分步骤执行模式,用户可以深入了解并控制视频生成的各个环节,实现更个性化、更专业的创作。此模式适合对视频制作有较高要求的用户。以下是使用说明:
"Step 0: 角色字典"的功能是人物特征的提取。用户只需要在"step 0: 角色字典"页面中的"小说全文"部分将所要转化的小说文本输入即可🌸。
可选部分:
- "OpenAI API Key"部分决定了所进行文本处理的大语言版本(默认将使用gpt-3.5-turbo模型进行处理),用户只需要将对应大语言模型的API Key输入便可进行自由选择如:Deepseek,千问通义等😊。
- "配置文件路径(可选)"为用户配置输入的部分,用户可将自己所喜爱的小说转视频生成器的配置直接在此输入,便可以一劳永逸生成自己喜欢的风格的图片和视频啦🎉。
点击按钮"执行Step 0"。系统会根据输入的文本进行处理,并在"执行结果"、"识别的角色"部分显示文本是否处理成功,同时还将向用户展示文本中识别到的角色信息,为之后部分生成的角色一致性做出保证。
在"Step 1: 关键词提取"的功能是对小说文本的场景进行电影镜头般地分割🙉。
可选部分:
- "句子最小长度限制"部分决定了进行文本分割后,一个场景最短的长度是多少确保一个场景中有足够的信息量(客官可根据实际效果自由选择)🤞。
- "引导词(可选)"部分是大语言模型(LLM)进行场景分割时的生成 AI 绘图提示词,例如" 1boy, yellow short hair and yellow eyes and (yellow suit:1.3) and hands in pocket "的形式,以满足Stable Diffusion(SD)的语句格式🍗。
点击按钮"执行Step 1"。系统会根据输入的文本进行处理,并在"执行结果"部分显示场景分割是否处理成功,同时还将向用户展示产出结果。
在"Step 2: 图像生成"的功能是根据之前分割的场景以及提示词生成对应镜头的场景图像😀。"WebUI 服务器地址"中指定了的默认运行服务器的地址。
可选部分:
- "宽度"、"高度" 部分的作用是设置生成图像的分辨率。默认设置是512像素宽度和512像素高度。
- "生成步数" 部分是控制扩散模型生成图像所需的步数。步数越多,生成的图像质量可能越高,但计算时间也会增加。默认的值是50步。
- "采样器" 部分决定了选择用于生成图像的采样算法。不同的采样器会影响图像生成的质量和速度甚至是风格🚗。
- "调度器" 部分是控制生成过程中的噪声调度策略,使用调度器可以有助于提高图像的质量和多样性🐆。
- "CFG Scale" CFG(Classifier-Free Guidance)比例,用于指导生成过程,使其更接近预期的提示词,默认值为7。较高的CFG Scale值可以使生成的图像更贴近提示词(但也可能导致图片失去天马行空的想象空间😅)。
- "随机种子" 用于初始化生成过程的随机数种子,相同的种子会生成风格相同的图像。-1为使用随机种子的默认值,用户可以根据自己的喜爱自由调节种子参数。
- "放大倍数" 启用后,可以对生成的图像进行高分辨率的修复,以提高图像质量,默认的修复倍数为2倍。
- "去噪强度" 控制去噪过程的强度。较低的值会导致较少的去噪,较高的值会增加去噪效果。默认值为0.7。
- "额外正面提示(可选)" 提供额外的正面提示词,以引导生成过程朝向期望的方向。
- "负面提示(可选)" 提供负面的提示词,以避免生成不希望的图像特征。
- "控制图(可选)" 上传控制图,用于指导生成过程,使生成的图像符合特定的布局或结构。
这些参数共同作用于图像生成过程,通过调整这些参数,可以控制生成图像的质量、风格和内容。
点击按钮"执行Step 2"。系统会根据已有的分割场景进行处理,并在"执行结果部分"显示图片是否生成成功,同时还将向用户展示产出结果。
在"Step 3: 语音生成"的功能是根据之前分割的场景文本以及镜头进行自动配音😻。
可选部分:
- "输入文件路径(可选)" 部分可在此导入要生成语音的文本素材。默认路径是../scripts/场景分割.json
- "输出目录(可选)" 部分是控制生成好的语音文件输出内容。默认路径是../voice
- "语言" 部分决定了生成的语音文件是使用中文还是英文。
- "声音性别" 部分是控制配音为男声还是女声,默认输出为女生。
点击按钮"执行Step 3"。系统会对每个场景进行配音,并在"执行结果部分"显示音频文件是否生成成功。
在"Step 4: 视频输出"的功能是合成最终的小说文本到动态短视频动画视频😍。
可选部分:
- "视频帧率" 部分可以自由调节帧数,默认设置为30帧。
- "放大背景"
- "启用特效"
- "特效类型"
点击按钮"执行Step 4"。你就可以在"执行结果部分"得到最后的结果啦😋!