EmAySee Morph Pipe Out
Unpack a morph pipe back into its twenty sliders
- morph_pipe
- Breast Size
- Breast Sag
- Areola Size
- Puffies
- Belly Fat
- Waist Size
- Butt Size
- Thigh Size
- Thigh Spacing
- Body Type
- Pregnant
- PHP
- Extra 01
- Extra 02
- Extra 03
- Extra 04
- Extra 05
- Extra 06
- Extra 07
- Extra 08
EmAySee Morph Pipe Out is the receiving end of the pack's pipe story. Its sibling EmAySee_MorphPipeIn bundles twenty sliders into one MORPH_PIPE wire; this node takes that wire and splits it back into twenty separate FLOAT outputs, each named exactly as it went in. In, split, done.
If you read the Pipe In article, you already know the whole deal: this pair exists so a graph with a big slider panel doesn't have to drag twenty individual wires across the canvas. You bundle at the control panel, run one clean pipe to wherever the sliders get consumed, and unpack there. It's the same pattern rgthree's Context and other pipe packs popularized - bundle what belongs together, carry it as one wire, unwrap when you need the parts.
There's a subtlety worth appreciating: because Pipe In and Pipe Out both hard-code the same twenty labels, the round trip is stable by construction. Whatever order you plugged things in on the left, you get the same named outputs on the right - Breast Size, Breast Sag, Areola Size, Puffies, Belly Fat, Waist Size, Butt Size, Thigh Size, Thigh Spacing, Body Type, Pregnant, PHP, and Extra 01 through Extra 08. No mislabeled wires, no guessing which output is which. For a 20-value bundle, that determinism is the whole value.
The inputs that matter
One input, one thing to know:
morph_pipe- the MORPH_PIPE wire fromEmAySee_MorphPipeIn. Nothing else fits here; this custom type only exists inside this pack.
The outputs are the twenty FLOATs named above. A detail from the code: if a key is somehow missing from the incoming pipe (say you hand-built a dict in a custom node), it defaults to 0.0 rather than erroring, so the unpack is defensive - you won't get a hard crash on a malformed pipe, you'll get zeros.
How it works
Mechanically it's a dict lookup: each of the twenty labels is read out of the incoming dictionary and returned as its own FLOAT. No math, no clamping, no surprises. What you put in is what you get out, preserving the −2 to 3 range and the step values from the sliders.
Installing it
Part of the EmAySee pack:
# ComfyUI Manager: search "ComfyUI_EmAySee_CustomNodes" and install
# or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes
Restart ComfyUI. No requirements.txt, no dependencies beyond what ComfyUI already has.
Common issues
The only real footgun is symmetrical with Pipe In: this node is useless without its pair, and vice versa. The MORPH_PIPE type isn't something any other pack produces or consumes, so if a workflow you downloaded references it and you only have one end of the pair, ComfyUI will complain about a missing node/type. Grab both nodes. And remember the labels are fixed - the eight Extra 01–08 slots exist precisely so you don't have to fight the naming. If you need a value that isn't in the pipe, add it to the Extra slots on the In side and it'll come out with the same name here.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| morph_pipe | MORPH_PIPE | — |
Outputs (20)
| Name | Type | Description |
|---|---|---|
| Breast Size | FLOAT | — |
| Breast Sag | FLOAT | — |
| Areola Size | FLOAT | — |
| Puffies | FLOAT | — |
| Belly Fat | FLOAT | — |
| Waist Size | FLOAT | — |
| Butt Size | FLOAT | — |
| Thigh Size | FLOAT | — |
| Thigh Spacing | FLOAT | — |
| Body Type | FLOAT | — |
| Pregnant | FLOAT | — |
| PHP | FLOAT | — |
| Extra 01 | FLOAT | — |
| Extra 02 | FLOAT | — |
| Extra 03 | FLOAT | — |
| Extra 04 | FLOAT | — |
| Extra 05 | FLOAT | — |
| Extra 06 | FLOAT | — |
| Extra 07 | FLOAT | — |
| Extra 08 | FLOAT | — |