(
pretrained_model_name_or_path: Union[str, Path],
*,
weights_name: str,
subfolder: Optional[str] = None,
cache_dir: Optional[str] = None,
force_download: bool = False,
proxies: Optional[Dict] = None,
local_files_only: bool = False,
token: Optional[str] = None,
user_agent: Optional[Union[Dict, str]] = None,
revision: Optional[str] = None,
commit_hash: Optional[str] = None,
)
| 279 | |
| 280 | @validate_hf_hub_args |
| 281 | def _get_model_file( |
| 282 | pretrained_model_name_or_path: Union[str, Path], |
| 283 | *, |
| 284 | weights_name: str, |
| 285 | subfolder: Optional[str] = None, |
| 286 | cache_dir: Optional[str] = None, |
| 287 | force_download: bool = False, |
| 288 | proxies: Optional[Dict] = None, |
| 289 | local_files_only: bool = False, |
| 290 | token: Optional[str] = None, |
| 291 | user_agent: Optional[Union[Dict, str]] = None, |
| 292 | revision: Optional[str] = None, |
| 293 | commit_hash: Optional[str] = None, |
| 294 | ): |
| 295 | pretrained_model_name_or_path = str(pretrained_model_name_or_path) |
| 296 | if os.path.isfile(pretrained_model_name_or_path): |
| 297 | return pretrained_model_name_or_path |
| 298 | elif os.path.isdir(pretrained_model_name_or_path): |
| 299 | if os.path.isfile(os.path.join(pretrained_model_name_or_path, weights_name)): |
| 300 | # Load from a PyTorch checkpoint |
| 301 | model_file = os.path.join(pretrained_model_name_or_path, weights_name) |
| 302 | return model_file |
| 303 | elif subfolder is not None and os.path.isfile( |
| 304 | os.path.join(pretrained_model_name_or_path, subfolder, weights_name) |
| 305 | ): |
| 306 | model_file = os.path.join(pretrained_model_name_or_path, subfolder, weights_name) |
| 307 | return model_file |
| 308 | else: |
| 309 | raise EnvironmentError( |
| 310 | f"Error no file named {weights_name} found in directory {pretrained_model_name_or_path}." |
| 311 | ) |
| 312 | else: |
| 313 | # 1. First check if deprecated way of loading from branches is used |
| 314 | if ( |
| 315 | revision in DEPRECATED_REVISION_ARGS |
| 316 | and (weights_name == WEIGHTS_NAME or weights_name == SAFETENSORS_WEIGHTS_NAME) |
| 317 | and version.parse(version.parse(__version__).base_version) >= version.parse("0.22.0") |
| 318 | ): |
| 319 | try: |
| 320 | model_file = hf_hub_download( |
| 321 | pretrained_model_name_or_path, |
| 322 | filename=_add_variant(weights_name, revision), |
| 323 | cache_dir=cache_dir, |
| 324 | force_download=force_download, |
| 325 | proxies=proxies, |
| 326 | local_files_only=local_files_only, |
| 327 | token=token, |
| 328 | user_agent=user_agent, |
| 329 | subfolder=subfolder, |
| 330 | revision=revision or commit_hash, |
| 331 | ) |
| 332 | warnings.warn( |
| 333 | f"Loading the variant {revision} from {pretrained_model_name_or_path} via `revision='{revision}'` is deprecated. Loading instead from `revision='main'` with `variant={revision}`. Loading model variants via `revision='{revision}'` will be removed in diffusers v1. Please use `variant='{revision}'` instead.", |
| 334 | FutureWarning, |
| 335 | ) |
| 336 | return model_file |
| 337 | except: # noqa: E722 |
| 338 | warnings.warn( |
no test coverage detected