Huggingface批量下载模型-lfs方式
最近在用ControlNet,v1.1版本使用lllyasviel的sd1.5的模型,需要很多个pth模型。其实一个一个点击下载也问题不大,因为仓库里也就20多30个文件左右,但能用命令行还是尽量用,批量操作,提升效率。 因为huggingface用的是lfs存储,所以先搭lfs环境。(˵¯͒〰¯͒˵) LFS其实是Git Large File Storage(LFS),大型文件存储,算是Git的一个扩展,它允许Git仓库存储和管理大型二进制文件。对于我们软件开发中使用大型的图像、音频文件等,比如我现在用的这么多动不动几十个G的深度学习训练模型,Git LFS非常有用。原理是将大文件分离出来,存储在服务器或云存储服务上,而只将文件的metadata(文件名、大小、SHA-1校验等信息)存储在Git仓库中。这样做的优点是显著减小了Git仓库的大小,提高git的性能和可用性。 我们如果需要下载模型到本地使用,就可以用LFS批量下载模型。 安装非常简单,只不过在安装Git LFS之前,要求Git已经安装并配置好了SSH密钥连接到GitHub、huggingface或其他代码仓库。
LINUX系统:
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子系统,可以像在Linux中一样直接安装Git LFS。
在Linux上,可以通过软件包管理器(如yum或apt)安装Git LFS。
Windows系统:
直接:git lfs install
如果显示Git LFS initialized说明已经OK。
如果不想一下把所有大文件下载,可以跳过所有大文件,只下载零碎文件,再根据需要手动单独下载大文件。
直接: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
当然经常可能会遇到github和huggingface连接不上的问题,可以给git加上代理。 而且下载过程是不可见的,也不显示百分比和进度条,但在clone文件夹处能看到文件在下载,网络流量也在狂飙\(`Δ’)/ 啊,还有个刚刚看到的,
git lfs clone https://huggingface.co/lllyasviel/ControlNet-v1-1
可以显示下载进度和下载速度了! ( ͡° ͜ʖ ͡°)✧