Nodes/ComfyUI-FunPack/FunPack Apply LoRA Weights
ComfyUI Node

FunPack Apply LoRA Weights

This node doesn't load LoRAs — it decides what they should weigh

By digital-garbage·Created about a year ago·Updated about 21 hours ago· 18
FunPack Apply LoRA Weights
    • lora_stack
    • status
    positive_prompt
    refinement_keymy_style_v1
    modeltx2
    per_blockfalse
    lora_list[]
    refinement_key_input
    lora_0None
    lora_0_typegeneral
    lora_0_base_weight1.00

    FunPack's smartest idea about LoRAs is that the weights shouldn't be static. FunPack Apply LoRA Weights sits in front of the actual LoRA loader and decides how much each LoRA should matter for this specific prompt - reading the weight suggestions the Refiner saved from your ratings and turning them into a ready-to-load stack. On the first run it uses your base weights. After you've rated a few generations, it can use what the Refiner learned instead.

    How it works

    You give it the positive_prompt you're about to generate with and a refinement_key (same key as your Refiner). Then you list the LoRAs you want in the running with three facts each:

    • lora_N - the LoRA file (from a searchable picker).
    • lora_N_type - general, action, style, quality, or character. This is a hint to the Refiner about what the LoRA is for, not a hard category - the docs say a wrong type won't break loading, it just makes future suggestions less useful.
    • lora_N_base_weight - the trainer-recommended model weight (default 1).

    The mode input (ltx2 / wan) is the stack namespace, and per_block (default off) is the LTX-only extra: with it on, the loader analyzes LoRA block deltas and balances competing block strengths automatically instead of applying a flat weight to each.

    First run: base weights, no magic. Later runs: for the same key and the same prompt, the node checks the Refiner's saved suggestions and uses those. It's deterministic - the loading stays predictable because Apply chooses the weights, the Loader just loads them. Outputs are lora_stack (the FUNPACK_LORA_STACK the Loader consumes) and status (human-readable).

    The rules that matter

    Several behaviors are worth knowing before they surprise you:

    • Change the prompt and you can start a fresh prompt record - suggestions are keyed to a specific prompt.
    • A saved suggestion is ignored if the LoRA name, type, or saved base weight no longer matches the slot. It won't load a stale weight onto a different LoRA.
    • 0.0 weight skips that LoRA for the run.
    • Negative weights are possible after repeated bad ratings. Yes, really - that's "this LoRA made it worse, dampen it."
    • If the key or prompt doesn't match the Refiner's, it falls back to base weights rather than guessing.

    Install

    It's part of ComfyUI-FunPack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/olivv-cs/ComfyUI-FunPack
    pip install -r requirements.txt
    

    or ComfyUI Manager → search "ComfyUI-FunPack". No extra dependencies.

    Where it fits

    The documented pattern is exactly three nodes in a row: FunPack Apply LoRA Weights → FunPack LoRA Loader → FunPack Video Refiner V2. Apply picks the weights, Loader applies them, Refiner updates the suggestions after you rate the result. The loop is the whole point: each rating nudges the stack toward what your prompts actually need, and Apply is the part that remembers what the Refiner decided. Without it you have static LoRAs; with it, your LoRA weights become part of the learning loop.

    CategoryFunPack/Model Management

    Inputs (9)

    NameTypeDefaultDescription
    positive_promptSTRING
    refinement_keySTRINGmy_style_v1
    modeCOMBOltx22 options: ltx2, wan
    per_blockBOOLEANfalseFor LTX-mode stacks, analyze LoRA block deltas and balance competing block strengths automatically.
    lora_listoptSTRING[]LoRAs whose weights this node looks up for the current prompt.
    refinement_key_inputoptSTRINGOptional linked refinement key, for example from FunPack Refinement Key Loader. Overrides the refinement_key widget when connected.
    lora_0optCOMBONone1 options: None
    lora_0_typeoptCOMBOgeneral5 options: general, action, style, quality, character
    lora_0_base_weightoptFLOAT1.00-10–10Trainer-recommended model anchor weight.

    Outputs (2)

    NameTypeDescription
    lora_stackFUNPACK_LORA_STACK
    statusSTRING