ac374e0b97
* ini * remove shit * Create control_model.py * i * i * Update controlnet_supported.py * Update controlnet_supported.py * Update controlnet_supported.py * i * i * Update controlnet_supported.py * i * Update controlnet_supported.py * remove shits * remove shit * Update global_state.py * i * i * Update legacy_preprocessors.py * Update legacy_preprocessors.py * remove shit * Update batch_hijack.py * remove shit * remove shit * i * i * i * Update external_code.py * Update global_state.py * Update infotext.py * Update utils.py * Update external_code.py * i * i * i * Update controlnet_ui_group.py * remove shit * remove shit * i * Update controlnet.py * Update controlnet.py * Update controlnet.py * Update controlnet.py * Update controlnet.py * i * Update global_state.py * Update global_state.py * i * Update global_state.py * Update global_state.py * Update global_state.py * Update global_state.py * Update controlnet_ui_group.py * i * Update global_state.py * Update controlnet_ui_group.py * Update controlnet_ui_group.py * i * Update controlnet_ui_group.py * Update controlnet_ui_group.py * Update controlnet_ui_group.py * Update controlnet_ui_group.py
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import os
|
|
import ldm_patched.modules.utils
|
|
|
|
from modules.paths import models_path
|
|
|
|
|
|
controlnet_dir = os.path.join(models_path, 'ControlNet')
|
|
os.makedirs(controlnet_dir, exist_ok=True)
|
|
|
|
preprocessor_dir = os.path.join(models_path, 'ControlNetPreprocessor')
|
|
os.makedirs(preprocessor_dir, exist_ok=True)
|
|
|
|
supported_preprocessors = {}
|
|
supported_control_models = []
|
|
|
|
|
|
def add_supported_preprocessor(preprocessor):
|
|
global supported_preprocessors
|
|
p = preprocessor
|
|
supported_preprocessors[p.name] = p
|
|
return
|
|
|
|
|
|
def add_supported_control_model(control_model):
|
|
global supported_control_models
|
|
supported_control_models.append(control_model)
|
|
return
|
|
|
|
|
|
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()}
|
|
model = supported_type.try_build_from_state_dict(state_dict_copy, ckpt_path)
|
|
if model is not None:
|
|
return model
|
|
return None
|