- 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
90 lines
3.2 KiB
Python
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,)
|