如何将Google Colab中的两个文件夹上传至Hugging Face?
问题:将Colab中的Lora/LyCORIS文件夹上传至Hugging Face私有仓库
我拥有HF token,需要把Google Colab运行时中的两个文件夹/content/stable/models/Lora和/content/stable/models/LyCORIS,分别上传至Hugging Face的PrivateCassy/Lora主分支与PrivateCassy/LyCORIS主分支。以下是我尝试但无效的代码:
import os import shutil from transformers import datasets # Hugging Face API token api_token = input("the api token") datasets.config.HfFolder.set_base_dataset_hf_folder('/content/hf_datasets') datasets.set_hf_api_token(api_token) Lora_LyCORIS_on_hf = "Load" #@param ["Save","Load"] src = '/content/stable/' match os.path.exists(src): case False: os.makedirs(src) case _: pass match Lora_LyCORIS_on_hf: case "Save": # Upload Lora and LyCORIS to Hugging Face datasets.upload_dataset(src) case "Load": # Download Lora and LyCORIS from Hugging Face dataset_lora = datasets.load_dataset(src) # Copy downloaded data to the desired location shutil.copytree(dataset_lora.data_dir, src, dirs_exist_ok=True)
原代码问题分析
- 错误使用
transformers.datasets模块:该模块用于处理数据集,并非上传模型/权重文件夹的工具 - 上传路径偏差:代码上传的是
/content/stable/根目录,而非目标的两个子文件夹 - 未指定目标仓库:没有明确指向
PrivateCassy/Lora和PrivateCassy/LyCORIS这两个私有仓库
正确解决方案
使用官方的huggingface_hub库管理仓库文件,这是专门用于HF仓库文件上传/下载的工具,步骤如下:
1. 安装依赖
!pip install huggingface_hub
2. 上传代码实现
from huggingface_hub import upload_folder import os # 输入HF token api_token = input("请输入你的Hugging Face API token: ") # 定义本地路径与HF仓库的映射关系 folder_mappings = [ { "local_dir": "/content/stable/models/Lora", "repo_id": "PrivateCassy/Lora", "repo_type": "model" }, { "local_dir": "/content/stable/models/LyCORIS", "repo_id": "PrivateCassy/LyCORIS", "repo_type": "model" } ] # 循环处理每个文件夹的上传 for mapping in folder_mappings: local_dir = mapping["local_dir"] # 检查本地文件夹是否存在 if not os.path.exists(local_dir): print(f"错误:本地文件夹 {local_dir} 不存在") continue print(f"开始上传 {local_dir} 到 {mapping['repo_id']}...") upload_folder( repo_id=mapping["repo_id"], folder_path=local_dir, token=api_token, repo_type=mapping["repo_type"], revision="main" ) print(f"{local_dir} 上传完成!")
注意事项
- 若对应私有仓库未创建,需先在Hugging Face网页端手动创建
PrivateCassy/Lora和PrivateCassy/LyCORIS - 确保你的HF token拥有对应私有仓库的写入权限
upload_folder会递归上传文件夹内所有文件,无需单独处理子目录
内容的提问来源于stack exchange,提问作者CasanovaSan
相关产品推荐
相关产品推荐

