FunPack Refinement Key Loader
Every FunPack memory lives under a key — this is the keychain
- refinement_key
- status
The fun part of FunPack is that it learns from your ratings. The less fun part is that all that learning is filed under a name - the refinement key - and if you get the keys wrong, the Refiner is learning under one key while the sampler reads memory under another, and nothing talks to anything. FunPack Refinement Key Loader is the node that manages those keys: it lists the existing ones, creates a typed key when you ask for a new one, and exposes Import/Export buttons so you can move your learned session between machines.
How it works
Three inputs. refinement_key is an enum of your saved keys - default -None-. key_name is the text for a new key. create_if_missing (default true) does what it says: pick a name that doesn't exist and the node creates it rather than erroring. Outputs are refinement_key (STRING - the actual key you wire everywhere) and status.
The wiring pattern is the whole point. Connect this node's refinement_key output to the refinement_key_input on FunPack Video Refiner V2, FunPack Apply LoRA Weights, FunPack Conditioning Adjust, and the Scene Chain Sampler. Now they all share one key: one named file on disk holding phrase memory, conditioning directions, LoRA suggestions, velocity-bias banks, and advisor diagnostics. One key, one coherent session.
A key is typed, which matters more than it sounds - a key created for the Refiner's memory is distinct from a batch-training or velocity key, and the loader handles that bookkeeping so you don't mix contexts by accident. The Import/Export buttons are browser-UI niceties for taking a refined session to another machine, which is genuinely useful when you've spent an afternoon teaching the Refiner your taste.
Why keys exist at all
Without a key, the Refiner's learning would be one giant undifferentiated blob - every prompt's history and every rating feeding into every other run. Keys are how FunPack keeps your "stylized action montage" taste separate from your "clean product shots" taste. Create one key per project (or per style) and the learning stays relevant instead of washing itself out across unrelated work.
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". It's a lightweight file/state node - no model downloads, no optional deps.
The honest take
The Refinement Key Loader is easy to ignore and easy to regret ignoring. If you wire the Refiner straight to a fixed key name in the widget and never use this node, you'll work fine - right up until two workflows collide on the same memory. It's the cheapest possible insurance: one loader, five wires, and your learning stays where you put it. The status output tells you what key is active, so a wrong key shows up as a one-line diagnostic instead of a mystery.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| refinement_key | COMBO | -None- | 1 options: -None- |
| key_name | STRING | — | |
| create_if_missing | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| refinement_key | STRING | — |
| status | STRING | — |