今天發現到有個專案叫YuE(樂),可以本地部屬用來生成音樂,就像suno那樣的服務。

[更新]

目前發現安裝完成運行會寫失敗,原因不明。即使選最慢的模式有達到要求的24GBRAM 10GB VRAM也是報錯。

之後嘗試看看int8的版本試試,也失敗了。

後來爬文說失敗原因可能是歌詞太短!!我已經把專案刪了,只能改天試試看(這個就不重試了,即使跑起來那個速度也不行)

[更新]

改測試YuEGP版本,確實有裝起來了。也能跑,但太慢了~ 使用範例的歌詞與參數 (RTX3060 12GB)顯卡,跑了55分鐘還寫大概要20分鐘,等於1個多小時才能跑的出30秒的音樂。(官方範例寫4090約360秒能跑出30秒的音樂,好像也合理兩張卡確實性能差了12.5倍左右)

只能說顯卡跟我一樣的就別浪費時間測試官方版本跟YuEGP版本的了 (我在Issues裡面有找到一個YuE-exllamav2版本說能讓性能大幅提升?,還在測試中,最下方有附上實測)

image.png

[更新]

跑了一個多小時真的有跑出結果來,音樂居然是60秒的,聽起來是OK就是要跑太久了(一直抱怨????)

image.png



官方版的

安裝方式:

首先到它的github window版的連結

https://github.com/sdbds/YuE-for-windows

步驟一別理它,它這樣刪除一半,還以為要執行安裝conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia pip install -r <(curl -sSL https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/requirements.txt) 這段,後來發現完全不需要....

image.png

我們只需要在電腦建立一個目錄,呼叫CMD (例如在F:project\AI 建立YuE資料夾),打開CMD

執行將專案clone下來

git lfs install 

git clone https://github.com/sdbds/YuE-for-windows.git

找到install-uv-qinglong ,右鍵 用Powershell執行,它就會自動化建立虛擬環境,安裝必要的包之類的

(不過它默認會將一些資料裝在C:,要確認C:是否夠大,或者用文本編輯器改一下路徑)

image.png

再來用文本編輯器打開 2.run,可以把$stage1_model  "m-a-p/YuE-s1-7B-anneal-zh-cot",改成zh,保存後在右鍵用PowerShell執行

image.png

會自動下載必要模型,要抓一陣子。(模型大概12G左右)

這個是一個範例,無介面版的推理。


接下來可以嘗試運行,2、run_gradio,一樣用Powershell執行,就有介面版的可以用

image.png



我花了兩個多小時,在自行部屬環境還跑不通.....浪費一堆時間跟硬碟空間。後來發現Windows安裝不用這麼麻煩....


但我後來發現我這版本需要的GPU比較高,不知道跑不跑得動,還有另一個版本

https://github.com/deepbeepmeep/YuEGP

這個似乎只要比較少GPU,改天再試試看差異

可以參考這個安裝

https://www.youtube.com/watch?v=zw46L4pDFWo


YuE-exllamav2版本的

昨晚弄到半夜4點一直安裝失敗,今天起來後終於安裝好了,這個版本的確實比較快嗎?,它沒提供UI介面,有看到另一個版本的加上的UI,但那個要用docker安裝,我就沒裝了,改用AI寫一個簡單的UI。

專案github

https://github.com/sgsdxzy/YuE-exllamav2

安裝步驟

先說一下環境,我是採用python3.12、CUDA12.1


1.建立虛擬環境

python -m venv myevnv

2.進入虛擬環境

myevnv\Scripts\activate

詳細python虛擬環境使用介紹:https://blog.aidec.tw/post/python-create-venv


3.安裝exllamav2

pip install exllamav2


pip install flash-attn

4.下載推斷程式碼和 tokenizer

git lfs install

git clone https://github.com/sgsdxzy/YuE-exllamav2.git

cd YuE-exllamav2

git clone https://huggingface.co/m-a-p/xcodec_mini_infer

5.安裝環境依賴

pip install -r requirements.txt

這步驟可能會報錯,打開requirements.txt,將scipy==1.10.1 改成 scipy>=1.10.1,再次pip install -r requirements.txt

image.png


6.運行推理

python src/yue/infer.py --stage1_use_exl2 --stage2_use_exl2 --stage2_cache_size 32768 [original args]

才怪!千萬不要直接這樣運行推理,它會使用 JIT 編譯,就會陷入無盡的編譯錯誤,CUDA12.1 只支援visualstudio 2022舊版本的,但現在的版本都太新了,超出CUDA12.1的預期,怎麼改都會失敗,我已經重新裝了好多個版本都失敗,改環境變數....。

最後發現,它有提供一個whl版本的....可以略過JIT編譯這環節

到這邊來選擇對應的版本

https://github.com/turboderp-org/exllamav2/releases

我選的是exllamav2-0.2.7+cu121.torch2.5.0-cp312-cp312-win_amd64這個版本的

image.png


下載好以後,放到這個專案目錄來,在CMD虛擬環境輸入,就會安裝所需的

pip install exllamav2-0.2.7+cu121.torch2.5.0-cp312-cp312-win_amd64.whl

到這個環節還不能進行推理,因為這個版本不會自己下載模型

我們得將這兩個git clone下來

https://huggingface.co/m-a-p/YuE-s2-1B-general

https://huggingface.co/m-a-p/YuE-s1-7B-anneal-en-cot


一樣在CMD這個專案的目錄,輸入

git clone https://huggingface.co/m-a-p/YuE-s2-1B-general

git clone https://huggingface.co/m-a-p/YuE-s1-7B-anneal-en-cot

大概有10幾個GB,要等一陣子,抓好以後可以建立一個新的目錄叫Model,把這兩個放入

推理改成這樣,指定model路徑 跟添加lyrics genre路徑

python src/yue/infer.py --stage1_model "你的目錄\YuE-exllamav2\Model\YuE-s1-7B-anneal-en-cot" --stage2_model "你的目錄\YuE-exllamav2\Model\YuE-s2-1B-general" --stage1_use_exl2 --stage2_use_exl2 --stage2_cache_size 32768 --genre_txt prompt_egs\genre.txt --lyrics_txt  prompt_egs\lyrics.txt

但跑完後感覺有點被騙了,進度條第一段確實快,但第二段反而要跑57分鐘,這樣加起來不就比原本的版本還慢!

image.png


[重要更新]

上面的模型錯了,用了上面的會使用原來的模型,速度就跟其他專案一樣,要改用它,手動抓下來

https://huggingface.co/Doctor-Shotgun/YuE-s1-7B-anneal-en-cot-exl2/tree/4.25bpw-h6

https://huggingface.co/Doctor-Shotgun/YuE-s2-1B-general-exl2/tree/8.0bpw-h8

一樣放到Model,推理改這樣

python src/yue/infer.py --stage1_model "你的目錄\Model\YuE-s1-7B-anneal-en-cot-exl2" --stage2_model "你的目錄\Model\YuE-s2-1B-general-exl2" --stage1_use_exl2 --stage2_use_exl2 --stage2_cache_size 32768 --genre_txt prompt_egs\genre.txt --lyrics_txt  prompt_egs\lyrics.txt


Model路徑

image.png

image.png


速度飛快,大概兩階段加起來8分鐘,可以生成一段50~60秒的音樂

image.png

model1 使用4.25bpw 生成50~60秒(兩段)的約八分鐘,假如生成4段需要跑90分鐘左右

model1 若使用8.0bpw生成50~60秒(兩段)的約20分40秒


缺點是沒有UI介面,lyrics歌詞填中文會報錯的樣子(在windows編輯輸入中文會導致編碼問題)

目前可以通過修改src/yue/infer_stage1.py,改成utf-8 就能通過中文了

with open(args.genre_txt, "r", encoding="utf-8") as f:

        genres = f.read().strip()

    with open(args.lyrics_txt, "r", encoding="utf-8") as f:

        lyrics = f.read().strip()


試聽一下成果

還用AI搞了一個簡易的UI出來

image.png

已經將GUI放在Github,有興趣的人,可以自行去下載

https://github.com/aidec/YuE-exllamav2-GUI-easy


文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)

原文連結:
https://blog.aidec.tw/post/yue-install-win
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記