INNER CODE UNIT · Python
img2imgControlNet
OpenTexture/Paint3D · controlnet/diffusers_cnet_img2img.py:11
class img2imgControlNet():
def __init__(self, config, torch_dtype=torch.float16):
controlnet_list = []
for cnet_unit in config.controlnet_units:
controlnet = ControlNetModel.from_pretrained(cnet_unit.controlnet_key, torch_dtype=torch_dtype)
controlnet_list.append(controlnet)
pipe = StableDiffusionControlNetImg2ImgPipeline.from_pretrained(config.sd_model_key, controlnet=controlnet_list,
torch_dtype=torch_dtype).to("cuda")
if config.ip_adapter_image_path:
pipe.load_ip_adapter("h94/IP-Adapter", subfolder="models", weight_name="ip-adapter_sd15.safetensors")
pipe.scheduler = EulerAncestralDiscreteScheduler.from_pretrained(config.sd_model_key, subfolder="scheduler")
pipe.safety_checker = None
pipe.requires_safety_checker = False
# pipe.enable_xformers_memory_efficient_attention()
pipe.enable_model_cpu_offload()
self.pipe = pipe