VULCA Evolution (Status)
Watch a tradition's scoring weights drift between sessions
- evolution_json
VULCA Evolution is a status readout, not a generator. Pick a tradition and it returns the current evolved L1–L5 scoring weights for that tradition as JSON. It exists because the VULCA framework doesn't treat its evaluation rubrics as fixed - weights for each tradition can evolve across sessions as the system learns, and this node is how you look at the current state.
Think of it as checking the calibration of the ruler before you measure. If VULCA Evaluate is the grader, this node tells you what rubric the grader is currently using, and whether it's drifted from where it started. If you're doing a long project and your scores start moving on you, this is the node that explains why.
How it works
It asks the SDK for the tradition's loaded config and pulls out the weights that match the L-dimension pattern (L1 through L5). If that read fails - tradition not found, config not loaded - it falls back to a mock evaluation to return something, and flags the result with an evolved boolean so you know whether you're looking at real evolved weights or a placeholder. You'll get a JSON object with the tradition name, the weights, and that evolved marker.
One input: tradition, defaulting to chinese_xieyi. One output: evolution_json. That's the whole node. It's honest, thin tooling - you'd typically wire evolution_json into a text/JSON preview node to eyeball it, or use it as context before deciding how aggressively to chase a score.
Install
Same as the whole pack:
cd ComfyUI/custom_nodes/
git clone https://github.com/vulca-org/comfyui-vulca
pip install "vulca>=0.12.0"
Restart ComfyUI, or grab it through ComfyUI Manager (search "VULCA"). No models, no API key needed for this one - it's a local status lookup, and the fallback path runs in mock mode so it won't error out keyless.
Realistically this is a niche node: you'll reach for it during a long session when you're trying to figure out why your evaluation baseline feels different than yesterday, or when you want to confirm the framework's weights before you trust a batch of scores. If you're just evaluating one image, you don't need it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| tradition | STRING | chinese_xieyi | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| evolution_json | STRING | — |