使用 HuggingFace / ModelScope 保存和下载文件
前言
HuggingFace 和 ModelScope 可以用于保存模型,数据集等,并且上传和下载不会限速,这对于存储一些大文件是非常友好的,但是 HuggingFace 和 ModelScope 并不像其他网盘易于使用,所以下面介绍怎么使用 HuggingFace 和 ModelScope 存储文件。
注册 HuggingFace
打开 https://huggingface.co 这个地址进入 HuggingFace 的官网。
进入官网后点击右上角的 Sign Up(注册)按钮注册一个 HuggingFace 账号。
在注册账号页面填上 Email Address(邮箱地址)和 Password(密码),填写完成后点击 Next(下一步)。
这步是完善个人信息,必须填写 Username(用户名)和 Full name(完整名字),Username 决定了个人 HuggingFace 账号的个人页面地址, Full name 则是在个人页面展示的名字。
Avatar(头像),Github username(Github 用户名)这些在后面标注着(optional)
(可选的)的选项可以不用填写,填写完成后需要勾选I have read and agree with the Terms of Service and the Code of Conduct
(我已阅读并同意服务条款和行为准则),再点击 Create Account(创建账号),此时账号基本创建完成了。
此时 HuggingFace 在顶部提示Please check your email address for a confirmation link
(请在您的邮箱地址检查完成账号配置的链接),此时需要打开刚刚自己填写的邮箱,检查是否有 HuggingFace 发送的邮件,并点击邮件内的链接完成最后一步配置,如果没有收到邮件,可以等待几分钟后刷新邮件列表。
点击配置账号链接后,此时 HuggingFace 账号就完成了注册。
此时可以尝试去创建仓库去存放文件,点击右上角的头像可以打开菜单。
点击 Profile(个人信息)可以查看自己创建的模型仓库,训练集仓库等,但现在没有创建任何仓库,所以需要新建一个。
New Model(新建模型仓库),New Dataset(新建数据集仓库),New Space(新建在线运行空间仓库)分别可以创建模型 / 数据集 / 在线运行空间仓库,现在尝试去创建一个模型仓库,点击 New Model(新建模型仓库),
Model name(模型名称)随意填写一个名称,使用英文 / 数字 / 下划线 / 短横线去命名。
License(许可证)是可选的,可以不用选择。
选择 Public(公开)将会把仓库公开,其他人可以看到。选择 Private(私有)则会隐藏仓库,只有自己能够看到。
选择完成后点击 Create(创建仓库)创建一个模型仓库,同理,使用 New Dataset(新建数据集仓库)创建一个数据集仓库。
创建完成后点击 Profile(个人信息)可以看到自己创建好的仓库。
Model(模型)可以看到自己创建的 licyk/test_model_1 模型仓库,Dataset(数据集)可以看到自己创建的 licyk/test_dataset_1 数据集仓库,点击其中某个仓库可以进入仓库详情。
使用网页端管理文件
HuggingFace 网页端支持简单的仓库文件管理,这里点击 licyk/test_model_1 进入刚刚创建的模型仓库,在 Files and versions 可以看到仓库中的文件。
使用网页上传文件
点击 Add files(添加文件) -> Upload files(上传文件)可以进入上传文件的界面。
在 Upload file(s)(上传文件)的下方可以选择要上传的文件,点击后可以打开系统的文件管理器,选择要上传的文件 / 文件夹,或者直接在系统的文件管理器中选择文件 / 文件夹,拖动到网页 Upload file(s)(上传文件)的下方,可以一次性上传多个文件。
选择要上传的文件后,点击 Commit changes to main 可以将选择好的文件上传到该仓库中。
使用网页管理文件
现在可以看到选择的文件已经上传到该仓库中,在文件的右侧有个 ↓(Download file / 下载文件)按钮,点击后可以下载该文件,或者右键后选择复制下载链接。
如果需要在某个文件夹中上传文件,可以进入那个文件夹,再点击 Add files(添加文件) -> Upload files(上传文件),使用前面的操作上传文件。
点击其中一个文件后可以看到该文件的信息。
如果文件不是文本文件,可以选择的操作有:
download(下载),Copy download link(复制文件下载链接),history(查看文件的修改历史),blame(查看文件的修改处由谁修改),rename(重命名 / 移动文件),delete(删除文件)。
如果使用的是 rename(重命名 / 移动文件),delete(删除文件)操作,在点击操作后网页的左下角会有个 Commit changes to main 按钮,这是用于保存这些操作的结果。
如果文件是文本文件,可以选择的操作有:
raw(查看原始文件),Copy download link(复制文件下载链接),history(查看文件的修改历史),blame(查看文件的修改处由谁修改),edit(编辑 / 重命名 / 移动文件),delete(删除文件)。
上述的方法在数据集仓库中同样适用。
使用 HuggingFace CLI 管理文件
HuggingFace 提供一个命令行工具对仓库进行管理,该工具基于 Python,需要安装 Python 后才能使用。
如果系统是 Windows 10,建议在 Microsoft Store(微软应用商店)搜索 Windows Terminal 并安装。
配置 HuggingFace CLI
如果系统里没有安装 Python,需要先安装一个 Python。打开 https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe 下载 Python 安装包,双击打开后选择 Add python.exe to PATH,再点击 Install Now。
安装完成后如果出现 Disable path length limit,就点击一下。
安装结束后,右键桌面或者文件管理器空白处,在右键菜单选择在终端打开
,此时将启动 PowerShell(默认情况下),在 PowerShell 中输入下面的命令查看是否安装成功。
1 |
|
能够输出 Python 版本就说明 Python 已经正确安装了。
接下来就可以安装 HuggingFace CLI,在安装 HuggingFace CLI 前先配置一下 Pip 镜像源,加速 Python 软件包的下载。
1 |
|
再安装 HuggingFace CLI。
1 |
|
安装好后输入下面的命令就可以看到 HuggingFace CLI 可用的命令。
1 |
|
使用 HuggingFace CLI 管理个人的仓库需要 HuggingFace Token 获取权限,此时回到 HuggingFace 官网,点击右上角的头像,选择 Access Tokens -> Create new token,此时将打开 HuggingFace Token 创建界面,
Token name(令牌名字)随意填写一个,然后在 Repositories(仓库)的选项勾选下方的 3 个选项。
配置完成后点击下方的 Create token(创建令牌),此时将弹出 Save your Access Token(保存您的访问令牌)窗口,下方为 HuggingFace Token,点击右侧的 Copy(复制)按钮可以把 HuggingFace Token 复制下来。注意,HuggingFace Toekn 只会显示一次,所以需要将该 HuggingFace Token 好好保存起来,如果丢失了只能新建一个。
点击 Done(完成)后回到 PowerShell 界面中,输入下面的命令登陆 HuggingFace。
1 |
|
此时将提示 Enter your token (input will not be visible)(输入您的令牌 (输入的内容将不会显示出来)),将刚刚复制下来的 HuggingFace Token 使用 Ctrl + V 粘贴到 PowerShell 中,粘贴后并不会看到已经粘贴的内容,这个不需要担心,回车继续即可,之后提示 Add token as git credential? (Y/n)(添加令牌作为 Git 凭证?(Y/n)),这步直接回车即可。
运行时可能会看到红色的错误信息,这无需理会,当最后一行的信息为 Login successful(登陆成功)时则证明使用 HuggingFace CLI 登陆 HuggingFace 账号成功了,接下来就可以使用 HuggingFace CLI 管理自己的仓库文件。
使用 HuggingFace CLI 上传文件
可以查询一下上传文件的命令使用方法,其他命令的使用方法也可以用这个方法查询。
1 |
|
该文件夹中的文件夹内容如下,现在尝试将这个文件夹的内容上传前面创建的 licyk/test_model_1 模型库中,
1 |
|
huggingface-cli upload 指定了使用 HugginFace CLI 的上传功能。
licyk/test_model_1 指定了 HuggingFace 仓库 ID。
第一个 . 指定的是要上传到 HuggingFace 的文件夹是什么,这里点就代表着是当前的文件夹,也就是要将当前文件夹中的内容全部上传,可以修改成其他路径。
第二个 . 代表着要上传的文件保存在 HuggingFace 仓库中的哪个位置中,这里的 . 就代表着将文件上传到 HuggingFace 仓库中的根目录,可以修改成其他路径。
上传完成后可以看到当前文件夹中的内容被上传到 HuggingFace 仓库中,并且之前上传的文件还保留着。
如果想要上传单个文件,比如在将 E:\Softwares\stable-diffusion-webui\models\Lora\sdxl\style\ag31-fuzichoco_1-000032.safetensors 这个路径的文件上传到仓库中的 model 文件夹,则命令可以这样写。
1 |
|
如果是上传一个文件夹,比如将 D:\Downloads\BaiduNetdiskDownload\lora 这个文件夹中的内容上传到仓库中的 model 文件夹,则命令可以这样写。
1 |
|
现在是对 licyk/test_model_1 这个模型仓库进行操作,但如果是对 licyk/test_dataset_1 这个数据集仓库进行操作,此时就需要指定仓库的类型(前面的 licyk/test_model_1 模型仓库不需要指定是因为 HuggingFace CLI 默认将仓库认为是模型仓库,所以不需要额外指定仓库类型)。
现在要给 licyk/test_dataset_1 这个数据集仓库上传一个文件夹到仓库中,此时的命令就需要使用 –repo-type 参数来指定(只要仓库类型不是模型仓库,而是数据集仓库或者在线运行空间仓库,就需要该参数进行指定,数据集仓库使用 –repo-type=dataset,在线运行空间仓库使用 –repo-type=space)。
1 |
|
使用 HuggingFace CLI 下载文件
现在将文件上传到 HuggingFace 仓库后,可以试着从 HuggingFace 仓库下载文件。
比如将 licyk/test_model_1 模型仓库中,在 model 文件夹中的 ag31-ixy_1-000032.safetensors 文件下载下来,下载到当前目录里的 test 文件夹,命令可以这样写。
1 |
|
如果需要下载仓库中的多个文件,比如从 licyk/test_model_1 模型仓库下载仓库根目录中的 terminal.ps1 和 model 文件夹中的 ag31-ixy_1-000032.safetensors,下载后放在当前目录的 test1 文件夹中,命令可以这样写。
1 |
|
如果需要下载整个仓库,比如将 licyk/test_dataset_1 这个数据集仓库下载到本地的 sd_dataset 文件夹,则命令可以这样写。
1 |
|
如果是下载仓库中指定文件夹中的所有文件,比如将 licyk/test_dataset_1 这个数据集仓库中 rurudo 文件夹的内容下载到本地的 dataset_1 文件夹,则命令可以这样写。
1 |
|
使用 HuggingFace CLI 删除文件
有些在 HuggingFace 仓库中的文件需要删除时,可以使用 HuggingFace CLI 进行删除。
比如从 licyk/test_model_1 模型仓库删除 terminal.ps1 文件,命令可以这样写。
1 |
|
如果需要删除多个文件,比如从 licyk/test_dataset_1 数据集仓库删除 update_node.ps1 文件和 lora 文件夹,则命令可以这样写。
1 |
|
使用 Git 管理文件
HuggingFace 中仓库的文件使用了 Git 进行管理,所以支持使用 Git 来对仓库进行管理。
Git 环境配置
如果系统没有安装 Git,需要前往 https://git-scm.com/downloads/win 下载 Git,点击 64-bit Git for Windows Setup 即可下载 Git 的安装包,双击打开后,一直点 Next,最后点 Install,等待 Git 安装完成。
安装完成后右键桌面或者文件管理器空白处,在右键菜单选择在终端打开,此时将启动 PowerShell(默认情况下),在 PowerShell 中输入下面的命令查看是否安装成功。
1 |
|
能够显示 Git 版本信息就说明 Git 安装成功。
现在还需要配置一下 Git 的个人信息,使用下面的命令进行配置。
1 |
|
现在需要配置 SSH 密钥用于连接 HuggingFace 仓库,使用下面的命令生成 SSH 密钥。
1 |
|
运行该命令后将会提示进行一些操作,直接回车即可。
运行结束后将会提示 Your public key has been saved in(您的公钥已经保存在…),后面的内容为公钥所在的路径,根据这个路径找到 id_rsa.pub 文件并打开,将里面的内容复制下来。
回到 HuggingFace 官网,点击右上角的头像,再点击 Settings(设置)-> SSH and GPG Keys(SSH 和 GPG 密钥),进入 SSH 密钥的配置界面。点击 Add SSH Key(添加 SSH 密钥)进入添加 SSH 密钥界面,Key name(密钥名字)随便填一个名字,在 SSH Public key(SSH 公钥)处将从 id_rsa.pub 文件复制过来的内容粘贴到此处,再点击 Add key(添加密钥)保存 SSH 密钥。
现在使用下面的命令验证一下 SSH 密钥是否配置成功。
1 |
|
如果显示 welcome to Hugging Face(欢迎使用 HuggingFace)时则说明配置 SSH 密钥成功,现在尝试将 licyk/test_dataset_1 数据集仓库下载下来。
在 HuggingFace 这个页面打开 licyk/test_dataset_1 数据集仓库页面,在右边可以看到三个点的图标,点击后可以看到 Clone Respository(克隆仓库)这个按钮,点击后在上方选择 SSH 就可以看到对应的下载命令。
这里可以看到 HuggingFace 提供了 2 种下载仓库方式,前面的方式是直接下载仓库,并且大文件(LFS)也会被下载下来。
1 |
|
另一种方式是下载该仓库但不下载大文件(LFS),这样当仓库中有较多大文件时,可以加快仓库的下载速度。
1 |
|
注意,HuggingFace 上提供的命令是在 Linux Shell / Unix Shell / MacOS Shell / Windows Git Bash / Windows MSYS2 中的环境中运行的,如果当前使用的是 PowerShell,需要将这个命令进行修改。
1 |
|
第一次使用 SSH 链接下载仓库时将会提示 Are you sure you want to continue connecting (yes/no/[fingerprint])?(确定想要继续连接吗 (yes/no/[fingerprint])?),此时输入 yes 后回车即可。
此时可以看到 licyk/test_dataset_1 数据集仓库被下载下来,可以看到本地多了个 test_dataset_1 文件夹,此时可以在该文件夹中存放,管理文件。
如果需要将仓库的更改同步到 HuggingFace 中,可以在仓库文件夹中打开终端,输入下面的命令同步更改。
1 |
|
如果遇到网络问题,需要手动设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量,使终端环境能够使用代理。
比如当前代理软件的代理地址为 http://127.0.0.1:10808,如果使用的终端为 Linux Shell / Unix Shell / MacOS Shell / Windows Git Bash / Windows MSYS2,则设置代理环境变量的命令如下:
1 |
|
如果是在 PowerShell 中,则设置代理环境变量的命令如下:
1 |
|
设置后再重新运行上面的同步命令即可。
注册 ModelScope
ModelScope 类似 HuggingFace,使用方法也比较类似。
打开 https://modelscope.cn 这个地址,点击右上角的登陆/注册
按钮,如果需要快速注册一个账号,使用短信登录
即可。注册成功后可以在右上角点击头像打开菜单。
这里可以创建一个模型仓库,点击头像打开菜单,选择创建模型
进入模型创建设置页面。
模型英文名称,Task 类型,AI 框架填写之后,点击下方的创建按钮即可创建模型仓库。
使用网页管理文件
进入仓库后,在模型文件
中可以看到仓库中的所有文件,支持下载,编辑和删除,点击添加文件 -> 上传文件
可以上传文件,但目前只支持上传单个文件,并且只能大小限制在 100 MB 以内。
如果需要上传更大的文件需要使用其他方式。
使用 ModelScope CLI 管理文件
ModelScope CLI 的时候方法和 HuggingFace CLI 的方法非常类似,并且可使用的管理功能比网页端更多。
配置 ModelScope CLI
在前面关于 HuggingFace CLI 的介绍中已经安装好了 Python,所以可以直接安装 ModelScope CLI。
1 |
|
安装好后输入下面的命令就可以看到 ModelScope CLI 可用的命令。
1 |
|
使用 ModelScope CLI 管理个人的仓库需要 ModelScope Token 获取权限,此时回到 ModelScope 官网,点击首页 -> 访问令牌 -> 新建 SDK 令牌
,此时将打开 ModelScope Token 创建界面,
令牌名称随意填写,然后点击新建令牌
即可,再点击复制按钮复制 ModelScope Token,比如获取到的 ModelScope Token 为ms_abcdefg
回到 PowerShell 界面中,输入下面的命令登陆 ModelScope,在--token
后面写上自己的 ModelScope Token。
1 |
|
如果没有错误信息产生就说明登陆成功。
使用 ModelScope CLI 上传文件
ModelScope CLI 上传文件的方式和 HuggingFace CLI 的上传方式一样,比如上传当前目录下的所有文件到 licyks/tmp 模型仓库。
1 |
|
将单个文件上传到 licyks/tmp1 模型仓库的 model 文件夹。
1 |
|
如果上传文件到数据集仓库,比如将当前文件夹中的所有东西上传到 licyks/test1 数据集仓库中,需要使用--repo-type
来指定。
1 |
|
使用 ModelScope CLI 下载文件
将 licyks/tmp1 模型仓库下载到本地的 test1 文件夹中。
1 |
|
从 licyks/tmp1 数据集仓库下载 test 文件夹中的所有文件到本地的 test_model 文件夹中。
1 |
|
从 licyks/tmp 模型仓库中下载 image.png 和 README.md 文件到本地的 img 文件夹中。
1 |
|
使用 Git 管理文件
在之前关于 HuggingFace 的介绍中,已经安装了必要的 Git 环境,所以可以直接使用之前的环境进行操作。
在 ModelScope 的首页 -> 我创建的
可以看到刚刚创建的模型仓库,点击进入刚刚创建的仓库,进入后点击模型文件 -> 下载模型
,在 Git下载的说明勾选使用我的Token
,此时可以按照说明运行命令将仓库下载下来,并且使用之前介绍的方法进行管理。