EvaluateMultiple3
Run your own Python across three inputs at once
- in1
- in2
- in3
- out1
- out2
- out3
Same family as EvaluateMultiple1 - you write Python, it runs - but with three lanes instead of one: three optional inputs (in1, in2, in3), one shared expression box, three outputs (out1, out2, out3).
Why three lanes instead of three separate nodes
The point of the wider node isn't more power, it's less repetition. Say you've got a resolution value and want to derive several related things from it at once - a rounded-to-multiple-of-8 version, an aspect ratio string, a formatted label for a filename. Doing that with three EvaluateMultiple1 nodes means writing the same setup logic three times, once per node. With EvaluateMultiple3 it's one expression, reading whichever inN you wired up, setting all three outN values in the same block of code.
Inputs and outputs
expression(multiline STRING) - your Python. Starts blank, same as the single-input version.input_count(INT, 1–20, default3) - same widget as every other EvaluateMultiple/EvaluateListMultiple variant. This node's "3" is only where it starts; drag the slider and it grows moreinN/outNsockets on demand.print_to_console- flip toTrueto see what came out in your ComfyUI terminal while you're getting an expression right.- Optional:
in1,in2,in3(all type*). - Outputs:
out1,out2,out3.
The same caution as its siblings
This is genuine Python execution, not a filtered expression language - unlike rgthree-comfy's Power Puter, which deliberately parses input to an AST and blocks file access, network calls, and imports, RuiquNodes' own README describes this family as running "any fragment of Python code" without qualification. Write what you understand, and don't paste an expression from someone else's workflow without reading it first.
Installing it
ComfyUI Manager: search RuiquNodes, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ruiqutech/ComfyUI-RuiquNodes
then restart. No models or extra dependencies to fetch.
Common issues
Only some of the three outputs come through, the rest stay None. Check your expression actually assigns every outN your graph reads downstream - an output your code never touches just stays unset, and ComfyUI won't warn you about it, it'll just hand a None to whatever's wired to it.
The node feels cramped at 3 lanes. That's what input_count is for - you don't need to switch to EvaluateMultiple6 or EvaluateMultiple9, just raise the slider on this one and rewire the new sockets.
A syntax error kills the queue. The traceback in your console will point at the line in your expression box - read it the same way you'd read any Python error, because that's exactly what it is.
Not sure whether to use in1/in2/in3 or all of them. They're all optional - you don't have to wire up every socket just because it exists. A three-output node fed by a single in1 is perfectly normal if the expression only needs one input to derive three related outputs; leave in2 and in3 disconnected rather than forcing a wire in for the sake of it.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| expression | STRING | — | |
| input_count | INT | 31–20 | — |
| print_to_console | COMBO | 2 options: False, True | |
| in1opt | * | — | |
| in2opt | * | — | |
| in3opt | * | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| out1 | * | — |
| out2 | * | — |
| out3 | * | — |