Files
Runware-ComfyUI-Runware/modules/modelSearch.py
T
Sirshendu Ganguly 056ade0661 Refactor: Use librosa instead of torchaudio, Add dedicated handlers for all use parameters and fix widget ordering
- Use librosa instead of torchaudio for mediaStorage
- Created dedicated toggle handlers for Image Inference, Video Inference, Upscaler, Audio Inference, Accelerator Options, Bytedance Provider Settings, and OpenAI Provider Settings
- Fixed Audio Inference widget ordering (use parameters now appear before their corresponding parameters)
- All handlers use the same proven pattern from videoInferenceDimensionsHandler
- Improved widget disabling/enabling functionality across all nodes
2025-11-05 22:31:15 -05:00

90 lines
3.2 KiB
Python

class modelSearch:
"""Model Search node for searching and selecting image models"""
MODEL_ARCHITECTURES = [
"All",
"FLUX.1-Schnell",
"FLUX.1-Dev",
"FLUX.1-Krea",
"Pony",
"SD 1.5",
"SD 1.5 Hyper",
"SD 1.5 LCM",
"SD 3",
"SDXL 1.0",
"SDXL 1.0 LCM",
"SDXL Distilled",
"SDXL Hyper",
"SDXL Lightning",
"SDXL Turbo",
]
MODEL_TYPES = [
"Base Model",
"Inpainting Model",
]
FEATURED_MODELS = [
"rundiffusion:110@101 (Juggernaut Lightning Flux by RunDiffusion)",
"rundiffusion:130@100 (Juggernaut Pro Flux by RunDiffusion)",
"runware:100@1 (Flux Schnell)",
"runware:101@1 (Flux Dev)",
"runware:107@1 (FLUX.1 Krea)",
"runware:5@1 (SD3)",
"civitai:4384@128713 (SDXL 1.5 DreamShaper)",
"civitai:43331@176425 (SD 1.5 majicMIX realistic 麦橘写实)",
"civitai:101055@128078 (SDXL v1.0 VAE fix)",
"civitai:133005@288982 (SDXL Juggernaut XL V8)",
]
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"Model Search": ("STRING", {
"tooltip": "Search For Specific Model By Name Or Civit AIR Code (eg: Juggernaut).",
}),
"Model Architecture": (cls.MODEL_ARCHITECTURES, {
"tooltip": "Choose Model Architecture To Filter Results.",
"default": "All",
}),
"ModelType": (cls.MODEL_TYPES, {
"tooltip": "Choose Model Type To Filter Results.",
"default": "Base Model",
}),
"ModelList": (cls.FEATURED_MODELS, {
"tooltip": "Model Results Will Show UP Here So You Could Choose From. If You didn't Search For Anything this will show featured Model List.",
"default": "runware:100@1 (Flux Schnell)",
}),
"Use Search Value": ("BOOLEAN", {
"tooltip": "When Enabled, the value you've set in the search input will be used instead.\n\nThis is useful in case the model search API is down or you prefer to set the model manually.",
"default": False,
"label_on": "Enabled",
"label_off": "Disabled",
}),
},
}
DESCRIPTION = "Directly Search and Connect Model Checkpoints to Runware Inference Nodes In ComfyUI."
FUNCTION = "modelSearch"
RETURN_TYPES = ("RUNWAREMODEL",)
RETURN_NAMES = ("Runware Model",)
CATEGORY = "Runware"
@classmethod
def VALIDATE_INPUTS(cls, ModelList):
return True
def modelSearch(self, **kwargs):
"""Search and return model AIR code"""
enableSearchValue = kwargs.get("Use Search Value", False)
searchInput = kwargs.get("Model Search")
if enableSearchValue:
modelAirCode = searchInput
else:
currentModel = kwargs.get("ModelList")
modelAirCode = currentModel.split(" ")[0]
return (modelAirCode,)