| """Seeded HF model and adapter catalog for the command center.""" |
|
|
| from __future__ import annotations |
|
|
| from .schema import AdapterRecipe, ModelCandidate |
|
|
| MODEL_CATALOG: list[ModelCandidate] = [ |
| ModelCandidate( |
| repo_id="black-forest-labs/FLUX.2-klein-4B", |
| role="tiny_titan_sidecar_image_generator", |
| task="image-to-image", |
| params_b=4.0, |
| runtime="diffusers / provider", |
| license="apache-2.0", |
| source_url="https://hf.co/black-forest-labs/FLUX.2-klein-4B", |
| ), |
| ModelCandidate( |
| repo_id="black-forest-labs/FLUX.2-klein-9B", |
| role="quality_image_generator", |
| task="image-to-image", |
| params_b=9.0, |
| runtime="diffusers / gated provider", |
| license="other", |
| gated=True, |
| source_url="https://hf.co/black-forest-labs/FLUX.2-klein-9B", |
| ), |
| ModelCandidate( |
| repo_id="Brunobkr/OFFELLIA_Q4_0_gemma-4-12B-it.gguf", |
| role="private_research_multimodal_judge", |
| task="image-text-to-text", |
| params_b=12.0, |
| runtime="llama.cpp GGUF", |
| license="apache-2.0", |
| public_demo=False, |
| source_url="https://hf.co/Brunobkr/OFFELLIA_Q4_0_gemma-4-12B-it.gguf", |
| ), |
| ModelCandidate( |
| repo_id="nvidia/LocateAnything-3B", |
| role="visual_grounding", |
| task="image-text-to-text", |
| params_b=3.83, |
| runtime="transformers", |
| license="other", |
| source_url="https://hf.co/nvidia/LocateAnything-3B", |
| ), |
| ModelCandidate( |
| repo_id="openbmb/MiniCPM-V-4.6", |
| role="sponsor_visual_judge", |
| task="image-text-to-text", |
| params_b=1.30, |
| runtime="OpenAI-compatible API / transformers", |
| license="apache-2.0", |
| source_url="https://hf.co/openbmb/MiniCPM-V-4.6", |
| ), |
| ModelCandidate( |
| repo_id="nvidia/NVIDIA-Nemotron-Parse-v1.2", |
| role="sponsor_structured_parse", |
| task="image-text-to-text", |
| params_b=0.94, |
| runtime="provider API / transformers", |
| license="other", |
| source_url="https://hf.co/nvidia/NVIDIA-Nemotron-Parse-v1.2", |
| ), |
| ModelCandidate( |
| repo_id="openbmb/MiniCPM5-1B", |
| role="router", |
| task="text-generation / tool-calling", |
| params_b=1.08, |
| runtime="transformers", |
| license="apache-2.0", |
| source_url="https://hf.co/openbmb/MiniCPM5-1B", |
| ), |
| ModelCandidate( |
| repo_id="onnx-community/functiongemma-270m-it-ONNX", |
| role="fallback_router", |
| task="text-generation", |
| params_b=0.27, |
| runtime="transformers.js / ONNX", |
| license="gemma", |
| source_url="https://hf.co/onnx-community/functiongemma-270m-it-ONNX", |
| ), |
| ModelCandidate( |
| repo_id="Brunobkr/OFFELLIA_IQ4_XS_gemma-4-12B-it-heretic", |
| role="adult_mode_text_judge", |
| task="text-generation", |
| params_b=12.0, |
| runtime="llama.cpp GGUF", |
| license="other", |
| adult_only=True, |
| source_url="https://hf.co/Brunobkr/OFFELLIA_IQ4_XS_gemma-4-12B-it-heretic", |
| ), |
| ModelCandidate( |
| repo_id="Wan-AI/Wan2.2-I2V-A14B-Diffusers", |
| role="video_swap_preset", |
| task="image-to-video", |
| params_b=14.0, |
| runtime="diffusers / provider", |
| license="apache-2.0", |
| source_url="https://hf.co/Wan-AI/Wan2.2-I2V-A14B-Diffusers", |
| ), |
| ModelCandidate( |
| repo_id="Lightricks/LTX-2.3", |
| role="video_swap_preset", |
| task="image-to-video", |
| params_b=22.0, |
| runtime="diffusers", |
| license="other", |
| source_url="https://hf.co/Lightricks/LTX-2.3", |
| ), |
| ] |
|
|
| ADAPTER_CATALOG: list[AdapterRecipe] = [ |
| AdapterRecipe( |
| repo_id="DeverStyle/Flux.2-Klein-Loras", |
| adapter_for="black-forest-labs/FLUX.2-klein-9B", |
| task="text-to-image style stack", |
| license="apache-2.0", |
| trigger_words=["gothic couture", "structured garment"], |
| compatible_repo_ids=[ |
| "black-forest-labs/FLUX.2-klein-9B", |
| "black-forest-labs/FLUX.2-klein-4B", |
| ], |
| ), |
| AdapterRecipe( |
| repo_id="fal/flux-2-klein-4B-outpaint-lora", |
| adapter_for="black-forest-labs/FLUX.2-klein-4B", |
| task="outpaint/inpaint public demo helper", |
| license="apache-2.0", |
| compatible_repo_ids=["black-forest-labs/FLUX.2-klein-4B"], |
| requires_image=True, |
| ), |
| AdapterRecipe( |
| repo_id="thedeoxen/refcontrol-FLUX.2-klein-4B-reference-depth-lora", |
| adapter_for="black-forest-labs/FLUX.2-klein-base-4B", |
| task="reference-depth control for garment layout", |
| license="apache-2.0", |
| compatible_repo_ids=[ |
| "black-forest-labs/FLUX.2-klein-base-4B", |
| "black-forest-labs/FLUX.2-klein-4B", |
| ], |
| requires_image=True, |
| ), |
| AdapterRecipe( |
| repo_id="nomadoor/flux-2-klein-9B-schematic-lora", |
| adapter_for="black-forest-labs/FLUX.2-klein-base-9B", |
| task="pose/depth/segmentation schematic control", |
| license="other", |
| compatible_repo_ids=[ |
| "black-forest-labs/FLUX.2-klein-base-9B", |
| "black-forest-labs/FLUX.2-klein-9B", |
| ], |
| ), |
| AdapterRecipe( |
| repo_id="fal/Qwen-Image-Edit-2511-Multiple-Angles-LoRA", |
| adapter_for="Qwen/Qwen-Image-Edit-2511", |
| task="camera-angle edit", |
| license="apache-2.0", |
| ), |
| AdapterRecipe( |
| repo_id="joyfox/LTX-2.3-Transition-LORA", |
| adapter_for="Lightricks/LTX-2.3", |
| task="image-to-video transition", |
| license="apache-2.0", |
| ), |
| AdapterRecipe( |
| repo_id="LiconStudio/Ltx2.3-VBVR-lora-I2V", |
| adapter_for="Lightricks/LTX-2.3", |
| task="video reasoning / I2V", |
| license="other", |
| ), |
| AdapterRecipe( |
| repo_id="ScottzillaSystems/qwen-image-edit-plus-nsfw-lora", |
| adapter_for="Qwen/Qwen-Image-Edit-2511", |
| task="adult image edit catalog entry", |
| license="openrail++", |
| adult_only=True, |
| ), |
| AdapterRecipe( |
| repo_id="lopi999/Wan2.2-I2V_General-NSFW-LoRA", |
| adapter_for="Wan-AI/Wan2.2-I2V-A14B", |
| task="adult video adapter catalog entry", |
| license="unknown", |
| adult_only=True, |
| ), |
| ] |
|
|
| DEFAULT_ACTIVE_STACK = [ |
| "black-forest-labs/FLUX.2-klein-9B", |
| "nvidia/LocateAnything-3B", |
| "openbmb/MiniCPM-V-4.6", |
| "nvidia/NVIDIA-Nemotron-Parse-v1.2", |
| "openbmb/MiniCPM5-1B", |
| "onnx-community/functiongemma-270m-it-ONNX", |
| ] |
|
|
| PRIVATE_RESEARCH_STACK = [ |
| "black-forest-labs/FLUX.2-klein-9B", |
| "Brunobkr/OFFELLIA_Q4_0_gemma-4-12B-it.gguf", |
| "nvidia/LocateAnything-3B", |
| "openbmb/MiniCPM-V-4.6", |
| "nvidia/NVIDIA-Nemotron-Parse-v1.2", |
| "openbmb/MiniCPM5-1B", |
| ] |
|
|
|
|
| def filter_catalog(adult_mode: bool = False) -> tuple[list[ModelCandidate], list[AdapterRecipe]]: |
| """ |
| Filter the model and adapter catalogs based on visibility settings. |
| |
| Parameters: |
| adult_mode (bool): When False, only public, non-adult content is included. When True, all content is included. |
| |
| Returns: |
| tuple: (models, adapters) - filtered lists of ModelCandidate and AdapterRecipe objects matching the visibility criteria. |
| """ |
| models = [ |
| model |
| for model in MODEL_CATALOG |
| if (adult_mode or not model.adult_only) and (adult_mode or model.public_demo) |
| ] |
| adapters = [adapter for adapter in ADAPTER_CATALOG if adult_mode or not adapter.adult_only] |
| return models, adapters |
|
|
|
|
| def active_stack(adult_mode: bool = False) -> list[ModelCandidate]: |
| """ |
| Builds the active model stack based on access mode. |
| |
| Returns: |
| list[ModelCandidate]: The active model candidates visible for the given mode. |
| """ |
| allowed, _ = filter_catalog(adult_mode) |
| by_id = {model.repo_id: model for model in allowed} |
| stack_ids = PRIVATE_RESEARCH_STACK if adult_mode else DEFAULT_ACTIVE_STACK |
| return [by_id[repo_id] for repo_id in stack_ids if repo_id in by_id] |
|
|
|
|
| def parameter_budget(stack: list[ModelCandidate] | None = None) -> dict[str, float | str]: |
| """ |
| Calculates the parameter budget summary for a model stack. |
| |
| Computes the total parameter count of models in the provided stack, |
| checks it against a 32 billion parameter limit, and returns budget details. |
| |
| Parameters: |
| stack: Model candidates to evaluate. If None, uses the default active stack. |
| |
| Returns: |
| A dictionary with the following keys: |
| - active_b (float): Total parameters in billions |
| - limit_b (float): Budget limit in billions |
| - remaining_b (float): Remaining budget in billions |
| - status (str): "pass" if within budget, "over_budget" otherwise |
| """ |
| chosen = stack or active_stack(False) |
| total = round(sum(model.params_b for model in chosen), 2) |
| return { |
| "active_b": total, |
| "limit_b": 32.0, |
| "remaining_b": round(32.0 - total, 2), |
| "status": "pass" if total <= 32.0 else "over_budget", |
| } |
|
|
|
|
| def catalog_summary(adult_mode: bool = False) -> dict[str, int | float | str]: |
| """ |
| Generates a summary of visible catalog entries and active model parameter budget. |
| |
| Returns: |
| dict: A dictionary containing visible model and adapter counts, adult catalog status ("enabled" or "hidden"), and parameter budget metrics including total budget used, limit, remaining, and status ("pass" or "over_budget"). |
| """ |
| models, adapters = filter_catalog(adult_mode) |
| budget = parameter_budget(active_stack(adult_mode)) |
| return { |
| "models_visible": len(models), |
| "adapters_visible": len(adapters), |
| "adult_catalog": "enabled" if adult_mode else "hidden", |
| **budget, |
| } |
|
|