Huggingface批量下載模型-lfs方式
最近在用ControlNet,v1.1版本使用lllyasviel的sd1.5的模型,需要很多個pth模型。其實一個一個點擊下載也問題不大,因為倉庫里也就20多30個文件左右,但能用命令行還是盡量用,批量操作,提升效率。 因為huggingface用的是lfs存儲,所以先搭lfs環(huán)境。(?ˉ??ˉ??) LFS其實是Git Large File Storage(LFS),大型文件存儲,算是Git的一個擴(kuò)展,它允許Git倉庫存儲和管理大型二進(jìn)制文件。對于我們軟件開發(fā)中使用大型的圖像、音頻文件等,比如我現(xiàn)在用的這么多動不動幾十個G的深度學(xué)習(xí)訓(xùn)練模型,Git LFS非常有用。原理是將大文件分離出來,存儲在服務(wù)器或云存儲服務(wù)上,而只將文件的metadata(文件名、大小、SHA-1校驗等信息)存儲在Git倉庫中。這樣做的優(yōu)點是顯著減小了Git倉庫的大小,提高git的性能和可用性。 我們?nèi)绻枰螺d模型到本地使用,就可以用LFS批量下載模型。 安裝非常簡單,只不過在安裝Git LFS之前,要求Git已經(jīng)安裝并配置好了SSH密鑰連接到GitHub、huggingface或其他代碼倉庫。
LINUX系統(tǒng):
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
其實就是將Git LFS作為一個額外的包安裝到Git中。如果使用Windows下的Linux子系統(tǒng),可以像在Linux中一樣直接安裝Git LFS。
在Linux上,可以通過軟件包管理器(如yum或apt)安裝Git LFS。
Windows系統(tǒng):
直接:git lfs install
如果顯示Git LFS initialized說明已經(jīng)OK。
如果不想一下把所有大文件下載,可以跳過所有大文件,只下載零碎文件,再根據(jù)需要手動單獨下載大文件。
直接:GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/lllyasviel/ControlNet-v1-1
注意這里SMUDGE=1及其后面要寫在同一行。 如果確實需要全部,那就直接clone吧?(`?′)?
git clone https://huggingface.co/lllyasviel/ControlNet-v1-1
當(dāng)然經(jīng)??赡軙龅絞ithub和huggingface連接不上的問題,可以給git加上代理。 而且下載過程是不可見的,也不顯示百分比和進(jìn)度條,但在clone文件夾處能看到文件在下載,網(wǎng)絡(luò)流量也在狂飆\(`Δ’)/ 啊,還有個剛剛看到的,
git lfs clone https://huggingface.co/lllyasviel/ControlNet-v1-1
可以顯示下載進(jìn)度和下載速度了! ( ?° ?? ?°)?