EmAySee Twenty Float To Text And Float
The body-attribute text builder
- combined_text
- Breasts Size
- Breasts Sag
- Areloas Size
- Puffie
- Belly Fat
- Waist Size
- Butt Size
- Thigh Size
- Thigh Spacing
- Body Type
- Pregnant
- Pubic Hair Peek
- Option 01
- Option 02
- Option 03
- Option 04
- Option 05
- Option 06
- Option 07
- Option 08
If you build photoreal workflows with body-attribute sliders - the kind where a dozen LoRA-ish values control everything from waist to thigh spacing - you know the annoying part isn't the sliders, it's turning twenty of them into one usable prompt string. That's the whole job of EmAySee Twenty Float To Text And Float. You get twenty float inputs, it hands you back a single text line that only lists the attributes you actually touched.
The trick that makes it work is that zero means "leave it out." Each of the twenty inputs (Breasts Size, Breasts Sag, Areloas Size, Puffie, Belly Fat, Waist Size, Butt Size, Thigh Size, Thigh Spacing, Body Type, Pregnant, Pubic Hair Peek, plus eight generically named Option 01–08) is a float slider from -2 to 3 in steps of 0.01. Any value that isn't 0 gets formatted as Label: 1.25 and appended to the output, one per line. Anything still sitting at its default of 0 is silently dropped. So the combined_text output is always exactly the list of attributes you changed - a clean prompt fragment you can wire straight into a positive prompt or into the text encoder.
The mechanism is boring in the best way. No LLM, no API, no model files, no network. It's a loop that formats each non-zero value with two decimal places and joins the lines with newlines. That's it. Which also means there's nothing to break and nothing to configure.
One thing that surprises people: this node also has outputs. Alongside combined_text it echoes all twenty floats back out as named FLOAT outputs, one per input. That's a pass-through convenience - you can route the same slider value into a LoRA strength or a second text builder without dragging a separate Reroute node into the graph. If you don't need that, just ignore the float outputs and read the text one.
Where it fits: this is part of a bigger pack of personal automation nodes from EmAySee (the repo brands itself "SPECTRE"), and it's clearly built for the author's own slider-driven photoreal pipeline rather than for general audiences. The README is honest about this - it's a list of AI-generated one-liners that ends with "code provided without any guarantees or warranties." Don't expect docs or support.
How to install
Install the whole pack once - this node ships inside ComfyUI_EmAySee_CustomNodes:
cd ComfyUI/custom_nodes
git clone https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes
Then restart ComfyUI. Or skip the terminal and search ComfyUI_EmAySee_CustomNodes in ComfyUI Manager. There's no requirements.txt and no model download - the node is pure Python and runs on what ComfyUI already ships. On startup the pack prints a big magenta "SPECTRE v5.0" ASCII banner in your console; that's normal, not a crash.
Where people trip up
- Setting a slider to 0 removes the tag. If you want "neutral" in a slider workflow you usually want 0 - but be aware the moment you drag it back to 0 mid-experiment, that attribute vanishes from the prompt entirely.
- Default output is empty. With all inputs at 0, combined_text is an empty string. That's correct behavior, but it makes this node look broken if you test it before touching any slider.
- The range is -2 to +3. The pack's older
TwentyFloatToTextgoes -3 to +5 in 0.1 steps; this one is finer (0.01) but tighter. If you're swapping between the two, your saved slider values won't map 1:1.
Honestly, if you're just after "turn floats into a prompt line," this is fine. If you want the individual attributes as separate strings too, the V2 version of this node does that - but for the simple case, this is the one.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| Breasts Size | FLOAT | 0.00-2–3 | — |
| Breasts Sag | FLOAT | 0.00-2–3 | — |
| Areloas Size | FLOAT | 0.00-2–3 | — |
| Puffie | FLOAT | 0.00-2–3 | — |
| Belly Fat | FLOAT | 0.00-2–3 | — |
| Waist Size | FLOAT | 0.00-2–3 | — |
| Butt Size | FLOAT | 0.00-2–3 | — |
| Thigh Size | FLOAT | 0.00-2–3 | — |
| Thigh Spacing | FLOAT | 0.00-2–3 | — |
| Body Type | FLOAT | 0.00-2–3 | — |
| Pregnant | FLOAT | 0.00-2–3 | — |
| Pubic Hair Peek | FLOAT | 0.00-2–3 | — |
| Option 01 | FLOAT | 0.00-2–3 | — |
| Option 02 | FLOAT | 0.00-2–3 | — |
| Option 03 | FLOAT | 0.00-2–3 | — |
| Option 04 | FLOAT | 0.00-2–3 | — |
| Option 05 | FLOAT | 0.00-2–3 | — |
| Option 06 | FLOAT | 0.00-2–3 | — |
| Option 07 | FLOAT | 0.00-2–3 | — |
| Option 08 | FLOAT | 0.00-2–3 | — |
Outputs (21)
| Name | Type | Description |
|---|---|---|
| combined_text | STRING | — |
| Breasts Size | FLOAT | — |
| Breasts Sag | FLOAT | — |
| Areloas Size | FLOAT | — |
| Puffie | FLOAT | — |
| Belly Fat | FLOAT | — |
| Waist Size | FLOAT | — |
| Butt Size | FLOAT | — |
| Thigh Size | FLOAT | — |
| Thigh Spacing | FLOAT | — |
| Body Type | FLOAT | — |
| Pregnant | FLOAT | — |
| Pubic Hair Peek | FLOAT | — |
| Option 01 | FLOAT | — |
| Option 02 | FLOAT | — |
| Option 03 | FLOAT | — |
| Option 04 | FLOAT | — |
| Option 05 | FLOAT | — |
| Option 06 | FLOAT | — |
| Option 07 | FLOAT | — |
| Option 08 | FLOAT | — |