arkennemasis Option Board (excalidraw + preview)
Judging a whole fanned-out run on one annotated board
- images
- excalidraw_path
- board
- report
Run a variation or batch job and you end up with 30 images and a decision to make. ArkOptionBoard is the answer to "how do I actually compare 30 images": it lays every result of a fanned-out run on one labelled board - an .excalidraw file you can open and annotate, plus a rendered PNG preview of the same layout for pasting into a message. The pack's framing is that this is how you judge a set rather than a picture, and for a run whose whole point is comparing options, that's the difference between a decision and a scroll.
How it works
It's INPUT_IS_LIST, which means it receives every result of the batch run in one call rather than one at a time. images comes from the image node in the batch chain. labels is one caption per image, in the same order - wire the batch node's label output and each tile gets its name. title prints a heading at the top.
The layout knobs are minimal on purpose:
columns(0) - tiles per row. 0 picks a roughly square grid from the number of options, which is what you want almost always. Cap of 24 if you ever want a thin strip.tile_size(420) - the longest edge of each tile. Bigger reads better and costs file size - 100 tiles at 420 is a few MB, so it's a real trade but not usually the bottleneck.filename(options) - base name. The genuinely nice behavior: an existing board is never overwritten. A counter is appended, so a second run sits beside the first instead of replacing the thing you were reviewing. That's the difference between "let me compare run 2 against run 1" and "well, run 1 is gone."out_dir(boards) - relative to ComfyUI's output folder, or an absolute path.write_preview_png- also writes the rendered board as a PNG. On by default, because the .excalidraw isn't a viewable image and you'll want to send the set to someone.
Tiles are uniform and letterboxed so the grid reads as a grid. The .excalidraw is generated by the pack's own board helper, so it's annotated in a way that opens cleanly in excalidraw.com or the desktop app.
Outputs: excalidraw_path, board (the rendered preview as an IMAGE you can view right in the graph), and report.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
pip install replicate httpx
Restart ComfyUI. No models or keys.
Troubleshooting
- Labels out of order: the labels list must match the images list order exactly. Wire the batch node's
labeloutput, not a hand-typed list, if you can. - Run 2 replaced run 1: it shouldn't have - check you didn't clear the output folder. The counter-appending behavior is designed to make that impossible.
- The board won't open: .excalidraw files open in excalidraw.com or the app. If your tool doesn't read them, the preview PNG is right there.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Every generated option. Comes from the image node in the batch chain — the list arrives here in one call. | |
| out_dir | STRING | boards | Relative to ComfyUI's output folder, or an absolute path. The board and its preview are written here. |
| filename | STRING | options | Base name. An existing board is never overwritten — a counter is appended, so a second run sits beside the first instead of replacing the thing you were reviewing. |
| columns | INT | 00–24 | Tiles per row. 0 picks a roughly square grid from the number of options, which is what you want almost always. |
| tile_size | INT | 42096–2048 | Longest edge of each tile on the board. Bigger reads better and costs file size — 100 tiles at 420 is a few MB. |
| write_preview_png | BOOLEAN | true | Also write the rendered board as a PNG beside the .excalidraw, for pasting into a message. |
| labelsopt | STRING | One caption per image, in the same order. Wire the batch node's `label` output. | |
| titleopt | STRING | Heading printed at the top of the board. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| excalidraw_path | STRING | — |
| board | IMAGE | — |
| report | STRING | — |