Nodes/MKRShift_Nodes/Studio Delivery Plan
ComfyUI Node

Studio Delivery Plan

The one file name that never changes again

By criskb·Created 7 months ago·Updated 6 months ago· 0
Studio Delivery Plan
    • filename_prefix
    • subfolder
    • review_title
    • manifest_notes_json
    • delivery_plan_json
    ◄projectMKRShift Production►
    ◄sequenceSEQ_01►
    ◄shotA001►
    ◄take1►
    ◄version_tagv001►
    ◄deliverableReview►
    ◄departmentLookdev►
    ◄artist►
    ◄client►
    ◄task►
    ◄round_label►
    ◄reviewer►
    ◄custom_badge►
    ◄date_text►
    ◄naming_modeEditorial►
    ◄extensionpng►
    ◄include_taketrue►
    ◄include_datetrue►
    ◄include_artistfalse►
    ◄include_clientfalse►
    ◄slate_json►
    ◄review_frame_info►
    ◄contact_sheet_info►
    ◄selection_manifest_json►
    ◄notes_json{}►

    Every studio has that person who renames deliverables by hand and every file ends up as final_v2_REAL_v3_use_this.png. MKRStudioDeliveryPlan is the pack's answer: one node that holds every naming and metadata decision for a shot - project, sequence, shot, take, version, deliverable type, department, client, reviewer - and emits a consistent filename prefix plus a delivery_plan_json that every other Studio node can consume. Define it once, and slate, review frames, contact sheets, delivery sheets, and notes all agree on the same identity.

    This is the spine of the MKRShift Studio pipeline. The other nodes' optional delivery_plan_json inputs exist to be fed by this. So the smart way to build a review workflow is: MKRStudioDeliveryPlan first, then wire its JSON into everything downstream.

    The inputs that matter

    • project / sequence / shot / take / version_tag - the identity core. These are what end up in the filename, so get them right the first time.
    • deliverable - Review, Client Selects, Contact Sheet, Turnover, or Social Cut. This changes how the plan presents itself (a Contact Sheet deliverable expects a contact sheet; a Turnover expects an asset manifest).
    • naming_mode - Compact, Editorial, or Client Friendly. This is the file-naming dialect: compact is short and pipeline-friendly, editorial is descriptive, client friendly drops the cryptic tokens.
    • include_take / include_date / include_artist / include_client - toggles for what lands in the filename. Client-friendly mode + include_client = a filename a client can parse.
    • extension - default png; the file type for the deliverable.

    Optional inputs let you fold in the other Studio nodes' output - slate_json, review_frame_info, contact_sheet_info, selection_manifest_json, notes_json - so the plan reflects the whole review session, not just the shot card.

    What comes out

    • filename_prefix and subfolder - wire these into the pack's save/publish nodes and your exports land with the agreed names in the agreed folders.
    • review_title - the title for the review package, derived from your metadata.
    • manifest_notes_json - notes and manifest material combined.
    • delivery_plan_json - the plan itself; the input to MKRStudioDeliverySheet and MKRStudioReviewNotes.

    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 trap

    The plan only helps if it's actually wired through. If you type the same metadata into the slate, the review frame, and the save node separately, you're back to hand-maintained naming and this node is decoration. The payoff is in the wiring: let the plan be the single source of truth and the whole Studio cluster stays in sync. It's plumbing, but it's the plumbing that kills the _FINAL_v4 filenames.

    CategoryMKRShift Nodes/Studio/Delivery

    Inputs (25)

    NameTypeDefaultDescription
    projectSTRINGMKRShift Production—
    sequenceSTRINGSEQ_01—
    shotSTRINGA001—
    takeSTRING1—
    version_tagSTRINGv001—
    deliverableCOMBOReview5 options: Review, Client Selects, Contact Sheet, Turnover, Social Cut
    departmentCOMBOLookdev7 options: General, Lookdev, Animation, Lighting, Comp, Editorial, +1
    artistSTRING—
    clientSTRING—
    taskSTRING—
    round_labelSTRING—
    reviewerSTRING—
    custom_badgeSTRING—
    date_textSTRING—
    naming_modeCOMBOEditorial3 options: Compact, Editorial, Client Friendly
    extensionSTRINGpng—
    include_takeBOOLEANtrue—
    include_dateBOOLEANtrue—
    include_artistBOOLEANfalse—
    include_clientBOOLEANfalse—
    slate_jsonoptSTRING—
    review_frame_infooptSTRING—
    contact_sheet_infooptSTRING—
    selection_manifest_jsonoptSTRING—
    notes_jsonoptSTRING{}—

    Outputs (5)

    NameTypeDescription
    filename_prefixSTRING—
    subfolderSTRING—
    review_titleSTRING—
    manifest_notes_jsonSTRING—
    delivery_plan_jsonSTRING—