arkennemasis Review Board (contact sheet + excalidraw)
A contact sheet your client can actually click, plus the Excalidraw matrix
- html_path
- excalidraw_path
- report
The variation pipeline doesn't end when the images render - it ends when somebody approves them. ArkReviewBoard builds the review surface for that moment, in two files: an HTML contact sheet whose Approve / Reject buttons write straight into the job records, and an .excalidraw board laid out as the axis matrix for the client. One is the working tool, the other is the deliverable; the node makes both from the same job records.
The design choice worth noticing is that review is organised by axis value, not by output. A 30-variation run reviewed one image at a time is 30 decisions; reviewed as a matrix where each row is an axis value, the number of decisions scales with the axes rather than with the outputs. The client looks at the structure, not at a pile of thumbnails.
How it works
The node scans jobs_dir for delivered job records (jobs that have a master file on disk), reads recipe_json for the axis order and each value's label and hex, and lays everything out in a matrix. Approve/reject buttons POST to server_url (default http://127.0.0.1:8188, your ComfyUI) and the decision lands back in the job records - which is how the run report and store export know what actually shipped.
thumb_size defaults to 0, and that's deliberate: it means "as large as the images actually are." The board matches your source resolution instead of downscaling to some default, so nothing is lost - set 640 or 1024 only if the file gets too heavy to open.
Inputs and outputs
jobs_dir- where the job records live.out_dir- where the board files are written.recipe_json- supplies the axis order and value labels/hexes for headers.product- filter to one product.embed_images(true) - inline the thumbnails as data URIs so the HTML is self-contained and can be emailed. Off links to files on disk instead.write_excalidraw,write_html- separate switches for the two files.html_path,excalidraw_path,report.
Install and gotchas
Part of the arkennemasis pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
pip install -r ComfyUI/custom_nodes/comfyui-arkennemasis/requirements.txt
Restart, or install by repo URL through ComfyUI Manager.
The failure that confuses people first: "No delivered masters found" - the board only sees jobs that have actually been delivered, so if you haven't run Deliver yet, there's nothing to review. That's the ordering problem ArkRunCollect exists to fix, by making everything that reports on the run wait until every cell is delivered. And if the Approve buttons don't do anything, it's because the browser opening the HTML can't reach server_url - same machine, same port, and it works; send the file elsewhere and the buttons need a reachable address.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| jobs_dir | STRING | variation/jobs | — |
| out_dir | STRING | variation/review | — |
| recipe_jsonopt | STRING | Supplies the axis order and each value's label and hex for the board's row and column headers. | |
| productopt | STRING | — | |
| embed_imagesopt | BOOLEAN | true | Inline the thumbnails as data URIs so the HTML file is self-contained and can be emailed. Off links to files on disk instead, which keeps it small. |
| thumb_sizeopt | INT | 00–2048 | Pixels per image on the board, which also sets the tile size and therefore how big the finished matrix picture is. Leave it at 0 for FULL SIZE - it matches whatever resolution your images actually are, so nothing is lost. Set 640 or 1024 only if the picture is too heavy to open. |
| server_urlopt | STRING | http://127.0.0.1:8188 | Where the approve/reject buttons post their decisions. |
| write_excalidrawopt | BOOLEAN | true | Write the .excalidraw matrix - the client-facing board. |
| write_htmlopt | BOOLEAN | true | Write the HTML contact sheet - the approve/reject surface that writes back into the job records. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| html_path | STRING | — |
| excalidraw_path | STRING | — |
| report | STRING | — |