Files
ComfyUI-LM-Remote/nodes/lora_pool.py
Ethanfel 980f406573 feat: initial release of ComfyUI-LM-Remote
Remote-aware LoRA Manager nodes that fetch metadata via HTTP from a
remote Docker instance while loading LoRA files from local NFS/SMB
mounts. Includes reverse-proxy middleware for transparent web UI access.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 00:46:03 +01:00

56 lines
1.6 KiB
Python

"""Remote LoRA Pool — pure pass-through, just different NAME."""
from __future__ import annotations
import logging
logger = logging.getLogger(__name__)
class LoraPoolRemoteLM:
"""LoRA Pool that passes through filter config (remote variant for NAME only)."""
NAME = "Lora Pool (Remote, LoraManager)"
CATEGORY = "Lora Manager/randomizer"
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"pool_config": ("LORA_POOL_CONFIG", {}),
},
"hidden": {
"unique_id": "UNIQUE_ID",
},
}
RETURN_TYPES = ("POOL_CONFIG",)
RETURN_NAMES = ("POOL_CONFIG",)
FUNCTION = "process"
OUTPUT_NODE = False
def process(self, pool_config, unique_id=None):
if not isinstance(pool_config, dict):
logger.warning("Invalid pool_config type, using empty config")
pool_config = self._default_config()
if "version" not in pool_config:
pool_config["version"] = 1
filters = pool_config.get("filters", self._default_config()["filters"])
logger.debug("[LoraPoolRemoteLM] Processing filters: %s", filters)
return (filters,)
@staticmethod
def _default_config():
return {
"version": 1,
"filters": {
"baseModels": [],
"tags": {"include": [], "exclude": []},
"folders": {"include": [], "exclude": []},
"favoritesOnly": False,
"license": {"noCreditRequired": False, "allowSelling": False},
},
"preview": {"matchCount": 0, "lastUpdated": 0},
}