AIHub Action Set Project Config Float
Writing a float into the client project's config — a number your workflows share
AIHub Action Set Project Config Float is the floating-point member of the pack's four "write to the project config" nodes (the others are boolean, integer, and string). It takes a decimal number from your workflow and stores it in the client project's config under a dotted field path. It's the kind of node that's boring on its own and quietly essential in a multi-step pipeline: one workflow runs an analysis, computes a number - say, a strength or a scale factor - and leaves it where a later workflow or the client app can read it back.
This is part of otavanopisto's ComfyUI-aihub-workflow-exposer, the pack that turns ComfyUI into the engine inside another application. Its "project" concept is just state managed by the client - a folder with a config.json and files in the simplest case - which is exactly what step-by-step workflows need to carry data between runs without re-uploading.
How it works
On execution it sends one JSON message over the pack's websocket (port 8111): {"type": "SET_CONFIG_VALUE", "field": "<field>", "value": <value>}. The client writes it into its project store; dots in field address nested levels. That's the whole mechanism - no file, no binary payload, just a state write the client decides how to persist.
The inputs that matter
- field (required) - the dotted path to write to, e.g.
analysis.confidenceorsettings.strength. - value (required) - the float to store, with a generously wide min/max of ±1e20. Wire it from a computed value or set it as a widget.
No outputs. Pure side effect.
Installing it
ComfyUI Manager (search "ComfyUI-aihub-workflow-exposer"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer
# restart ComfyUI
No extra dependencies - there's no requirements.txt in the pack.
Where people get burned
Precision and path mismatches. The client reads back the exact dotted path you wrote, so analysis.confidence on the write side must match the read side character for character. And if you're expecting an integer's behavior, don't reach for this node - a float written as 2.0 may come back and be compared as 2.0, which is not the same as 2 in every language the client might use. Finally, project context matters: no project, no config to write to, and with no client connected the message just goes into the void.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| field | STRING | my-field | The field to set, use dots for entering sublevels |
| value | FLOAT | 0.00-100000000000000000000–100000000000000000000 | The value of the field to set |
Outputs (0)
No outputs