mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 01:04:32 +02:00
add SD_NO_CACHE env variable
Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
@@ -83,6 +83,7 @@
|
||||
|
||||
### Fixes
|
||||
|
||||
- add `SD_NO_CACHE=true` env variable to disable file/folder caching
|
||||
- update `diffusers`
|
||||
- fix README links
|
||||
- fix sdxl controlnet single-file loader
|
||||
|
||||
@@ -6,6 +6,7 @@ from typing import Callable, Dict, Iterator, List, Optional, Union
|
||||
from installer import log
|
||||
|
||||
|
||||
do_cache_folders = os.environ.get('SD_NO_CACHE', None) is None
|
||||
class Directory: # forward declaration
|
||||
...
|
||||
|
||||
@@ -87,8 +88,6 @@ class Directory(Directory): # pylint: disable=E0102
|
||||
return not self.is_directory or self.mtime != self.live_mtime
|
||||
|
||||
|
||||
|
||||
|
||||
class DirectoryCache(UserDict, DirectoryCollection):
|
||||
def __delattr__(self, directory_path: str) -> None:
|
||||
directory: Directory = get_directory(directory_path, fetch=False)
|
||||
@@ -126,7 +125,7 @@ def clean_directory(directory: Directory, /, recursive: RecursiveType=False) ->
|
||||
return is_clean
|
||||
|
||||
|
||||
def get_directory(directory_or_path: str, /, fetch:bool=True) -> Union[Directory, None]:
|
||||
def get_directory(directory_or_path: str, /, fetch: bool=True) -> Union[Directory, None]:
|
||||
if isinstance(directory_or_path, Directory):
|
||||
if directory_or_path.is_directory:
|
||||
return directory_or_path
|
||||
@@ -136,8 +135,9 @@ def get_directory(directory_or_path: str, /, fetch:bool=True) -> Union[Directory
|
||||
if not cache_folders.get(directory_or_path, None):
|
||||
if fetch:
|
||||
directory = fetch_directory(directory_path=directory_or_path)
|
||||
if directory:
|
||||
if directory and do_cache_folders:
|
||||
cache_folders[directory_or_path] = directory
|
||||
return directory
|
||||
else:
|
||||
clean_directory(cache_folders[directory_or_path])
|
||||
return cache_folders[directory_or_path] if directory_or_path in cache_folders else None
|
||||
|
||||
+3
-1
@@ -16,7 +16,7 @@ import fasteners
|
||||
import orjson
|
||||
import diffusers
|
||||
from rich.console import Console
|
||||
from modules import errors, devices, shared_items, shared_state, cmd_args, theme, history
|
||||
from modules import errors, devices, shared_items, shared_state, cmd_args, theme, history, files_cache
|
||||
from modules.paths import models_path, script_path, data_path, sd_configs_path, sd_default_config, sd_model_file, default_sd_model_file, extensions_dir, extensions_builtin_dir # pylint: disable=W0611
|
||||
from modules.dml import memory_providers, default_memory_provider, directml_do_hijack
|
||||
from modules.onnx_impl import initialize_onnx, execution_providers
|
||||
@@ -238,6 +238,8 @@ cpu_memory = round(psutil.virtual_memory().total / 1024 / 1024 / 1024, 2)
|
||||
mem_stat = memory_stats()
|
||||
gpu_memory = mem_stat['gpu']['total'] if "gpu" in mem_stat else 0
|
||||
native = backend == Backend.DIFFUSERS
|
||||
if not files_cache.do_cache_folders:
|
||||
log.warning('File cache disabled: ')
|
||||
|
||||
|
||||
class OptionInfo:
|
||||
|
||||
Reference in New Issue
Block a user