From d431a30204041a87e84460697ec85e26ee39f014 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Tue, 21 Oct 2025 11:38:18 -0400 Subject: [PATCH] add offline mode to video load Signed-off-by: Vladimir Mandic --- modules/video_models/video_load.py | 18 +++++++++++++++--- modules/video_models/video_overrides.py | 8 ++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/modules/video_models/video_load.py b/modules/video_models/video_load.py index 999c0c590..090997611 100644 --- a/modules/video_models/video_load.py +++ b/modules/video_models/video_load.py @@ -1,3 +1,4 @@ +import os import copy import time from modules import shared, errors, sd_models, sd_checkpoint, model_quant, devices, sd_hijack_te, sd_hijack_vae @@ -22,7 +23,15 @@ def load_model(selected: models_def.Model): video_cache.apply_teacache_patch(selected.dit_cls) # overrides - kwargs = video_overrides.load_override(selected) + offline_args = {} + if shared.opts.offline_mode: + offline_args["local_files_only"] = True + os.environ['HF_HUB_OFFLINE'] = '1' + else: + os.environ.pop('HF_HUB_OFFLINE', None) + os.unsetenv('HF_HUB_OFFLINE') + + kwargs = video_overrides.load_override(selected, **offline_args) # text encoder try: @@ -53,7 +62,8 @@ def load_model(selected: models_def.Model): revision=selected.te_revision or selected.repo_revision, cache_dir=shared.opts.hfcache_dir, **load_args, - **quant_args + **quant_args, + **offline_args, ) except Exception as e: shared.log.error(f'video load: module=te cls={selected.te_cls.__name__} {e}') @@ -72,7 +82,8 @@ def load_model(selected: models_def.Model): revision=selected.dit_revision or selected.repo_revision, cache_dir=shared.opts.hfcache_dir, **load_args, - **quant_args + **quant_args, + **offline_args, ) else: shared.log.debug(f'Video load: module=transformer repo="{selected.dit or selected.repo}" module="{dit_folder}" folder="{dit_folder}" cls={selected.dit_cls.__name__} skip') @@ -97,6 +108,7 @@ def load_model(selected: models_def.Model): cache_dir=shared.opts.hfcache_dir, torch_dtype=devices.dtype, **kwargs, + **offline_args, ) except Exception as e: shared.log.error(f'video load: module=pipe repo="{selected.repo}" cls={selected.repo_cls.__name__} {e}') diff --git a/modules/video_models/video_overrides.py b/modules/video_models/video_overrides.py index a6c9c01ed..bc2cb867c 100644 --- a/modules/video_models/video_overrides.py +++ b/modules/video_models/video_overrides.py @@ -8,17 +8,17 @@ from modules.video_models.models_def import Model debug = shared.log.trace if os.environ.get('SD_VIDEO_DEBUG', None) is not None else lambda *args, **kwargs: None -def load_override(selected: Model): +def load_override(selected: Model, **load_args): kwargs = {} # Allegro if 'Allegro T2V' in selected.name: - kwargs['vae'] = diffusers.AutoencoderKLAllegro.from_pretrained(selected.repo, subfolder="vae", torch_dtype=torch.float32, cache_dir=shared.opts.hfcache_dir) + kwargs['vae'] = diffusers.AutoencoderKLAllegro.from_pretrained(selected.repo, subfolder="vae", torch_dtype=torch.float32, cache_dir=shared.opts.hfcache_dir, **load_args) # LTX if 'LTXVideo 0.9.5 I2V' in selected.name: - kwargs['vae'] = diffusers.AutoencoderKLLTXVideo.from_pretrained(selected.repo, subfolder="vae", torch_dtype=torch.float32, cache_dir=shared.opts.hfcache_dir) + kwargs['vae'] = diffusers.AutoencoderKLLTXVideo.from_pretrained(selected.repo, subfolder="vae", torch_dtype=torch.float32, cache_dir=shared.opts.hfcache_dir, **load_args) # WAN if 'WAN 2.1 14B' in selected.name: - kwargs['vae'] = diffusers.AutoencoderKLWan.from_pretrained(selected.repo, subfolder="vae", torch_dtype=torch.float32, cache_dir=shared.opts.hfcache_dir) + kwargs['vae'] = diffusers.AutoencoderKLWan.from_pretrained(selected.repo, subfolder="vae", torch_dtype=torch.float32, cache_dir=shared.opts.hfcache_dir, **load_args) if ('A14B' in selected.name) or ('14B VACE' in selected.name): if shared.opts.model_wan_stage == 'combined': kwargs['boundary_ratio'] = shared.opts.model_wan_boundary