如何从魔搭/抱脸/GitHub上批量下载模型组件
- 2026-10-30 15:49:36
截止到目前,我一直没有开过某克网盘,主要原因是即使会员下载也顶多40MB/s,这太慢了完全跑不满带宽。所以我一直保持这从ModelScope魔搭/HuggingFace抱脸/GitHub上直接下载需要的模型。
但直接下就要面对网络问题。国内来说,最推荐从魔搭下载,CDN加速又快又稳。其次是抱脸,因为可以走hf-mirror——如果有需要,评论区告诉我,回头介绍下怎么改全局镜像或只改浏览器镜像——速度也不错。良好市民如我,最头疼的是从GitHub上下载,能打开都得看运气。
所以今天来分享下,不开网盘会员,我那5.7TB的模型库是怎样炼成的。
示例统一用这个仓库:
它属于腾讯混元图像 2.1,是 ComfyUI 官方工作流要用的文本编码器。
一、整库拉取
先看仓库根目录:
整仓一共 13 个文件、167.17 GB。
折腾ComfyUI的都知道一条命令: git clone,这是对GitHub而言的仓库拉取指令,如:
GitHub 仓库页右上角那个绿色 Code 按钮里,也是同一条地址。前提是本机装了 Git。
其它两家都支持类似的操作,比如:抱脸 / hf-mirror
先装一次命令行工具:
然后指定镜像再下载(国内直连 huggingface.co 基本下不动):
如果 pip 提示「不是内部或外部命令」,不是命令写错了,是 Python 没装、或者装的时候没勾 Add to PATH。
比如:魔搭
这三家的批量拉取有个共同问题:它们只能下整个仓库。
回到刚才那个例子。你只想要 split_files/text_encoders 里的文本编码器,一共 3 个文件、24.59 GB;整仓 git clone https://huggingface.co/Comfy-Org/Hunyuan-Image-2.1 却是 167.17 GB。如果将子仓库直接替换整仓地址——git clone https://hf-mirror.com/Comfy-Org/Hunyuan-Image-2.1/tree/main/split_files/text_encoders ——实际会直接报错。
那么接下来说说:怎么只下一个子目录。
二、批量获取子仓库模型直链
常规的办法是,直接点击子仓库内的模型一条一条下载,因为三家平台都没有「下载当前这个目录」的按钮。数量少还行,数量如果很多就挺烦。而且不管是直接git拉取(调用系统的curl)还是浏览器直接下载,都是单线程下载,往往还没有断点续传,速度没保证的同时一旦中断就得重新下载。
但是我们分析一下子仓库各个模型的直链地址就会发现,它们其实很有规律,以示例的子仓库为例,包含的模型直链依次为:
结构都是:作者+总仓+分支+子目录。
那么,我们完全可以根据三家平台提供的目录内容公开接口,拿回文件清单和字节数,再拼上各自固定的下载路径格式,就能得到每一个文件的真实下载地址。
于是:
以上面那个子目录为例,一条地址换回来三条:
当我们已经有了目标子目录地址(https://hf-mirror.com/Comfy-Org/Hunyuan-Image-2.1/tree/main/split_files/text_encoders),很容易就拼出来长这样的直链地址:
只要把 /tree/main/ 变成了 /resolve/main/,就能直接丢给任何下载工具。
于是,就让🐳鲸鱼娘帮我写了个脚本。主要包含三个文件:
三个文件加起来 44 KB,不装 Python、不要管理员权限,整个文件夹解压到哪都能跑。在后台回复「261029」自取下载地址(蓝奏网盘,不用登录)。
操作跟把大象装冰箱一样简单。
第一步:双击 getlinks.bat,打开后,复制浏览器子目录的地址 .../tree/main/split_files/text_encoders。抱脸官网、hf-mirror、魔搭、GitHub 四种地址都认;贴 huggingface.co 的原始地址,它会自动换成镜像。
第二步:选一组地址。这一步主要是实现把HuggingFace和GitHub的模型地址转换成ModelScope的,主要是因为魔搭在国内有CDN加速,快且稳定,当然你也可以用原始地址,我都写好了,选就行了。选完,这一组地址就已经在剪贴板里了。
接着它还会问一句「要不要现在就用 curl 下」:
第三步:下载。主要分为两种模式,一种是直接在窗口里调curl批量下载,但是是系统层的单线程,也没进度条也没断点续传,很麻烦。另一种是用开源软件Free Download Manager的批量下载功能,多线程、断点续传,速度实测能跑满带宽/硬盘写入。FDM 免费,官网下载页:https://www.freedownloadmanager.org/zh/download.htm
脚本里我也写好的了操作流程,很简单的:上一步获得了魔搭的直链地址,然后打开FDM,点窗口右上角的「三」(菜单和设置)→「从剪贴板粘贴链接」,「保存到」选好目标文件夹,再点「下载」,就可以批量下载了。

为了方便不同的需求,脚本还会导出一个附件:links.csv,每次解析都会往csv里追加一张表,Excel 直接打开,五列:

这张表的用处主要是方便只下其中几个:挑行复制地址,保持一行一条,再粘进 FDM。优先用第 5 列的魔搭地址,那一格空着的(说明魔搭没有对应文件)就退回第 4 列。
除了魔搭下载更快,不选择抱脸/GitHub还有一个原因,FDM有时候下着下着会中断,报 429 错误。这是因为,抱脸镜像的文件下载接口有一条共享配额,是全站用户共用的,高峰时期(比如我们批量下载)经常被抢空,服务端直接返回:
另一头,镜像会把请求跳转到真正存文件的境外存储,这一段连接在国内很不稳,经常传十几 MB 就被掐断。FDM 默认开 15 条连接,每断一次都要重新请求一次目录接口,于是更容易撞上 429——断、重连、被限流、等待,卡在那个百分比上不动。
所以,最佳的下载方案就是用魔搭的地址。
同一个仓库在魔搭上几乎都有镜像,而且目录结构、文件字节数通常完全一致。
当然也有例外的情况,当目录结构不一致时,脚本会提示「这一批没有对应的魔搭文件」,那几行就留空。这时要么自己上魔搭找到真实地址贴回来,要么直接让 AI 帮你提取。
工具在后台回复「261029」自取:44 KB,三个文件放一个文件夹,双击就能用。
搞定,拜拜!