diff --git a/modules/initialize.py b/modules/initialize.py
index 180e1f8e..455a514c 100644
--- a/modules/initialize.py
+++ b/modules/initialize.py
@@ -3,7 +3,6 @@ import logging
import os
import sys
import warnings
-import os
from threading import Thread
@@ -40,7 +39,7 @@ def imports():
startup_timer.record("setup paths")
import ldm.modules.encoders.modules # noqa: F401
- import ldm.modules.diffusionmodules.model
+ import ldm.modules.diffusionmodules.model # noqa: F401
startup_timer.record("import ldm")
import sgm.modules.encoders.modules # noqa: F401
diff --git a/modules/lowvram.py b/modules/lowvram.py
index 908b5962..eed04fb0 100644
--- a/modules/lowvram.py
+++ b/modules/lowvram.py
@@ -1,5 +1,5 @@
import torch
-from modules import devices, shared
+
module_in_gpu = None
cpu = torch.device("cpu")
diff --git a/modules/paths.py b/modules/paths.py
index 545b1313..7e18b11a 100644
--- a/modules/paths.py
+++ b/modules/paths.py
@@ -3,6 +3,7 @@ import sys
from modules.paths_internal import models_path, script_path, data_path, extensions_dir, extensions_builtin_dir, cwd # noqa: F401
import modules.safe # noqa: F401
+import ldm_patched.utils.path_utils as ldm_patched_path_utils
def mute_sdxl_imports():
@@ -64,8 +65,6 @@ for d, must_exist, what, options in path_dirs:
paths[what] = d
-import ldm_patched.utils.path_utils as ldm_patched_path_utils
-
ldm_patched_path_utils.base_path = data_path
ldm_patched_path_utils.models_dir = models_path
ldm_patched_path_utils.output_directory = os.path.join(data_path, "output")
diff --git a/modules/processing.py b/modules/processing.py
index f477c9b1..94a08ec5 100644
--- a/modules/processing.py
+++ b/modules/processing.py
@@ -16,7 +16,7 @@ from skimage import exposure
from typing import Any
import modules.sd_hijack
-from modules import devices, prompt_parser, masking, sd_samplers, lowvram, infotext_utils, extra_networks, sd_vae_approx, scripts, sd_samplers_common, sd_unet, errors, rng
+from modules import devices, prompt_parser, masking, sd_samplers, infotext_utils, extra_networks, sd_vae_approx, scripts, sd_samplers_common, sd_unet, rng
from modules.rng import slerp # noqa: F401
from modules.sd_hijack import model_hijack
from modules.sd_samplers_common import images_tensor_to_samples, decode_first_stage, approximation_indexes
@@ -517,9 +517,9 @@ class StableDiffusionProcessing:
class Processed:
- def __init__(self, p: StableDiffusionProcessing, images_list, seed=-1, info="", subseed=None, all_prompts=None, all_negative_prompts=None, all_seeds=None, all_subseeds=None, index_of_first_image=0, infotexts=None, comments="", extra_images_list=[]):
+ def __init__(self, p: StableDiffusionProcessing, images_list, seed=-1, info="", subseed=None, all_prompts=None, all_negative_prompts=None, all_seeds=None, all_subseeds=None, index_of_first_image=0, infotexts=None, comments="", extra_images_list=None):
self.images = images_list
- self.extra_images = extra_images_list
+ self.extra_images = extra_images_list if extra_images_list is not None else []
self.prompt = p.prompt
self.negative_prompt = p.negative_prompt
self.seed = seed
diff --git a/modules/sd_hijack.py b/modules/sd_hijack.py
index e55cd217..8a286237 100644
--- a/modules/sd_hijack.py
+++ b/modules/sd_hijack.py
@@ -1,11 +1,8 @@
import torch
-from torch.nn.functional import silu
from types import MethodType
-from modules import devices, sd_hijack_optimizations, shared, script_callbacks, errors, sd_unet, patches
-from modules.hypernetworks import hypernetwork
+from modules import devices, sd_hijack_optimizations, shared, script_callbacks, sd_unet, patches
from modules.shared import cmd_opts
-from modules import sd_hijack_clip, sd_hijack_open_clip, sd_hijack_unet, sd_hijack_xlmr, xlmr, xlmr_m18
import ldm.modules.attention
import ldm.modules.diffusionmodules.model
diff --git a/modules/sd_models.py b/modules/sd_models.py
index 83d9cb80..4364857c 100644
--- a/modules/sd_models.py
+++ b/modules/sd_models.py
@@ -6,22 +6,17 @@ import threading
import torch
import re
import safetensors.torch
-from omegaconf import OmegaConf, ListConfig
+from omegaconf import ListConfig
from os import mkdir
from urllib import request
import ldm.modules.midas as midas
import gc
-from ldm.util import instantiate_from_config
-
-from modules import paths, shared, modelloader, devices, script_callbacks, sd_vae, sd_disable_initialization, errors, hashes, sd_models_config, sd_unet, sd_models_xl, cache, extra_networks, processing, lowvram, sd_hijack, patches
+from modules import paths, shared, modelloader, devices, script_callbacks, sd_vae, errors, hashes, cache, extra_networks, processing, patches
from modules.timer import Timer
import numpy as np
from modules_forge import forge_loader
-import modules_forge.ops as forge_ops
-from ldm_patched.modules.ops import manual_cast
from ldm_patched.modules import model_management as model_management
-import ldm_patched.modules.model_patcher
model_dir = "Stable-diffusion"
diff --git a/modules/sd_samplers_cfg_denoiser.py b/modules/sd_samplers_cfg_denoiser.py
index b1dca624..f52080a6 100644
--- a/modules/sd_samplers_cfg_denoiser.py
+++ b/modules/sd_samplers_cfg_denoiser.py
@@ -1,10 +1,9 @@
import torch
-from modules import prompt_parser, devices, sd_samplers_common
+from modules import prompt_parser, sd_samplers_common
-from modules.shared import opts, state
+from modules.shared import state
import modules.shared as shared
from modules.script_callbacks import CFGDenoiserParams, cfg_denoiser_callback
-from modules.script_callbacks import CFGDenoisedParams, cfg_denoised_callback
from modules.script_callbacks import AfterCFGCallbackParams, cfg_after_cfg_callback
from modules_forge import forge_sampler
diff --git a/modules/sd_unet.py b/modules/sd_unet.py
index 151d682b..c9801039 100644
--- a/modules/sd_unet.py
+++ b/modules/sd_unet.py
@@ -1,6 +1,6 @@
import torch.nn
-from modules import script_callbacks, shared, devices
+from modules import script_callbacks, shared
unet_options = []
current_unet_option = None
diff --git a/modules/sd_vae.py b/modules/sd_vae.py
index 62fd6524..672a8d6d 100644
--- a/modules/sd_vae.py
+++ b/modules/sd_vae.py
@@ -2,7 +2,7 @@ import os
import collections
from dataclasses import dataclass
-from modules import paths, shared, devices, script_callbacks, sd_models, extra_networks, lowvram, sd_hijack, hashes
+from modules import paths, shared, script_callbacks, sd_models, extra_networks, sd_hijack, hashes
import glob
from copy import deepcopy
diff --git a/modules/shared_init.py b/modules/shared_init.py
index a1cd09af..a7b8d4a2 100644
--- a/modules/shared_init.py
+++ b/modules/shared_init.py
@@ -1,7 +1,5 @@
import os
-import torch
-
from modules import shared
from modules.shared import cmd_opts
diff --git a/modules/ui.py b/modules/ui.py
index 5744f192..4cb4d7a8 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -171,7 +171,7 @@ def update_token_counter(text, steps, *, is_positive=True):
cond_stage_model = sd_models.model_data.sd_model.cond_stage_model
assert cond_stage_model is not None
except Exception:
- return f"?/?"
+ return "?/?"
flat_prompts = reduce(lambda list1, list2: list1+list2, prompt_schedules)
prompts = [prompt_text for step, prompt_text in flat_prompts]
diff --git a/modules/upscaler.py b/modules/upscaler.py
index b89b86ef..8dbf08b0 100644
--- a/modules/upscaler.py
+++ b/modules/upscaler.py
@@ -14,7 +14,7 @@ def prepare_free_memory(aggressive=False):
model_management.unload_all_models()
print('Upscale script freed all memory.')
return
-
+
model_management.free_memory(memory_required=1024*1024*3, device=model_management.get_torch_device())
print('Upscale script freed memory successfully.')
diff --git a/modules_forge/forge_loader.py b/modules_forge/forge_loader.py
index d662f8dd..58ebf1a0 100644
--- a/modules_forge/forge_loader.py
+++ b/modules_forge/forge_loader.py
@@ -71,7 +71,6 @@ def no_clip():
def load_checkpoint_guess_config(sd, output_vae=True, output_clip=True, output_clipvision=False, embedding_directory=None, output_model=True):
- sd_keys = sd.keys()
clip = None
clipvision = None
vae = None
@@ -99,7 +98,6 @@ def load_checkpoint_guess_config(sd, output_vae=True, output_clip=True, output_c
if output_model:
inital_load_device = model_management.unet_inital_load_device(parameters, unet_dtype)
- offload_device = model_management.unet_offload_device()
model = model_config.get_model(sd, "model.diffusion_model.", device=inital_load_device)
model.load_model_weights(sd, "model.diffusion_model.")
diff --git a/modules_forge/initialization.py b/modules_forge/initialization.py
index 98bd6d2e..4f3bc8e1 100644
--- a/modules_forge/initialization.py
+++ b/modules_forge/initialization.py
@@ -30,10 +30,10 @@ def initialize_forge():
for bad in bad_list:
if bad in sys.argv:
print(f'Arg {bad} is removed in Forge.')
- print(f'Now memory management is fully automatic and you do not need any command flags.')
- print(f'Please just remove this flag.')
- print(f'In extreme cases, if you want to force previous lowvram/medvram behaviors, '
- f'please use --always-offload-from-vram')
+ print('Now memory management is fully automatic and you do not need any command flags.')
+ print('Please just remove this flag.')
+ print('In extreme cases, if you want to force previous lowvram/medvram behaviors, '
+ 'please use --always-offload-from-vram')
from ldm_patched.modules import args_parser
diff --git a/modules_forge/ops.py b/modules_forge/ops.py
index a0a0d171..35c2566d 100644
--- a/modules_forge/ops.py
+++ b/modules_forge/ops.py
@@ -2,7 +2,6 @@ import time
import torch
import contextlib
from ldm_patched.modules import model_management
-from ldm_patched.modules.ops import use_patched_ops
@contextlib.contextmanager
diff --git a/modules_forge/patch_basic.py b/modules_forge/patch_basic.py
index 5b61819a..42706cae 100644
--- a/modules_forge/patch_basic.py
+++ b/modules_forge/patch_basic.py
@@ -29,8 +29,8 @@ def build_loaded(module, loader_name):
if os.path.exists(path):
os.remove(path)
exp += f'Forge has tried to move the corrupted file to {corrupted_backup_file} \n'
- exp += f'You may try again now and Forge will download models again. \n'
- raise ValueError(exp)
+ exp += 'You may try again now and Forge will download models again. \n'
+ raise ValueError(exp) from e
return result
setattr(module, loader_name, loader)
diff --git a/modules_forge/shared.py b/modules_forge/shared.py
index 8b03e788..0ba622a8 100644
--- a/modules_forge/shared.py
+++ b/modules_forge/shared.py
@@ -34,7 +34,7 @@ def try_load_supported_control_model(ckpt_path):
global supported_control_models
state_dict = ldm_patched.modules.utils.load_torch_file(ckpt_path, safe_load=True)
for supported_type in supported_control_models:
- state_dict_copy = {k: v for k, v in state_dict.items()}
+ state_dict_copy = dict(state_dict)
model = supported_type.try_build_from_state_dict(state_dict_copy, ckpt_path)
if model is not None:
return model
diff --git a/pyproject.toml b/pyproject.toml
index d03036e7..cb723298 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,13 +12,15 @@ extend-select = [
exclude = [
"extensions",
"extensions-disabled",
+ "extensions-builtin",
+ "ldm_patched",
]
ignore = [
"E501", # Line too long
"E721", # Do not compare types, use `isinstance`
"E731", # Do not assign a `lambda` expression, use a `def`
-
+
"I001", # Import block is un-sorted or un-formatted
"C901", # Function is too complex
"C408", # Rewrite as a literal