如何防止HuggingFace重复下载

0 投票
1 回答
96 浏览
提问于 2025-04-14 17:29

描述:

我对如何安装这些软件包感到困惑。目前我在使用一个叫StableDiffusion的模型,每次运行代码时,它都会反复下载一些大小在3到4个G的文件。

代码:

这是我最开始尝试运行的代码:

from torch import autocast
from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4", 
    use_auth_token=True
).to("cuda")

prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
    image = pipe(prompt)["sample"][0]  
    
image.save("astronaut_rides_horse.png")

问题:

当我运行代码时,我的命令行中出现了以下内容:

Fetching 16 files:   0%|                                                             | 0/16 [00:00<?, ?it/s]
vae/diffusion_pytorch_model.safetensors:   0%|                                   | 0.00/335M [00:00<?, ?B/s]
unet/diffusion_pytorch_model.safetensors:   0%|                                 | 0.00/3.44G [00:00<?, ?B/s]
safety_checker/model.safetensors:   0%|                                         | 0.00/1.22G [00:00<?, ?B/s]
text_encoder/model.safetensors:   0%|                                            | 0.00/492M [00:00<?, ?B/s]

而且每次我运行代码时都会发生这种情况。

我尝试了什么?

我尝试安装并克隆整个git仓库。(老实说,我不知道为什么要这么做,明明知道这不会有什么影响!)我还在很多论坛上搜索这个问题,但没有找到任何线索,可能是因为我经验不足。

1 个回答

5

这里有两种可能的解决方法

手动保存:

from diffusers import StableDiffusionPipeline

model = StableDiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    use_auth_token=True,
)

model.save_pretrained("./my_model_directory/")  # only needed first run
model = StableDiffusionPipeline.from_pretrained("./my_model_directory/")

缓存目录:

from diffusers import StableDiffusionPipeline

model = StableDiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    cache_dir="./my_model_directory/",
    use_auth_token=True,
)

撰写回答