Nodes/Isaac's Nodes/Isaac's Weights List to Weights
ComfyUI Node

Isaac's Weights List to Weights

The one-element grab from Isaac's Nodes

By iemesowum·Created 2 years ago·Updated about a year ago· 1
Isaac's Weights List to Weights
    • weights
    weights_list

    Weights List to Weights is the most baffling node in Isaac's Nodes when you first meet it, and the most useful once you understand what it's for. It takes a list of floats and hands back just the first one. That's the entire job: weights_list[0]. No averaging, no indexing dial, no way to pick which element. Just "give me the first weight."

    Sounds useless until you remember how ComfyUI actually treats lists. When you've got a list of per-frame weights - say, from Isaac's Amplitude To Weights, which converts an audio amplitude curve into a float list - a lot of downstream nodes want one weight at a time, not the whole batch. If you're processing audio in segments or frames and your workflow hands you the full list every tick, this node is how you pluck the current value out and feed it to something that only accepts a single float.

    How it works

    The source is as short as it gets:

    def execute(self, weights_list):
        return (weights_list[0],)
    

    The input weights_list is typed as FLOAT in the schema, but it's really expected to be a list of floats - the subscripting in the code is the giveaway. Feed it the list output from Amplitude To Weights (or any compatible float list) and you get back a single weights float: the first element.

    The one-input/one-output shape is deliberate. It slots into audio-reactive AnimateDiff workflows where you've converted your music's amplitude into weights and need to drive a single per-frame parameter - ControlNet strength, AnimateDiff motion amount - with one value at a time. In that context, "grab the first weight" is exactly the operation you want when your pipeline is iterating over frames.

    Inputs and outputs

    • weights_list (required) - a list of floats. In practice, the weights output of Isaac's Amplitude To Weights, or any node handing you a float list.
    • weights - a single FLOAT, the first element of that list.

    How to install it

    Same pack, same install. ComfyUI Manager → Install Custom Nodes → search "Isaac's Nodes" (or ComfyUI_IsaacNodes) → install → restart. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/iemesowum/ComfyUI_IsaacNodes
    cd ComfyUI_IsaacNodes
    pip install -r requirements.txt
    

    Then restart ComfyUI. Like the other helper nodes here, this one is pure Python - the pack's openunmix[stempeg] dependency is for the audio unmixer, not for this.

    Common issues

    The only way to be genuinely confused by this node is to expect it to behave like an index selector. It can't pick element 3 or 7 or the last one - it takes the first, full stop. If you need indexed access, this isn't the node; reach for a proper list-index utility.

    Also worth flagging: because it returns the first element, its behavior depends entirely on the order your list arrives in. If the list feeding it isn't in the order you think, you'll get a "wrong" weight with no error to tell you so. Double-check what's upstream before you blame the node. It's a tiny utility with a single trick - and for pulling one weight out of an amplitude-derived list, it does exactly that.

    CategoryIsaac's Nodes

    Inputs (1)

    NameTypeDefaultDescription
    weights_listFLOAT

    Outputs (1)

    NameTypeDescription
    weightsFLOAT