feat: wire model-downloader routes and feature flags into the server

Register the routes at PromptServer startup and advertise the server_side_model_downloads and hf_auth_eligible capability flags so the frontend can detect support and gate the HF login UI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DoronGenzelHass 2026-06-22 12:02:46 +03:00
parent fdd84d04a0
commit bb7efb8fd6
2 changed files with 14 additions and 0 deletions

View File

@ -98,12 +98,24 @@ def _parse_cli_feature_flags() -> dict[str, Any]:
# Default server capabilities # Default server capabilities
def _hf_auth_eligible_at_startup() -> bool:
"""Snapshot eligibility once at feature-flag init time.
Imports lazily because the flags module loads very early in the
server boot sequence earlier than the model_downloader package.
"""
from app.model_downloader.hf_auth.eligibility import is_hf_auth_eligible
return is_hf_auth_eligible()
_CORE_FEATURE_FLAGS: dict[str, Any] = { _CORE_FEATURE_FLAGS: dict[str, Any] = {
"supports_preview_metadata": True, "supports_preview_metadata": True,
"max_upload_size": args.max_upload_size * 1024 * 1024, # Convert MB to bytes "max_upload_size": args.max_upload_size * 1024 * 1024, # Convert MB to bytes
"extension": {"manager": {"supports_v4": True}}, "extension": {"manager": {"supports_v4": True}},
"node_replacements": True, "node_replacements": True,
"assets": args.enable_assets, "assets": args.enable_assets,
"server_side_model_downloads": True,
"hf_auth_eligible": _hf_auth_eligible_at_startup(),
} }
# CLI-provided flags cannot overwrite core flags # CLI-provided flags cannot overwrite core flags

View File

@ -47,6 +47,7 @@ from app.assets.seeder import asset_seeder
from app.assets.api.routes import register_assets_routes from app.assets.api.routes import register_assets_routes
from app.assets.services.ingest import register_file_in_place from app.assets.services.ingest import register_file_in_place
from app.assets.services.asset_management import resolve_hash_to_path from app.assets.services.asset_management import resolve_hash_to_path
from app.model_downloader.api.routes import register_routes as register_model_downloader_routes
from app.user_manager import UserManager from app.user_manager import UserManager
from app.model_manager import ModelFileManager from app.model_manager import ModelFileManager
@ -256,6 +257,7 @@ class PromptServer():
else: else:
register_assets_routes(self.app) register_assets_routes(self.app)
asset_seeder.disable() asset_seeder.disable()
register_model_downloader_routes(self.app)
routes = web.RouteTableDef() routes = web.RouteTableDef()
self.routes = routes self.routes = routes
self.last_node_id = None self.last_node_id = None