Unverified Commit 06eda5b2 authored by Lucain's avatar Lucain Committed by GitHub
Browse files

Raise initial HTTPError if pipeline is not cached locally (#4230)

* Raise initial HTTPError if pipeline is not cached locally

* make style
parent 8e5921ca
......@@ -1248,6 +1248,7 @@ class DiffusionPipeline(ConfigMixin):
allow_patterns = None
ignore_patterns = None
model_info_call_error: Optional[Exception] = None
if not local_files_only:
try:
info = model_info(
......@@ -1258,6 +1259,7 @@ class DiffusionPipeline(ConfigMixin):
except HTTPError as e:
logger.warn(f"Couldn't connect to the Hub: {e}.\nWill try to load from local cache.")
local_files_only = True
model_info_call_error = e # save error to reraise it if model is not cached locally
if not local_files_only:
config_file = hf_hub_download(
......@@ -1389,7 +1391,8 @@ class DiffusionPipeline(ConfigMixin):
user_agent["custom_pipeline"] = custom_pipeline
# download all allow_patterns - ignore_patterns
cached_folder = snapshot_download(
try:
return snapshot_download(
pretrained_model_name,
cache_dir=cache_dir,
resume_download=resume_download,
......@@ -1401,8 +1404,21 @@ class DiffusionPipeline(ConfigMixin):
ignore_patterns=ignore_patterns,
user_agent=user_agent,
)
return cached_folder
except FileNotFoundError:
# Means we tried to load pipeline with `local_files_only=True` but the files have not been found in local cache.
# This can happen in two cases:
# 1. If the user passed `local_files_only=True` => we raise the error directly
# 2. If we forced `local_files_only=True` when `model_info` failed => we raise the initial error
if model_info_call_error is None:
# 1. user passed `local_files_only=True`
raise
else:
# 2. we forced `local_files_only=True` when `model_info` failed
raise EnvironmentError(
f"Cannot load model {pretrained_model_name}: model is not cached locally and an error occured"
" while trying to fetch metadata from the Hub. Please check out the root cause in the stacktrace"
" above."
) from model_info_call_error
@staticmethod
def _get_signature_keys(obj):
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment