Nodes/arkennemasis Nodes/arkennemasis Review Board (contact sheet + excalidraw)
ComfyUI Node

arkennemasis Review Board (contact sheet + excalidraw)

A contact sheet your client can actually click, plus the Excalidraw matrix

By Hishamahmer·Created 2 months ago·Updated 8 days ago· 9
arkennemasis Review Board (contact sheet + excalidraw)
    • html_path
    • excalidraw_path
    • report
    jobs_dirvariation/jobs
    out_dirvariation/review
    recipe_json
    product
    embed_imagestrue
    thumb_size0
    server_urlhttp://127.0.0.1:8188
    write_excalidrawtrue
    write_htmltrue

    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.

    Categoryarkennemasis/Variation

    Inputs (9)

    NameTypeDefaultDescription
    jobs_dirSTRINGvariation/jobs
    out_dirSTRINGvariation/review
    recipe_jsonoptSTRINGSupplies the axis order and each value's label and hex for the board's row and column headers.
    productoptSTRING
    embed_imagesoptBOOLEANtrueInline 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_sizeoptINT00–2048Pixels 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_urloptSTRINGhttp://127.0.0.1:8188Where the approve/reject buttons post their decisions.
    write_excalidrawoptBOOLEANtrueWrite the .excalidraw matrix - the client-facing board.
    write_htmloptBOOLEANtrueWrite the HTML contact sheet - the approve/reject surface that writes back into the job records.

    Outputs (3)

    NameTypeDescription
    html_pathSTRING
    excalidraw_pathSTRING
    reportSTRING