从零到故事
- 关于这个项目的论文已被NeurIPS 2023 机器学习创造力与设计研讨会接受。更多信息请参见NeurIPS 页面。
- 该项目目前在Hugging Face Space上运行。
从零到故事是一个建立在PaLM API、Stable Diffusion和MusicGen之上的框架,让普通人能够创作自己的故事。这个框架包括背景设置、角色设置和互动故事生成三个阶段。
1. 背景设置:在这个阶段,用户可以设置故事的体裁、地点和氛围。特别是体裁,它是其他元素所依赖的关键。
2. 角色设置:在这个阶段,用户可以设置最多四个角色。对于每个角色,用户可以决定其特征和基本信息,如姓名、年龄、MBTI和性格。此外,还可以根据这些信息使用Stable Diffusion生成每个角色的图像。
- PaLM API将给定的角色信息转换为Stable Diffusion能有效理解的关键词列表。
- 然后,Stable Diffusion使用这些关键词作为提示生成图像。
3. 互动故事生成:在这个阶段,最初的几个段落完全基于背景和角色设置阶段的信息生成。之后,用户可以从PaLM API生成的三个选项中选择一个方向。然后,根据用户的选择生成后续故事。这种选择选项和生成后续故事的循环会不断重复,直到用户决定停止。
- 在每次故事生成中,用户还可以使用Stable Diffusion和MusicGen生成描述每个场景的背景图像和音乐。
- 如果用户对每轮生成的故事、选项、图像和音乐不满意,可以要求重新生成。
前提条件
PaLM API 密钥
这个项目严重依赖PaLM API。如果你想在自己的环境中运行它,你需要获取PaLM API 密钥并将其粘贴到根目录下的.palm_api_key.txt
文件中。
ChatGPT API 密钥(可选)
可选地,你还可以添加ChatGPT API支持以增强聊天功能。如果你希望在你的环境中使用ChatGPT聊天模式,需要获取ChatGPT API密钥。获得密钥后,在项目的根目录下创建一个名为.openai_api_key.txt
的文件,并在其中插入你的ChatGPT API密钥。这一步是可选的,只有在你想启用ChatGPT API提供的额外聊天功能时才需要。
软件包
确保你已在开发机器上安装了以下所有先决条件:
- CUDA Toolkit 11.8 和 cuDNN 8 - 下载并安装 CUDA Toolkit 强烈建议在GPU上运行。如果在CPU环境中运行,速度会非常慢。
- Poetry - 下载并安装 Poetry 这是Python的包装和依赖管理器。
- SQLite3 v3.35.0 或更高版本 - 由于依赖关系,需要安装。
- Ubuntu 22.04 及更高版本
$ sudo apt install libc6 sqlite3 libsqlite3
- Ubuntu 20.04
$ sudo sh -c 'cat <<EOF >> /etc/apt/sources.list deb http://archive.ubuntu.com/ubuntu/ jammy main deb http://security.ubuntu.com/ubuntu/ jammy-security main EOF' $ sudo apt update $ sudo apt install libc6 sqlite3 libsqlite3
- FFmpeg(可选) - 安装FFmpeg可以实现本地视频混合,从而比其他方法更快地生成结果
$ sudo apt install ffmpeg
安装
在首次运行应用程序之前,安装所需的依赖项:
$ poetry install
如果将来依赖项发生变化或需要更新,可以使用:
$ poetry update
运行
$ poetry run python app.py
待办事项
- 将生成的故事导出为PDF
Stable Diffusion 模型信息
检查点
- 角色图像生成:CIVIT.AI Model 129896
- 背景图像生成:CIVIT.AI Model 93931
VAE
- 角色图像生成:CIVIT.AI Model 23906
- 背景图像生成:CIVIT.AI Model 65728