
想在自己的电脑上用 AI 生成歌曲,又不想把 Python、模型和缓存散落到系统盘?这篇文章记录一套已经实际跑通的 ACE-Step 1.5 Windows 部署方案:环境和模型尽量留在项目文件夹里,使用独立虚拟环境,支持 NVIDIA GPU,并把启动、停止、模型切换和清缓存都做成了可双击的批处理文件。
本文测试环境为 Windows 11、Python 3.12.7、PyTorch 2.7.1 + CUDA 12.8、NVIDIA RTX 3060 Ti 8GB。Web UI 已正常返回页面,CUDA 也能识别显卡。
项目仍在持续更新,模型能力和显存策略可能随版本变化。本文以 ACE-Step 1.5 和 2026 年 9 月的实测版本为准。
ACE-Step 1.5 能做什么
ACE-Step 1.5 是一个本地音乐生成项目。它既可以根据一句自然语言生成完整歌曲,也能接收歌词、BPM、调式和参考音频,完成翻唱、局部重绘、续写等工作。
常用模式可以这样理解:
| 模式 | 适合做什么 | 新手建议 |
|---|---|---|
| Simple | 用一句话生成歌词、风格和歌曲方案 | 第一次体验从这里开始 |
| Custom | 自己填写歌词、曲风、BPM 等参数 | 控制力更强,也更稳 |
| Remix | 参考已有音频的气质或编曲方向 | 使用清晰、已获授权的参考音频 |
| Repaint | 只重做歌曲中的某一段 | 先用短片段测试 |
| Cover | 改变歌曲的演绎或风格 | 输入质量会明显影响结果 |
| Extract / Lego / Complete | 提取、重组或补全音乐内容 | 需要 Base 系列模型 |
公开分享生成音乐前,请确认歌词、参考音频和训练素材拥有合法使用权。不要把“本地生成”误解为“自动获得版权授权”。
为什么要做项目内隔离
很多 AI 项目会把依赖装到系统 Python,把模型写进用户目录,把缓存堆到 C 盘。项目一多,就容易出现依赖互相冲突、端口打架、模型重复下载,以及删项目后还残留几十 GB 文件的问题。
这套方案把主要内容都放在 ACE-Step 项目目录中:
<code class="language-text">ACE-Step-1.5/ ├─ .venv/ Python 独立虚拟环境 ├─ .cache/ Hugging Face、ModelScope、Torch 等缓存 ├─ models/checkpoints/ 模型权重 ├─ gradio_outputs/ 生成的音频 ├─ .env 本项目配置 ├─ 启动-WebUI.bat ├─ 停止-WebUI.bat └─ 停止并清空缓存.bat </code>

这样做的好处很直接:不改系统级 Python,不占用其他项目的模型目录,不覆盖全局环境变量,停止服务时也只处理本项目使用的端口。
开始前需要准备什么
官方要求 Python 3.11 或 3.12。Windows 用户推荐 NVIDIA 显卡;CPU 也能运行,但速度会慢很多。
| 项目 | 最低建议 | 更舒服的配置 |
|---|---|---|
| 操作系统 | Windows 10/11 64 位 | Windows 11 |
| Python | 3.11-3.12 | 3.12 |
| 显卡 | 6GB 显存可尝试轻量模式 | 8GB 以上 NVIDIA 显卡 |
| 内存 | 16GB | 32GB |
| 磁盘空间 | 至少预留 25GB | 建议预留 35GB 以上 |
本次部署中,模型目录约 15.16GB,虚拟环境约 6.14GB;缓存、下载文件和生成音频还会继续占用空间,所以不要只按模型大小准备磁盘。
新手部署方法
1. 获取项目源码
在准备好的目录中打开 PowerShell:
<code class="language-powershell">git clone https://github.com/ACE-Step/ACE-Step-1.5.git cd ACE-Step-1.5 </code>
不熟悉 Git 的读者也可以下载源码压缩包并解压。路径尽量简短,避免放在需要管理员权限的系统目录中。
2. 创建独立环境
官方推荐使用 uv。本文配套部署将 uv 放在项目的 .toolsuv 中;使用原版源码的读者,也可以按官方说明安装 uv。无论采用哪种方式,都应让虚拟环境落在项目中的 .venv,不要把依赖安装进系统 Python。
<code class="language-powershell">uv sync </code>
正常完成后,项目根目录会出现 .venv。本次 Windows 部署使用的是 Python 3.12.7 和 CUDA 12.8 版 PyTorch。
可以用下面的命令检查 GPU 是否被识别:
<code class="language-powershell">..venvScriptspython.exe -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'CPU')" </code>
看到 True 和自己的 NVIDIA 显卡名称,才表示 CUDA 路径真正可用。只看到网页能打开,并不等于模型已经在用 GPU。
3. 把缓存和模型锁在项目目录
在项目根目录创建 .env,核心思路如下。请把路径替换成自己的实际目录:
<code class="language-dotenv"># 主模型和 LM 都从本项目的模型目录读取。 ACESTEP_CHECKPOINTS_DIR=D:/AI/ACE-Step-1.5/models/checkpoints # 8GB 显存优先使用速度快、占用较低的组合。 ACESTEP_CONFIG_PATH=acestep-v15-turbo ACESTEP_LM_MODEL_PATH=acestep-5Hz-lm-0.6B ACESTEP_LM_BACKEND=pt ACESTEP_BATCH_SIZE=1 # 服务只监听本机;端口可根据本机占用情况调整。 SERVER_NAME=127.0.0.1 PORT=7861 ACESTEP_API_PORT=8001 # 不在启动时强制加载全部模型,网页起来后再初始化。 ACESTEP_NO_INIT=true # 将常见缓存重定向到项目文件夹。 HF_HOME=D:/AI/ACE-Step-1.5/.cache/huggingface MODELSCOPE_CACHE=D:/AI/ACE-Step-1.5/.cache/modelscope TORCH_HOME=D:/AI/ACE-Step-1.5/.cache/torch GRADIO_TEMP_DIR=D:/AI/ACE-Step-1.5/.cache/gradio-temp </code>
这里用 7861 是因为本机的 7860 已被另一个项目占用。每个本地服务分配不同端口,就不会互相影响。
4. 准备模型
模型可以由程序首次运行时自动下载,也可以提前手动下载到:
<code class="language-text">modelscheckpoints </code>
常用命令如下:
<code class="language-powershell"># 查看可下载模型。 ..venvScriptsacestep-download.exe --list # 下载适合 8GB 显存的 0.6B LM。 ..venvScriptsacestep-download.exe --model acestep-5Hz-lm-0.6B --dir .modelscheckpoints # 下载支持 Extract、Lego、Complete 的 Base 模型。 ..venvScriptsacestep-download.exe --model acestep-v15-base --dir .modelscheckpoints </code>
网络不稳定时,可以把模型文件直链交给 IDM 下载。下载结束后必须检查实际文件大小,不能只看 IDM 显示“完成”。如果其他项目中已有同版本、同目录结构的完整模型,也可以复制过来复用,但不要用半截下载文件覆盖完整权重。
8GB 显卡怎么选模型
ACE-Step 的主生成模型是 DiT,负责真正合成音乐;LM 更像“策划和理解助手”,负责扩写描述、生成歌词和元数据、理解音频等。两者不是同一个东西。
| 组件 | 推荐选择 | 用途 | 8GB 显存结论 |
|---|---|---|---|
| DiT | acestep-v15-turbo |
日常文本生成、Cover、Repaint | 默认推荐,速度最快 |
| DiT | acestep-v15-base |
Extract、Lego、Complete 等高级功能 | 有需求再切换 |
| LM | acestep-5Hz-lm-0.6B |
描述扩写、歌词、元数据 | 推荐常驻 |
| LM | acestep-5Hz-lm-1.7B |
更强的理解和规划 | 8GB 可尝试,但更慢且更容易爆显存 |
| XL DiT | acestep-v15-xl-* |
更高质量的 4B 主模型 | 8GB 不推荐,官方建议至少 12GB 并卸载 |
最稳妥的起步组合是:turbo + 0.6B LM + pt 后端 + 批量 1。遇到显存不足时,依次缩短时长、保持批量 1、关闭 LM、启用 CPU 卸载,不要一上来就换更大的模型。
双击脚本怎么用
为了让日常操作更简单,本文配套部署把常用命令做成了批处理文件。它们是本次部署额外增加的便捷工具,不是所有上游源码压缩包都自带:
| 批处理文件 | 功能 |
|---|---|
启动-WebUI.bat |
启动网页界面,默认访问 http://127.0.0.1:7861 |
停止-WebUI.bat |
只停止 Web UI 端口对应的进程 |
启动-API.bat |
启动 REST API,默认端口 8001 |
停止-API.bat |
停止 API 服务 |
切换-LM到0.6B.bat |
切换回 8GB 显存推荐配置 |
切换-LM到1.7B.bat |
切换到能力更强、占用更高的 LM |
下载-0.6B-LM到本项目.bat |
调用 IDM 将缺失模型放进项目目录 |
停止并清空缓存.bat |
停止本项目服务并清理可再生缓存 |
清缓存脚本会保留 .venv、modelscheckpoints、.wheels 和 gradio_outputs,不会删掉模型和生成结果。它主要清理 .cache、.tmp、日志和下载临时目录。

第一次生成歌曲
- 双击
启动-WebUI.bat。 - 浏览器打开
http://127.0.0.1:7861。 - 在网页中初始化服务,第一次加载模型需要耐心等待。
- 新手先选 Simple 模式,输入“中文流行摇滚,男声,副歌有记忆点,120 BPM”一类描述。
- 先生成 30-60 秒、批量 1 的样本,确认流程正常后再加长。
- 生成结果到
gradio_outputs中查找。
如果已经写好歌词,建议改用 Custom 模式。它减少了 LM 自由发挥的部分,歌词、曲风、速度和语言都更容易控制。
初始化失败怎么排查
网页能打开,但初始化一直失败
最常见原因是模型没有下载完整。检查 modelscheckpoints 中相应模型目录是否存在,以及大体积的 model.safetensors 是否真实落盘。只有配置文件、下载元数据或零字节文件,不能算模型完整。
下载反复中断
优先使用 IDM 或支持断点续传的下载器,并把目标直接放到项目模型目录。下载后再次核对文件大小。不要把浏览器下载失败留下的临时文件直接改名冒充权重。
提示端口被占用
用下面的命令检查端口:
<code class="language-powershell">netstat -ano | findstr :7861 </code>
如果这个端口属于其他项目,不要强行结束对方进程,直接在 .env 中给 ACE-Step 换一个空闲端口。
提示 CUDA 内存不足
先确认使用 0.6B LM、pt 后端和批量 1,再缩短生成时长。仍然不足时关闭 LM,仅使用 Custom 模式手动填写参数。8GB 显卡不建议同时追求 XL 主模型、1.7B/4B LM、长音频和高批量。
清缓存后还要重新下载吗
配套的“停止并清空缓存”脚本不会删除 modelscheckpoints,因此正常情况下不需要重新下载模型。手工清理时一定要分清“缓存”和“模型权重”。
最后给新手的几条建议
- 第一次先追求“完整跑通”,不要同时追求最长歌曲、最大模型和最高批量。
- 8GB 显卡优先使用
turbo + 0.6B LM + pt,这是稳定性和功能之间比较现实的平衡。 - 每个 AI 项目都使用自己的
.venv、模型目录、缓存目录和端口。 - 模型下载完成后检查真实文件,不要只相信下载器状态。
- 分享歌曲前检查歌词、参考音频和声音素材的授权范围。
- LoRA 训练通常需要更多显存;8GB 更适合推理和数据准备,完整训练建议使用 16GB 以上显卡或云 GPU。
把环境边界理清以后,ACE-Step 的日常使用其实很简单:双击启动、打开网页、初始化模型、填写描述、生成并试听。最费时间的是第一次准备依赖和模型,后面就会变成一个相对独立、可随时启动和停止的本地音乐工作台。
