相信玩ai的都知道huggingface这个网站,这个网站上有很多模型,有时候我们需要把模型下载到本地然后运行 那么怎么优雅的去下载呢?
一般来说有两种方式,一种是你直接打开huggingface的仓库页面,然后点击下载对应的模型文件,但是这种方式 对于模型文件只有一两个还好一些,如果有好几个,那就太麻烦了,你需要一个个点击。
第二种方式就是你使用git去下载,安装lfs插件,然后git clone即可,这种方式的弊端就是你会全部下载下来,包括历史, 还有一堆你不想要的文件,因为你可能只需要模型文件。

我自己用的也是git方式,不过我使用了一些git的参数去规避上述常规git clone的缺点,也方便了后续更新。

举个例子,假设你要下载的模型是sdxl的模型 https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main

复制仓库的id,stabilityai/stable-diffusion-xl-base-1.0

然后执行

git clone --depth 1 --branch main --no-checkout git@hf.co:stabilityai/stable-diffusion-xl-base-1.0

下面我来解释一下各个参数的意思,–depth 1表示只clone最新的一层,不包含历史,no-checkout的意思就是先不要checkout, 仅把文件夹和基础git目录信息创建出来,后面 还需要精准去checkout需要的文件,如果你在clone的时候直接就checkout的话,那么就相当于整个仓库的文件都下载了。

这个仓库其实有很多文件,但是我们需要的就两个, sd_xl_base_1.0.safetensors
sd_xl_base_1.0_0.9vae.safetensors

那么这时候如何使用git只下载这两个文件呢?

使用如下命令即可,这样checkout的话,只会下载这两个文件

git sparse-checkout set sd_xl_base_1.0.safetensors
git sparse-checkout set sd_xl_base_1.0_0.9vae.safetensors

如果需要全部下载怎么办? 使用 git checkout main即可