MCPcopy Create free account
hub / github.com/cubiq/ComfyUI_IPAdapter_plus / load_models

Method load_models

IPAdapterPlus.py:568–641  ·  view source on GitHub ↗
(self, model, preset, lora_strength=0.0, provider="CPU", ipadapter=None)

Source from the content-addressed store, hash-verified

566 CATEGORY = "ipadapter"
567
568 def load_models(self, model, preset, lora_strength=0.0, provider="CPU", ipadapter=None):
569 pipeline = { "clipvision": { 'file': None, 'model': None }, "ipadapter": { 'file': None, 'model': None }, "insightface": { 'provider': None, 'model': None } }
570 if ipadapter is not None:
571 pipeline = ipadapter
572
573 if 'insightface' not in pipeline:
574 pipeline['insightface'] = { 'provider': None, 'model': None }
575
576 if 'ipadapter' not in pipeline:
577 pipeline['ipadapter'] = { 'file': None, 'model': None }
578
579 if 'clipvision' not in pipeline:
580 pipeline['clipvision'] = { 'file': None, 'model': None }
581
582 # 1. Load the clipvision model
583 clipvision_file = get_clipvision_file(preset)
584 if clipvision_file is None:
585 raise Exception("ClipVision model not found.")
586
587 if clipvision_file != self.clipvision['file']:
588 if clipvision_file != pipeline['clipvision']['file']:
589 self.clipvision['file'] = clipvision_file
590 self.clipvision['model'] = load_clip_vision(clipvision_file)
591 print(f"\033[33mINFO: Clip Vision model loaded from {clipvision_file}\033[0m")
592 else:
593 self.clipvision = pipeline['clipvision']
594
595 # 2. Load the ipadapter model
596 is_sdxl = isinstance(model.model, (comfy.model_base.SDXL, comfy.model_base.SDXLRefiner, comfy.model_base.SDXL_instructpix2pix))
597 ipadapter_file, is_insightface, lora_pattern = get_ipadapter_file(preset, is_sdxl)
598 if ipadapter_file is None:
599 raise Exception("IPAdapter model not found.")
600
601 if ipadapter_file != self.ipadapter['file']:
602 if pipeline['ipadapter']['file'] != ipadapter_file:
603 self.ipadapter['file'] = ipadapter_file
604 self.ipadapter['model'] = ipadapter_model_loader(ipadapter_file)
605 print(f"\033[33mINFO: IPAdapter model loaded from {ipadapter_file}\033[0m")
606 else:
607 self.ipadapter = pipeline['ipadapter']
608
609 # 3. Load the lora model if needed
610 if lora_pattern is not None:
611 lora_file = get_lora_file(lora_pattern)
612 lora_model = None
613 if lora_file is None:
614 raise Exception("LoRA model not found.")
615
616 if self.lora is not None:
617 if lora_file == self.lora['file']:
618 lora_model = self.lora['model']
619 else:
620 self.lora = None
621 torch.cuda.empty_cache()
622
623 if lora_model is None:
624 lora_model = comfy.utils.load_torch_file(lora_file, safe_load=True)
625 self.lora = { 'file': lora_file, 'model': lora_model }

Callers

nothing calls this directly

Calls 5

get_clipvision_fileFunction · 0.85
get_ipadapter_fileFunction · 0.85
ipadapter_model_loaderFunction · 0.85
get_lora_fileFunction · 0.85
insightface_loaderFunction · 0.85

Tested by

no test coverage detected