Riffusion 是 Seth Forsgren 和 Hayk Martiros 在 2022 年 12 月 15 日放出来的项目,思路简单到有点离谱:既然 Stable Diffusion 会画图,那就教它画声音的频谱图,画完再把图变回音频。模型本体 riffusion-model-v1 就是 SD 1.5 的微调版,UNet、VAE、冻结的 CLIP ViT-L/14 文本编码器一个没换,所以任何一套跑得动 SD 1.5 的推理栈,理论上都跑得动 Riffusion。这也是它至今仍然是自建音乐生成最容易上手的一条路的原因。
但你得先知道现在是什么局面。riffusion.com 这个域名已经 301 跳到 producer.ai,producer.ai 又 301 跳到 flowmusic.app —— 团队在 2023 年 10 月拿了 400 万美元融资之后转做闭源托管产品,新模型的权重和参数量一个字都没公开。GitHub 上的 riffusion/riffusion-hobby 明明白白写着「不再积极维护」,最后一次更新停在 2024 年 7 月 22 日。换句话说,你能自己部署的 Riffusion 只有 2022 年那一版 v1,托管产品那条线没有私有化选项。这不是坏消息,只是你得按它真实的样子去用它。
好在 v1 这一版是完整开放的:代码 MIT,权重 CreativeML OpenRAIL-M,Hugging Face 上 riffusion-model-v1.ckpt 14.6GB、整个仓库 21.8GB 随便拉。官方 README 直接点名了两张卡 —— 3090 和 A10G —— 说这个级别才能撑起「实时」的体验。NexGPU 这两张恰好都有现货:RTX 3090 24GB $0.193/卡·时、A10 24GB $0.414/卡·时,按秒计费,实例停了计算就不再扣钱。拉一次权重、跑通一遍、决定它值不值得留下,成本大概是一杯咖啡的零头。
01 —
Riffusion 有哪几个版本,哪一个能自己部署
公开权重只有一条线,托管产品那条线已经改名两次了
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| riffusion/riffusion-model-v1(权重) | 约 1B(SD 1.5 骨架:UNet 860M + VAE 83M + CLIP ViT-L/14 123M) | fp16 推理约 4GB、fp32 约 8GB;磁盘 ckpt 14.6GB、整仓 21.8GB | 512×512 图 = 5.12 秒 / 44.1kHz / 单声道 | 唯一公开权重的 Riffusion。CreativeML OpenRAIL-M 授权,仓库最后更新停在 2023 年 6 月,官方没有放出 fp16 或 safetensors 变体,只有原始 ckpt 和 diffusers 目录结构(含一份 traced UNet)。 |
| riffusion/riffusion-hobby(推理代码) | Python 3.9 / 3.10 only | 同上,代码本身不额外占显存 | CLI + Streamlit playground + Flask 推理服务 | MIT 授权,README 首行就是「不再积极维护」。requirements.txt 把 diffusers 钉死在 0.9.0,这是自建时第一个会炸的地方 —— 详见下面的部署步骤。 |
| riffusion/riffusion-app-hobby(Web 前端) | TypeScript / Next.js | 不占显存,可以放在 CPU 机器上 | 靠后端 /run_inference 无限拼接 | 官方那个「无限滚动的音乐流」网页版就是它。同样 MIT、同样停更,靠 img2img 循环加 prompt 插值把 5.12 秒的片段接成连续的曲子。 |
| 现行托管产品线(Producer AI → Flow) | 官方未公开 | 无法自建 | 整首歌,带人声 | riffusion.com 现在跳转到 producer.ai,再跳到 flowmusic.app。这条线是闭源 SaaS,权重、参数量、架构一律没公开,想私有化只能退回 v1 或者换开源模型。 |
| ACE-Step v1(推荐的开源替代) | 3.5B | 优化后峰值降到 8GB,bf16 可开 --cpu_offload 再压 | 最长约 4 分钟整曲 | Apache-2.0,是目前自建「能听的完整歌曲」最实际的选择。官方实测 RTX 4090 上 27 步 RTF 34.48×(1 分钟音频算 1.74 秒),3090 上 12.76×。 |
| DiffRhythm-v1.2(另一条开源路线) | base / full 两档 | 最低 8GB,关掉分块解码要更多 | base 1 分 35 秒、full 4 分 45 秒 | Apache-2.0,中文名「谛韵」,支持歌词条件和参考音频条件,能一次出整首带结构的歌。想做中文歌词的团队通常先试它。 |
02 —
跑 Riffusion 该租哪张卡
官方 README 点名了 3090 和 A10G,这两张我们都有
跑通 riffusion-hobby,生成 5.12 秒片段做评估
RTX 3090 24GB$0.193/卡·时
README 原文点名的卡,50 步 512×512 稳定在 5 秒内,24GB 显存对一个只要 4GB 的模型来说完全没有压力,而且它是整个价目表里最便宜的现代卡。
Flask 服务常驻,img2img 循环持续出流
A10 24GB$0.414/卡·时
对应 README 里的另一张点名卡 A10G,数据中心被动散热设计,适合一直挂着不停生成的长时任务。
DreamBooth / LoRA 微调频谱图风格,或批量并发出图
RTX 4090 24GB$0.540/卡·时
微调 SD 1.5 骨架时显存和算力都吃得下,同时还能并行跑 demucs 分轨预处理,训练轮次明显缩短。
转向 ACE-Step 3.5B 或 DiffRhythm-full 做整首歌
RTX 5090 32GB$0.723/卡·时
32GB 让你可以关掉分块解码、把整首 4 分钟的 latent 一次性解出来,省掉拼接处的接缝。
03 —
Riffusion 私有化部署四步
从空机器到第一段音频,主要时间都花在拉 21.8GB 权重上
- 01
开一台 3090,选 PyTorch 镜像
在 NexGPU 控制台选 RTX 3090 24GB,直接用预置的 PyTorch 镜像(2,000+ 镜像里也有 ComfyUI、Whisper ASR 这些,音频链路后面用得上)。开机后先确认卡认到了,再确认 ffmpeg 在 —— Riffusion 除了 WAV 之外的所有格式都靠它。
nvidia-smi && ffmpeg -version | head -1 && python -c "import torch; print(torch.__version__, torch.cuda.get_device_name(0))" - 02
拉权重,先看清楚要占多少盘
riffusion-model-v1.ckpt 单文件 14.6GB,整个仓库连 diffusers 目录和那份 traced UNet 一共 21.8GB。如果你只打算用 diffusers 管线,可以跳过 .ckpt 只拉子目录,能省掉一大半下载量。注意存储按 $0.414/GB·月 中位价计费,而且实例停机后存储照收,直到你把卷销毁为止。
huggingface-cli download riffusion/riffusion-model-v1 --local-dir ./riffusion-model-v1 - 03
建 Python 3.10 环境,绕开 diffusers 版本坑
riffusion-hobby 的 requirements.txt 把 diffusers 钉在 0.9.0,而 0.9.0 跟 2023 年以后的 transformers、accelerate、torch 组合几乎必然冲突,这是自建时最常见的翻车点。稳妥做法是单独开一个 Python 3.10 环境,让这套老依赖自己待着;如果你不需要 Streamlit playground 和 demucs 分轨,更省事的路子是直接用新版 diffusers 把它当普通 SD 管线加载:StableDiffusionPipeline.from_pretrained('riffusion/riffusion-model-v1', torch_dtype=torch.float16).to('cuda'),然后自己写 mel 逆变换。
conda create -n riffusion python=3.10 -y && conda activate riffusion && pip install -r requirements.txt - 04
起推理服务,出第一段音频
Flask 服务默认监听 3013,POST /run_inference 收 prompt 和配置就返回音频。想先玩交互式的就跑 Streamlit playground(8501 端口),里面有文本转音频、音频转图、prompt 插值这些现成页面。通过 SSH 端口转发或 NexGPU 的 Web 终端访问都行,别直接把端口暴露到公网。
python -m riffusion.server --host 0.0.0.0 --port 3013
一小时能出多少音频,一共花多少钱
按官方 README 的口径算:3090 上 50 步一张 512×512 大约 5 秒,一小时 3600 秒能出约 720 张频谱图。每张图对应 5.12 秒音频,720 × 5.12 秒 ≈ 3686 秒 ≈ 61 分钟成品音频。RTX 3090 24GB 每卡时 $0.193,折算下来每分钟音频约 $0.193 ÷ 61 ≈ $0.0032 —— 三厘钱一分钟。如果换成 A10 24GB 做常驻服务,每天挂 8 小时、跑满一个月是 8 × 30 × $0.414 = $99.36。存储那边,开一个 30GB 卷装权重按 $0.414/GB·月 中位价是 30 × $0.414 = $12.42/月,这部分在实例停机后仍然计费,直到卷被销毁;计算部分则是停机即停,按秒结算。导出成品的出网流量按中位 $0.0081/GB,1GB 的 WAV 大约八厘钱。没有最低消费,没有开通费,也不用提配额申请。
04 —
