AIHub Expose Model
The full model selector — powerful, fiddly, and honestly the pack says don't reach for it first
- MODEL
- CLIP
- VAE
AIHub Expose Model is the node that lets the external app's user pick a model and attach LoRAs to it, and it outputs the full MODEL, CLIP, VAE trio your sampling needs. It's also the node the pack's own README tells you to think twice about: "Use of this selector is discouraged unless you want to specify an initial value, since it can be rather complicated to setup." That's the author being honest, so here's the honest version of the trade-off.
The complicated part comes from how model selection works in AIHub. To be selectable by a client, a model has to be exported - a JSON config file describing it (id, family, group, file, default cfg/steps/sampler/scheduler) lives in ComfyUI/aihub/models. You generate these with the AIHubMetaExportModel node or write the JSON by hand. On top of that, the node decides whether it's a regular checkpoint (loads from models/checkpoints) or a diffusion model (loads from models/diffusion_models via UNETLoader, with an fp8 weight-dtype choice). Add per-model LoRA lists, and you're juggling five moving parts just to show a dropdown.
What you actually set
- model - the default checkpoint to use, as a base value. The client can override it.
- loras / loras_strengths / loras_use_loader_model_only - comma-separated defaults for the LoRA stack: names, matching strengths, and a
t/fper LoRA for whether it should skip the clip (loader-model-only mode). All three lists must line up. - is_diffusion_model - and here's the trap: the default is
true. Most people's checkpoints are not diffusion models. For anything inmodels/checkpoints, flip this off or the node goes hunting in the wrong folder. - diffusion_model_weight_dtype -
default,fp8_e4m3fn,fp8_e4m3fn_fast,fp8_e5m2. Only meaningful whenis_diffusion_modelis on; fp8 is how you run a diffusion model you can't fit in VRAM at full precision. - limit_to_family / limit_to_group - narrow the picker to, say, family
sdxlor groupfancy_animal_model, so beginners can't select a model that breaks the workflow. - disable_model_selection / disable_loras_selection - lock either half of the picker down.
Outputs are MODEL, CLIP, VAE - straight into a KSampler, exactly like a checkpoint loader's.
The one-liner verdict
The README's bluntest line is the real guidance: the standard node's actual use is selecting LoRAs for a specific model. If all you want is a model dropdown, use the Simple variant instead - it strips all of this to the essentials. Reach for this one when the workflow genuinely must let a client stack LoRAs onto a family of models. One friendly detail from the source: you can leave model, loras, and friends blank and the client-side UI just picks the first option it gets - handy for a quick default.
Install & gotchas
Pack install is the usual: ComfyUI Manager → search ComfyUI-aihub-workflow-exposer, or git clone https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer into custom_nodes, then restart. No requirements.txt, no extra pip deps. The model JSONs you export live in ComfyUI/aihub/models; keep them in sync if you rename files.
Biggest gotcha besides the is_diffusion_model default: lora lists that don't match counts. Three loras but two strengths and the client will send something your workflow chokes on. And remember exporting only matters for client-side selection - if the workflow is pinned to one model, the README notes you can skip all this and load directly with the AIHub Utils Load Model node on a string input.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| id | STRING | exposed_model | A unique custom id for this workflow (it should be unique) |
| label | STRING | Model | This is the label that will appear in the field |
| model | STRING | The default model to use as base for this workflow | |
| loras | STRING | The default, comma separated list of loras to apply to this model | |
| loras_strengths | STRING | The default, comma separated list of lora strengths to apply to this model, it must match the number of loras given | |
| loras_use_loader_model_only | STRING | The default, comma separated list of booleans for the loras, 't' or 'f' to apply only to the model and not the clip, it must match the number of loras given | |
| is_diffusion_model | BOOLEAN | true | If set to true, it will load the model from the diffusion_models folder, if false it will load it from the checkpoints folder |
| diffusion_model_weight_dtype | COMBO | default | The weight dtype to use when loading the diffusion model, this is only used if is_diffusion_model is true |
| limit_to_family | STRING | The family of the model to be loaded is limited by this value | |
| limit_to_group | STRING | The group of the model to be loaded is limited by this value | |
| tooltip | STRING | An optional tooltip | |
| advanced | BOOLEAN | false | If set to true, it will make this option be hidden under advanced options for this workflow |
| index | INT | 0 | This value is used for sorting the input fields when displaying; lower values will appear first. |
| disable_loras_selection | BOOLEAN | false | If set to true, it will disable the loras selection field in the UI |
| disable_model_selection | BOOLEAN | false | If set to true, it will disable the checkpoint selection field in the UI |
| optional_vaeopt | STRING | The default for an optional VAE to load, if not given the VAE from the checkpoint will be used if available | |
| optional_clipopt | STRING | The default for an optional CLIP to load, if not given the CLIP from the checkpoint will be used if available | |
| optional_clip_typeopt | STRING | The default for an optional CLIP to load, if not given the CLIP from the checkpoint will be used if available | |
| optional_lora_prependopt | STRING | An optional string to prepend to the loras list, useful for programmatic addition of loras | |
| optional_lora_prepend_strengthsopt | STRING | An optional string to prepend to the loras strengths list, useful for programmatic addition of loras | |
| optional_lora_prepend_use_loader_model_onlyopt | STRING | An optional string to prepend to the loras use_loader_model_only list, useful for programmatic addition of loras |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |