BV LUT Loop Result (Prototype internal)
Where the loop's final image comes out
- loop_state
- final_image
This is the final stop on a LUT loop's hidden internal graph: the node that pulls the finished image out of the loop state and hands it back to you. Like the other "(Prototype internal)" nodes, it's hidden from the normal menus and built automatically by BV LUT Loop End when a loop runs - you're not meant to wire it by hand.
If the loop machinery is a looped conveyor belt, this is the off-ramp. Everything before it keeps circling the loop state through jobs; this node is where the circling stops and a plain IMAGE comes out the other side.
How it works
One input: loop_state - the same BV_LUT_LOOP_STATE the loop has been carrying. Its extract method does two things:
- Validates the state with
allow_complete=True, which permits the job index to sit exactly at the end of the plan (normal loop states only allow indices inside the plan). - Checks that every job has actually been processed - the index must equal the plan's job count. If the loop ended early, it raises "BV LUT Loop ended before every job was processed" rather than silently returning a half-graded image.
Then it returns the accumulated current_image as final_image (IMAGE). That's it - one input, one output, a guardrail and a return.
When you'd see it
In debug/legacy views, you'll see it sitting at the tail of the expanded graph Loop End builds, receiving the state from BV LUT While End (Prototype internal). Understanding it matters mostly for one debugging scenario: if your loop's final image is missing or you get the "ended before every job" error, you're looking at this node's validation doing its job - the loop closed before the plan was exhausted, so there's nothing trustworthy to return.
How to install
Part of BV Node Pack:
cd ComfyUI/custom_nodes
git clone https://github.com/BlackVortexAI/bv_nodepack.git
Restart ComfyUI and hard-refresh, or install via ComfyUI Manager → "BV Node Pack". No models to download.
Common issues
- "BV LUT Loop ended before every job was processed" - the only real failure this node surfaces, and it's a safety check, not a bug: the loop state says not all jobs ran, so it refuses to fabricate a result. Look upstream at the plan length and the while-loop condition.
- No final image - if you're constructing loops manually and skipped this node, you're holding a
loop_state, not an image. That's exactly the problem this node solves - which is why Loop End builds it for you automatically.
The whole loop system is "prototype" scaffolding the pack keeps out of your way. This node is the quiet exit sign at the end of the tunnel.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| loop_state | BV_LUT_LOOP_STATE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| final_image | IMAGE | — |