Protoface Runway Aleph 2 Keyframe Position
The Aleph 2 keyframe position helper
- value_out
A node with a single text field is not normally worth a page. This one is, because it looks like a duplicate of a dozen value nodes you already have and it very much isn't. It's a typed helper that only plugs into one specific list input, and if you grab the wrong one out of the Add Node menu you'll spend ten minutes wondering why ComfyUI won't let you connect it.
What it's for
Runway Aleph 2's video edit takes optional keyframe guidance: some images to anchor the edit, and a matching list of positions saying where each image belongs - first, last, or a timestamp in seconds. That position list isn't a plain string field in ComfyUI; it's a list input that grows as you connect items, and each item has to arrive as a structured value.
So the Protoface pack generates a helper node for it. The display name is Protoface Runway Aleph 2 Keyframe Position, the category is Protoface/Structured Controls, and its whole job is to carry one position string into the edit node's keyframe_positions list.
How it works
The pack builds these helpers on demand from the model's public schema. For a list control whose items are simple values, the helper is just that value with a socket attached - here a single STRING input called value, defaulting to empty.
The output is the interesting part: value_out, typed PROTOFACE_VALUE_00404e686415370f. That's not a generic string. The type name is a digest of the item schema, so it's unique to Aleph 2's keyframe position contract. Two consequences follow, and both are features:
- It only connects to Aleph 2's
keyframe_positionsinput. Not to a Kling shot list, not to a Pika transition, not to a text prompt. The type system refuses. - If the schema ever changes upstream, the digest changes and a new helper node appears. Your old saved workflow keeps its old helper, marked archived, instead of silently reinterpreting your value under new rules.
On the receiving node, keyframe_positions is a mode dropdown. Switch it to Set and the list input appears with item_1, item_2, … sockets; connect one helper per socket. The pack orders items by that trailing number, so item_1 pairs with the first keyframe image and item_2 with the second. Order is the pairing mechanism - there's no index field, just position in the list.
What goes in value, per the field's own description on the Aleph node: first, last, or a timestamp in seconds. Both lists cap at five entries, so a five-keyframe edit is the ceiling.
Inputs and outputs, plainly
value(STRING, required): one position.value_out(typedPROTOFACE_VALUE_00404e686415370f): wire into Aleph 2'skeyframe_positionslist.
It isn't an output node and it runs nothing remotely. It costs nothing. It only needs the other Protoface nodes to be installed.
Install
It ships with the pack, so:
cd ComfyUI/custom_nodes
git clone --branch v0.1.0 --depth 1 https://github.com/protoface-ai/protoface-comfyui.git protoface
python -m pip install -r protoface/requirements.txt
or Manager → Protoface → protoface-nodes → restart → reload the browser. ComfyUI 0.41.0+, Python 3.10+. No key needed for the helper itself - but the node it feeds does need one, entered via the Protoface panel in the lower right.
Where people get stuck
Sorting. These helpers are plumbing, and the KB's node-plumbing notes are right that plumbing is where graphs go to become unreadable. With five positions and five images, leave the item_N numbering visible and don't shuffle wires.
The wrong helper. Same pack, several identically-shaped "Position"/"Shot"/"Transition" nodes. If the socket won't connect, you have the wrong one; check the destination control's type rather than rewiring blindly.
And the elephant: Aleph 2 bills per input second at roughly 185 credits, so the keyframes you're carefully positioning are steering an expensive job. Get the positions right before you queue, not after.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| value | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value_out | PROTOFACE_VALUE_00404e686415370f | — |