Nodes/MKRShift_Nodes/Studio Selection Set
ComfyUI Node

Studio Selection Set

Mark the keepers, get a CSV out

By criskb·Created 7 months ago·Updated 5 months ago· 0
Studio Selection Set
    • selection_json
    • selection_manifest_json
    • frames_csv
    • selection_summary
    • selection_count
    marked_frames12:hero|best lighting 14-15:select 18:revise|hair needs cleanup
    default_statusSELECT
    sort_outputtrue
    base_selection_json
    delivery_plan_json
    reviewer
    round_label

    Reviewing a batch means deciding what survives: which frames are keeps, which need work, which are dead. MKRStudioSelectionSet is where you record those decisions, and it's the rare review node that accepts input like a human actually talks. The default text box spells it out: 12:hero|best lighting, 14-15:select, 18:revise|hair needs cleanup. One line per frame range, a status after the colon, an optional note after a pipe. That's the whole language.

    The mechanism is a tiny parser: split the text into lines, read frame:status|note for each, apply a default_status to any frame not explicitly marked, optionally sort the output, and emit the result as structured JSON plus a CSV. It turns a note you'd write on a printout into data the rest of the Studio pipeline can consume.

    The inputs

    • marked_frames - the range lines. Formats: 12:hero, 14-15:select, 18:revise|note. Frame ranges, statuses, and notes in one string. This is the field you'll live in.
    • default_status - SELECT, APPROVE, HERO, HOLD, REVISE, or KILL. Applied to every frame you didn't explicitly mark, so an unmarked frame is a "SELECT" unless you say otherwise.
    • sort_output - sort the result by frame index (default true). Keep it on unless you're tracking review order.
    • Optional: base_selection_json (merge with a prior selection), delivery_plan_json (from MKRStudioDeliveryPlan, for context), reviewer and round_label (stamp who and which round).

    What comes out

    • selection_json - the full structured selection.
    • selection_manifest_json - the version other Studio nodes expect; feed it into MKRStudioDeliverySheet, MKRStudioReviewNotes, and MKRStudioContactSheet.
    • frames_csv - the same data as CSV, for spreadsheets and cut lists.
    • selection_summary and selection_count (INT) - the count is handy for a "3 of 40 selected" line downstream.

    Installing it

    Part of criskb/MKRShift_Nodes from Cris K B. ComfyUI Manager search "MKRShift_Nodes", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/criskb/MKRShift_Nodes
    

    Restart. No pip requirements, no models.

    The traps

    Statuses are case-sensitive and the parser expects them after the colon - 12:HERO works, 12:hero may not be what downstream expects, so stick to the listed enum values. Ranges are inclusive (14-15 covers both frames), and overlapping lines can double-mark a frame, so keep the text tidy. It's a text-format node: no fancy UI, no thumbnails. That's fine - its job is to turn your margin notes into selection_manifest_json that makes the whole Studio review pipeline speak one language.

    CategoryMKRShift Nodes/Studio/Review

    Inputs (7)

    NameTypeDefaultDescription
    marked_framesSTRING12:hero|best lighting 14-15:select 18:revise|hair needs cleanup
    default_statusCOMBOSELECT6 options: SELECT, APPROVE, HERO, HOLD, REVISE, KILL
    sort_outputBOOLEANtrue
    base_selection_jsonoptSTRING
    delivery_plan_jsonoptSTRING
    revieweroptSTRING
    round_labeloptSTRING

    Outputs (5)

    NameTypeDescription
    selection_jsonSTRING
    selection_manifest_jsonSTRING
    frames_csvSTRING
    selection_summarySTRING
    selection_countINT