from modules_forge.shared import add_supported_control_model from modules_forge.supported_controlnet import ControlModelPatcher from lib_controllllite.lib_controllllite import LLLiteLoader opLLLiteLoader = LLLiteLoader().load_lllite class ControlLLLitePatcher(ControlModelPatcher): @staticmethod def try_build_from_state_dict(state_dict, ckpt_path): if not any('lllite' in k for k in state_dict.keys()): return None return ControlLLLitePatcher(state_dict) def __init__(self, state_dict): super().__init__() self.state_dict = state_dict return def process_before_every_sampling(self, process, cond, mask, *args, **kwargs): unet = process.sd_model.forge_objects.unet unet = opLLLiteLoader( model=unet, state_dict=self.state_dict, cond_image=cond.movedim(1, -1), strength=self.strength, steps=process.steps, start_percent=self.start_percent, end_percent=self.end_percent )[0] process.sd_model.forge_objects.unet = unet return add_supported_control_model(ControlLLLitePatcher)