Files
StyleRef-styleref-comfyui/__init__.py
T
BehzadandClaude Sonnet 5 29c9edd562 1.0.1 — model-agnostic description, working icon
Two things wrong on the Registry listing.

The description promised "reuse it across FLUX, SDXL, and SD1.5", which reads
as though the pack only targets those three. It is model-agnostic: a style
compiles for whatever target you pick, and FLUX and Z-Image are the models the
shipped templates happen to demo. Now matches the GitHub repo description. The
same model-specific phrasing is out of the README opening and the module
docstring; the Targets section still names models, which is factual there.

The icon pointed at https://styleref.io/icon.png, which 404s — hence the broken
image on the listing. Points at the 512x512 StyleRef mark instead. Its
background is opaque white rather than transparent, so a black mark stays
legible on the Registry's dark UI.

Metadata is read from the published version, so a release is the only way for
either fix to reach the listing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-27 14:28:18 +02:00

74 lines
2.7 KiB
Python

"""
StyleRef nodes for ComfyUI — https://styleref.io
Define a creative style once on StyleRef, then load it as a node and reuse it
across your workflows.
MIT licensed. Issues: https://github.com/StyleRef/styleref-comfyui
"""
from __future__ import annotations
import os
import re
import sys
# The node modules import `styleref_api` etc. as top-level names. ComfyUI adds
# custom_nodes/<pack>/ to sys.path only in some layouts, so make it explicit
# rather than depending on how this pack was installed.
_PACK_DIR = os.path.dirname(os.path.abspath(__file__))
if _PACK_DIR not in sys.path:
sys.path.insert(0, _PACK_DIR)
from styleref_nodes.apply import StyleRefApply # noqa: E402
from styleref_nodes.facets import StyleRefFacets # noqa: E402
from styleref_nodes.load import StyleRefLoad # noqa: E402
from styleref_nodes.login import StyleRefLogin # noqa: E402
from styleref_nodes.reference_images import StyleRefReferenceImages # noqa: E402
NODE_CLASS_MAPPINGS = {
"StyleRefLoad": StyleRefLoad,
"StyleRefApply": StyleRefApply,
"StyleRefFacets": StyleRefFacets,
"StyleRefReferenceImages": StyleRefReferenceImages,
"StyleRefLogin": StyleRefLogin,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"StyleRefLoad": "StyleRef Load",
"StyleRefApply": "StyleRef Apply",
"StyleRefFacets": "StyleRef Facets",
"StyleRefReferenceImages": "StyleRef Reference Images",
"StyleRefLogin": "StyleRef Login",
}
# Served by ComfyUI at /extensions/styleref-comfyui/ — the search widget's
# progressive enhancement. Nothing here is required for the nodes to work.
WEB_DIRECTORY = "./web"
_FALLBACK_VERSION = "1.0.1"
def _pack_version() -> str:
"""Single-source the version from pyproject.toml, with a constant fallback."""
try:
with open(os.path.join(_PACK_DIR, "pyproject.toml"), encoding="utf-8") as fh:
match = re.search(r'^version\s*=\s*"([^"]+)"', fh.read(), re.MULTILINE)
return match.group(1) if match else _FALLBACK_VERSION
except OSError:
return _FALLBACK_VERSION
# The install docs tell users to look for a `[StyleRef]` line at startup, so a
# healthy import must print one — silence would read as a failed install.
print(f"[StyleRef] v{_pack_version()} — {len(NODE_CLASS_MAPPINGS)} nodes registered")
# Registering the search route is optional: without it the enhanced widget
# simply doesn't populate, and the vanilla `search` field still works.
try:
import server_routes # noqa: F401
except Exception as err: # noqa: BLE001 - never block node registration
print(f"[StyleRef] Search route unavailable ({err}); using the plain search field.")
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]