Stable Diffusion文本生图代码报错:model.safetensors文件未找到求助
解决Stable Diffusion模型文件找不到的问题
以下是针对你遇到的model.safetensors或unet\diffusion_pytorch_model.safetensors文件缺失报错的具体解决方案:
1. 直接指定本地模型路径
如果你已经手动下载了模型文件,不要使用远程模型IDCompVis/stable-diffusion-v1-4,直接替换为你本地存放模型的完整目录路径。比如模型放在./stable-diffusion-v1-4文件夹中,代码修改如下:
model_id = "./stable-diffusion-v1-4"
注意:该目录下必须包含model_index.json文件,以及unet、text_encoder、vae等子文件夹,每个子文件夹内要有对应的模型文件。
2. 检查模型文件结构与格式
确认本地模型目录结构和官方发布的一致,示例结构如下:
stable-diffusion-v1-4/ ├── model_index.json ├── unet/ │ └── diffusion_pytorch_model.safetensors ├── text_encoder/ │ └── model.safetensors ├── vae/ │ └── diffusion_pytorch_model.safetensors └── scheduler/ └── scheduler_config.json
如果你的模型文件是.bin格式而非.safetensors,在加载时添加use_safetensors=False参数:
pipe = StableDiffusionPipeline.from_pretrained( model_id, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token, use_safetensors=False )
3. 清理Hugging Face缓存
Hugging Face会缓存下载的模型文件,若缓存文件损坏也会导致报错。手动删除缓存目录后重新运行代码:
- Windows:
C:\Users\<你的用户名>\.cache\huggingface\hub - Linux/macOS:
~/.cache/huggingface/hub
4. 验证授权令牌权限
确保你的auth_token拥有访问Stable Diffusion模型的权限,前往Hugging Face个人设置页面,检查令牌是否勾选了read权限。
调整后的示例代码
from auth_token import auth_token from fastapi import FastAPI, Response from fastapi.middleware.cors import CORSMiddleware import torch from torch import autocast from diffusers import StableDiffusionPipeline from io import BytesIO import base64 app = FastAPI() app.add_middleware( CORSMiddleware, allow_credentials=True, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"] ) device = "cuda" # 替换为你的本地模型目录路径 model_id = "./stable-diffusion-v1-4" pipe = StableDiffusionPipeline.from_pretrained( model_id, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token, # 若使用.bin格式模型,取消下面注释 # use_safetensors=False ) pipe.to(device) @app.get("/") def generate(prompt: str): with autocast(device): image = pipe(prompt, guidance_scale=8.5).images[0] image.save("testimage.png") buffer = BytesIO() image.save(buffer, format="PNG") imgstr = base64.b64encode(buffer.getvalue()) return Response(content=imgstr, media_type="image/png")
内容的提问来源于stack exchange,提问作者131 Mohammad Ubaida
相关产品推荐
相关产品推荐

