⛔該項目不再積極維護。

Riffusion是一個具有穩定擴散的實時音樂和音頻產生的庫。
在https://www.riffusion.com/about上閱讀有關它的信息,並在https://www.riffusion.com/上嘗試一下。
這是複興圖像和音頻處理代碼的核心存儲庫。
相關存儲庫:
如果您以這項工作為基礎,請引用如下:
@article{Forsgren_Martiros_2022,
author = {Forsgren, Seth* and Martiros, Hayk*},
title = {{Riffusion - Stable diffusion for real-time music generation}},
url = {https://riffusion.com/about},
year = {2022}
}
用Python 3.9和3.10在CI中測試。
強烈建議使用conda或virtualenv建立虛擬的Python環境:
conda create --name riffusion python=3.9
conda activate riffusion
安裝Python依賴性:
python -m pip install -r requirements.txt
為了使用WAV以外的音頻格式,需要FFMPEG。
sudo apt-get install ffmpeg # linux
brew install ffmpeg # mac
conda install -c conda-forge ffmpeg # conda
如果Torchaudio沒有後端,則可能需要安裝libsndfile 。看到這個問題。
如果您有問題,請嘗試升級擴散器。用0.9-0.11測試。
指南:
cpu得到了支持,但很慢。
cuda是推薦和大多數表現的後端。
要與CUDA一起使用,請確保安裝了CUDA支持的火炬和Torchaudio。請參閱安裝指南或穩定的車輪。
要實時生成音頻,您需要一個GPU,該GPU可以在五秒鐘內以大約50個步驟運行穩定的擴散,例如3090或A10G。
測試可用性:
import torch
torch . cuda . is_available ()蘋果矽上的mps後端得到了推理的支持,但某些操作又回到了CPU,尤其是在音頻處理中。您可能需要設置PYTORCH_ENABLE_MPS_FALLBACK=1 。
此外,此後端不是確定性的。
測試可用性:
import torch
torch . backends . mps . is_available ()Riffusion帶有用於執行常見任務的命令行接口。
請參閱可用命令:
python -m riffusion.cli -h
獲得特定命令的幫助:
python -m riffusion.cli image-to-audio -h
執行:
python -m riffusion.cli image-to-audio --image spectrogram_image.png --audio clip.wav
Riffusion包含一個簡化的應用程序,用於交互式使用和探索。
運行:
python -m riffusion.streamlit.playground
並在http://127.0.0.1:8501/上訪問
重新源可以作為通過API推斷的燒瓶服務器運行。該服務器使Web應用程序可以在本地運行。
運行:
python -m riffusion.server --host 127.0.0.1 --port 3013
您可以以擴散器格式--checkpoint使用您自己的目錄或擁抱面ID。
使用--device參數指定要使用的火炬設備。
現在可以通過郵政請求通過http://127.0.0.1:3013/run_inference run_inference獲得該模型端點。
示例輸入(請參閱API的推論):
{
"alpha": 0.75,
"num_inference_steps": 50,
"seed_image_id": "og_beat",
"start": {
"prompt": "church bells on sunday",
"seed": 42,
"denoising": 0.75,
"guidance": 7.0
},
"end": {
"prompt": "jazz with piano",
"seed": 123,
"denoising": 0.75,
"guidance": 7.0
}
}
示例輸出(請參閱API的推薦點):
{
"image": "< base64 encoded JPEG image >",
"audio": "< base64 encoded MP3 clip >"
}
測試生活在test/目錄中,並以unittest實施。
進行所有測試:
python -m unittest test/*_test.py
進行一次測試:
python -m unittest test.audio_to_image_test
要保留用於調試的臨時輸出,請設置RIFFUSION_TEST_DEBUG :
RIFFUSION_TEST_DEBUG=1 python -m unittest test.audio_to_image_test
在測試中運行單個測試用例:
python -m unittest test.audio_to_image_test -k AudioToImageTest.test_stereo
要使用特定的火炬設備運行測試,請設置RIFFUSION_TEST_DEVICE 。測試應通過cpu , cuda和mps後端進行。
使用python -m pip install -r requirements_dev.txt安裝DEV的其他軟件包。
ruffblackmypy這些是在pyproject.toml中配置的。
mypy . , black .和ruff .必須乾淨才能接受公關。
CI通過.github/workflows/ci.yml的github動作運行。
歡迎通過拉拉請求供款。