diff --git a/comfy/model_downloader.py b/comfy/model_downloader.py index 330e39429..5adb95f33 100644 --- a/comfy/model_downloader.py +++ b/comfy/model_downloader.py @@ -87,9 +87,10 @@ KNOWN_CHECKPOINTS = [ HuggingFile("jomcs/NeverEnding_Dream-Feb19-2023", "CarDos Anime/cardosAnime_v10.safetensors", show_in_ui=False), # from https://github.com/comfyanonymous/ComfyUI_examples/blob/master/area_composition/README.md HuggingFile("ckpt/anything-v3.0", "Anything-V3.0.ckpt", show_in_ui=False), - # from https://github.com/huchenlei/ComfyUI-layerdiffuse - CivitFile(133005, 357609, filename="juggernautXL_v8Rundiffusion.safetensors"), + # latest, popular civitai models CivitFile(133005, 357609, filename="juggernautXL_v9Rundiffusionphoto2.safetensors"), + CivitFile(112902, 351306, filename="dreamshaperXL_v21TurboDPMSDE.safetensors"), + CivitFile(139562, 344487, filename="realvisxlV40_v40Bakedvae.safetensors"), ] KNOWN_UNCLIP_CHECKPOINTS = [ @@ -114,3 +115,8 @@ KNOWN_GLIGEN_MODELS = [ KNOWN_CLIP_VISION_MODELS = [ HuggingFile("comfyanonymous/clip_vision_g", "clip_vision_g.safetensors") ] + +KNOWN_LORAS = [ + CivitFile(model_id=211577, model_version_id=238349, filename="openxl_handsfix.safetensors"), + # todo: a lot of the slider loras are useful and should also be included +] \ No newline at end of file diff --git a/comfy/nodes/base_nodes.py b/comfy/nodes/base_nodes.py index a0f39f865..450682776 100644 --- a/comfy/nodes/base_nodes.py +++ b/comfy/nodes/base_nodes.py @@ -24,7 +24,7 @@ from ..cli_args import args from ..cmd import folder_paths, latent_preview from ..model_downloader import get_filename_list_with_downloadable, get_or_download, KNOWN_CHECKPOINTS, \ - KNOWN_CLIP_VISION_MODELS, KNOWN_GLIGEN_MODELS, KNOWN_UNCLIP_CHECKPOINTS + KNOWN_CLIP_VISION_MODELS, KNOWN_GLIGEN_MODELS, KNOWN_UNCLIP_CHECKPOINTS, KNOWN_LORAS from ..model_downloader_types import HuggingFile from ..nodes.common import MAX_RESOLUTION from .. import controlnet @@ -593,7 +593,7 @@ class LoraLoader: def INPUT_TYPES(s): return {"required": { "model": ("MODEL",), "clip": ("CLIP", ), - "lora_name": (folder_paths.get_filename_list("loras"),), + "lora_name": (get_filename_list_with_downloadable("loras", KNOWN_LORAS),), "strength_model": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}), "strength_clip": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}), }} @@ -606,7 +606,7 @@ class LoraLoader: if strength_model == 0 and strength_clip == 0: return (model, clip) - lora_path = folder_paths.get_full_path("loras", lora_name) + lora_path = get_or_download("loras", lora_name, KNOWN_LORAS) lora = None if self.loaded_lora is not None: if self.loaded_lora[0] == lora_path: