Updates and Backups zh CN - on22s/Side-Story GitHub Wiki
更新与备份
在更新、重置、迁移安装位置,或尝试大规模训练/资料库任务之前,请先保存工作并做好备份。Git 跟踪的是应用代码,不会备份你生成的有声书项目。
更新之前
- 等待正在进行的生成、审校、渲染、数据准备、训练和导出任务完成;或在界面中取消任务,并等待它们停止。
- 将当前脚本保存到 Script library(脚本库),并保留需要的快照/检查点。保存脚本很有用,但它并不等于备份音频、上传的源文件、全部设置或所有资料库。
- 停止应用,以及另外启动的、正在向应用数据写入内容的进程。
- 将实际使用的数据和设置目录复制到单独的备份位置。应包含配套文件和子目录,不能只复制主 JSON 文件。
- 记录当前检出的修订版本,以及本地代码/环境改动,以便确认这份备份是由哪个安装版本产生的。
复制前停止所有写入进程,有助于避免把不同时间点的 JSON 状态、检查点分片和音频混在同一份备份中。原始书籍源文件和不可替代的录音也应另行独立保存。
Pinokio 或普通代码检出目录中需要备份的内容
未覆盖数据路径时,检出目录的根目录就是可变数据的根目录,而设置和上传文件仍使用原来的 app/ 位置。
| 内容 | 默认需要保留的位置 |
|---|---|
| 应用设置 | app/config.json |
| 当前书籍与声音状态 | annotated_script.json、chunks.json、state.json、voices.json、voice_config.json、character_aliases.json,以及相关配套文件/日志文件 |
| 生成/审校进度 | 检查点头文件及其匹配的分片目录,以及脚本旁的快照、质量清单和审校记录 |
| 上传的源文件 | app/uploads/ |
| 已保存的脚本 | 整个 scripts/,包括配套的声音配置和元数据 |
| 生成与导出的音频 | voicelines/、cloned_audiobook.mp3、audiobook.m4b、按章节导出的文件,以及任何另行保存/下载的导出 ZIP 文件 |
| 可复用声音与角色配音信息 | voice_library.json、designed_voices/、clone_voices/ |
| 训练与数据集工作 | lora_models/(包括其清单和元数据)、lora_datasets/、dataset_builder/、preparer_output/,以及任何外部数据集目录 |
| 高级设置与证据记录 | voicelab_config.json、reports/、run_history/、evaluation_reviews/,以及你希望保留的日志 |
| 单独提供的资源 | 本地 GGUF 文件、自定义模型/解释器设置、已下载的内置适配器,以及存放在上述目录之外的参考文件 |
最稳妥的完整快照,是在停止运行后复制整个检出目录,再加上所有已配置的外部数据/资源。只有在确定知道如何重建时,才排除环境目录或可重新下载的缓存。不要从其他操作系统恢复 Python 环境,也不要认为复制过来的 GPU 环境可以直接通用。
请完整复制同一组检查点文件。头文件可能引用同级目录中名为 *.parts-<id> 的目录;只复制 JSON 文件可能导致检查点无法使用。同样,应将分块状态日志与其匹配的 chunks.json 快照一并保留,不能混用不同备份中的文件。
自定义路径
ALEXANDRIA_DATA_DIR用于迁移应用的可变数据根目录。使用非默认数据根目录时,上传文件位于其中的uploads/子目录,配置默认保存在其中的config.json。ALEXANDRIA_CONFIG_PATH可独立覆盖设置文件的路径,即使数据根目录位于其他位置也是如此。- Voice Lab(声音实验室)、Preparer(数据准备工具)、自定义克隆参考文件和外部工具可能指向其他目录。请单独备份这些目录。
- 内置适配器资源仍与检出目录中的
builtin_lora/关联,仅备份自定义数据根目录并不能涵盖这些资源。
请记录这些路径和你使用的环境变量名称。注意保护备份的访问权限:配置中可能包含 API 密钥,脚本、录音和日志也可能包含私密文本或声音数据。env:NAME 形式的密钥引用不包含密钥本身;在新安装中,应以安全方式恢复相应的环境变量。
使用 Pinokio 更新
- 完成上述备份步骤。
- 选择 Update(更新)。
- 观察终端。启动器会停止它已知的写入进程,运行
git pull,然后重新运行核心安装程序。 - 如果 Git 报告本地改动或冲突,请保留这些改动,并有意识地处理问题。不要仅为了完成更新而丢弃文件。
- 安装完成后,启动应用,并检查 Setup(设置)、已保存的脚本、声音库以及一小段音频样本。
- 如果更新改变了可选的原生依赖项,请先停止应用,再重新运行 Install Voice Tools (Optional)(安装声音工具,可选),然后再使用相关阶段的功能。
更新不能保证中断的任务可以恢复,也不能保证旧检查点与发生变化的输入/设置/代码兼容。请保留备份,直到重要工作能够打开,且小规模测试通过。Reinstall(重新安装)会重新运行核心依赖安装程序;它与 Reset(重置)不是同一操作,本身也不会拉取新代码。
Docker 升级
使用随项目提供的 Compose 配置时:
- 等待正在进行的任务停止后,使用
docker compose stop停止服务。 - 备份整个
data/,而不仅是data/runtime/。现有资料库、设置、上传文件和音频片段是从同级目录挂载的。 - 如果不想重新下载权重,请保留现有的 Hugging Face 命名缓存卷。不要把删除卷的命令当作常规升级步骤。
- 更新检出目录,并在同一项目目录中使用
docker compose up --build重新构建并启动。 - 删除任何备份之前,先检查设置、资料库,并运行一个小任务。
随项目提供的配置设置了:
ALEXANDRIA_DATA_DIR=/alexandria/runtime,挂载自data/runtimeALEXANDRIA_CONFIG_PATH=/alexandria/config/config.json,由data/config提供持久化存储- 在运行时目录树下分别挂载资料库/上传文件/音频目录,保留现有的宿主机目录布局
此布局不需要迁移宿主机数据。旧的容器内路径,例如 /alexandria/scripts、/alexandria/voicelines 和 /alexandria/app/uploads,都是指向运行时位置的符号链接。如果用自定义部署替代 Compose,请同时保留配置和运行时数据的持久化存储。
重置警告:会移除当前工作
**Pinokio 的 Reset(重置)具有破坏性。不要把它当作通用的故障排查捷径。**它会停止由启动器管理的写入进程,并删除检出目录下的这些默认路径:
annotated_script.json
voices.json
voice_config.json
character_aliases.json
state.json
app/config.json
chunks.json
cloned_audiobook.mp3
voicelines/
这会移除当前脚本、当前声音分配/状态、已生成的音频片段、合并后的 MP3,以及默认设置文件。重置脚本会保留可复用的资料库,例如已保存的脚本、设计声音/克隆声音和训练资料库。
重置清单是明确列出的,并使用默认检出目录路径。它不是完整的数据擦除工具,未列出所有报告/检查点/导出文件,也不应假定它会清空自定义数据/配置目录。反过来,保留资料库也不意味着保留了上面列出的当前项目。请先备份;如果你的安装方式有所不同,请检查 reset.js。
恢复与验证
请在安装实例停止运行时恢复数据。将每份当前书籍快照、其配套文件、声音配置和音频放在一起恢复。恢复资料库时,请连同其清单和元数据一起恢复,再恢复到正确的设置路径,并还原所有必需的环境变量。
在继续长时间任务之前:
- 确认加载的是预期的书籍源文件和脚本。
- 确认克隆参考文件和适配器路径能够解析到真实文件。
- 试听已有音频,并生成一小段测试台词。
- 查看可用的恢复控件;更改源文件、模型或设置后,不要假定检查点仍然有效。
- 在上述检查成功之前,不要改动备份。
有关音频就绪状态和最终输出,请参阅渲染与导出。
来源
依据已发布的 main 分支版本 8c7a33cb310ab9264594a09ca27e48271585094f 核对:更新、重置、运行时路径、路径覆盖、已保存脚本的配套文件、检查点存储、Docker 持久化。