前言

国内优先使用modelscope,hugging face镜像站下载还是不怎么稳定。

modelscope 

modelscope:ModelScope - 模型列表页 

找下有没有需要的模型,有的话拷贝下 <namespace>/<model-name>,如图:

使用git clone:

git lfs clone https://www.modelscope.cn/<namespace>/<model-name>.git 

 比如我要下的是AI-ModelScope/stable-diffusion-xl-base-1.0,那么链接就是:

git lfs clone https://www.modelscope.cn/AI-ModelScope/stable-diffusion-xl-base-1.0.git


huggingface

直接下载

拷贝出来的链接如:https://huggingface.co/playgroundai/playground-v2-1024px-aesthetic/resolve/main/playgroundv2.safetensors?download=true 

将huggingface.co替换为hf-mirror.com即可。如:

https://hf-mirror.com/playgroundai/playground-v2-1024px-aesthetic/resolve/main/playgroundv2.safetensors?download=true

然后在Linux中可以直接使用wget下载,每次这么操作可能比较麻烦,所以针对这种方式我写了一个脚本:

#!/bin/bash

# 检查是否提供了 URL 参数
if [ -z "$1" ]; then
  echo "错误:未提供 URL"
  exit 1
fi

# 读取 URL、可选的文件名和下载路径参数
URL=$1
FILENAME_PARAM=$2
PATH_PARAM=$3

# 检查并选择下载工具
if command -v wget > /dev/null; then
  DOWNLOAD_CMD="wget -O"
elif command -v curl > /dev/null; then
  DOWNLOAD_CMD="curl -o"
else
  echo "错误:未找到 wget 或 curl 工具"
  echo "请尝试安装其中一个工具,例如:"
  if command -v apt-get > /dev/null; then
    echo "sudo apt-get install wget"
  elif command -v yum > /dev/null; then
    echo "sudo yum install wget"
  elif command -v dnf > /dev/null; then
    echo "sudo dnf install wget"
  elif command -v pacman > /dev/null; then
    echo "sudo pacman -S wget"
  else
    echo "请手动安装 wget 或 curl 工具"
  fi
  exit 1
fi

# 替换 URL 中的域名
MODIFIED_URL=$(echo $URL | sed 's|https://huggingface.co|https://hf-mirror.com|')

# 如果提供了文件名参数,则使用该文件名,否则从 URL 中提取
if [ -z "$FILENAME_PARAM" ]; then
  FILENAME=$(basename "$URL" | sed 's|\?.*$||')
else
  FILENAME=$FILENAME_PARAM
fi

# 使用选择的下载命令下载文件
# 如果提供了路径参数,则使用该路径,否则使用当前目录
if [ -z "$PATH_PARAM" ]; then
  $DOWNLOAD_CMD "$FILENAME" "$MODIFIED_URL"
else
  $DOWNLOAD_CMD "$PATH_PARAM/$FILENAME" "$MODIFIED_URL"
fi

创建一个dmodel.sh文件,然后把代码复制进去。运行命令如下:

dmodel.sh 【复制的链接】 【文件名(默认是url中的文件名)】 【下载路径(默认是当前位置)】

后面两个参数是可以不需要提供的,注意参数之间有空格。如果说运行报错/bin/bash^M: bad interpreter: No such file or directory,可以参考我这篇文章:解决Linux Shell脚本错误:“/bin/bash^M: bad interpreter: No such file or directory”_-bash: ./docking.sh: /bin/bash^m: bad interpreter:-CSDN博客


使用工具 

Python版本至少是3.8 

安装hugging face官方提供的下载工具

pip install -U huggingface_hub hf-transfer

 Windows设置环境变量

在当前窗口设置临时环境变量(cmd.exe)

set HF_HUB_ENABLE_HF_TRANSFER 1

你也可以设置永久的环境变量(可能需要管理员权限)

setx HF_HUB_ENABLE_HF_TRANSFER 1

 Linux设置环境变量 

只是当前窗口下有效 

export HF_HUB_ENABLE_HF_TRANSFER=1

设置国内镜像

 Windows(cmd.exe)

  当前窗口有效

set HF_ENDPOINT https://hf-mirror.com

  永久生效 

setx HF_ENDPOINT https://hf-mirror.com

 Linux 

   当前窗口有效

export HF_ENDPOINT=https://hf-mirror.com

   永久生效 

# 配置环境变量
vim ~/.bashrc

# 在打开文件中的最后一行添加
export HF_ENDPOINT="https://hf-mirror.com"

 下载模型

huggingface-cli download --token [访问令牌] --resume-download --local-dir-use-symlinks False [模型名] --local-dir [保存位置]

如果你使用的是conda,注意看下有没有切换对应的环境!!!

有些模型不需要token也能直接下载!!!把token选项去掉即可 

访问令牌获取链接:https://huggingface.co/settings/tokens

比如我要下载ChatGLM的模型,操作如下:

命令如:

 huggingface-cli download --resume-download --local-dir-use-symlinks False THUDM/chatglm3-6b --local-dir chatglm3-6b


参考文章


👍点赞,你的认可是我创作的动力 !
🌟收藏,你的青睐是我努力的方向!
✏️评论,你的意见是我进步的财富!     

Logo

鸿蒙生态一站式服务平台。

更多推荐