Nodes/comfyui-jbnodes/WOF Print Intent
ComfyUI Node

WOF Print Intent

The metadata node that tells the darkroom what you wanted

By AlbertJBurton·Created 6 months ago·Updated 3 months ago· 1
WOF Print Intent
    • print_intent
    tonal_emphasisundefined
    contrast_classgrade_2
    paper_stockilford_galerie_fb_matt
    print_finishnone
    print_finish_strength1.0
    developerDektol 1:2
    temperature20.0
    development_time2.0
    agitationstandard
    notes

    Not every node processes pixels. WOFPrintLab produces zero images, touches zero latents, and is still one of the more interesting nodes in this pack - because it's the pack's attempt to capture intent as machine-readable metadata. It defines a "print intent" - tonal emphasis, contrast grade, paper stock, finish, developer, agitation - and hands it downstream as a WOF_PRINT_INTENT object that other nodes can validate against.

    The clue is in the name: WOF is the pack's "WOF Post-Processing Schema," a defined metadata format anchored to a schema file in the repo. The node's own description is blunt about it: "Does not process images - downstream nodes consume the print_intent dict." So what's it for? Reproducibility and self-documentation. You say what print you intended, and the pipeline can check that your choices are coherent - a pushed-to-3200 stock demanding a Grade 5 contrast class with a soft-high-key tonal emphasis is the kind of mismatch the schema exists to catch.

    How it works

    Three required fields define the core intent:

    • tonal_emphasis - the character of the print: neutral, full_scale, high_key_soft, high_key_contrast, low_key, crushed_blacks, zone_system_iii_viii, highlight_detail_viii, shadow_detail_iii, compressed_midtones, solarized, or undefined. These read like a photographer's brief, because that's exactly what they are.
    • contrast_class - the paper grade the print targets: grade_00 through grade_5. This is the metadata twin of the PrintLab contrast filters.
    • paper_stock - a string naming the paper (default ilford_galerie_fb_matt).

    Then the optional fields add the full darkroom recipe: print_finish (none, straight, selenium_light/heavy, warmtone, cooltone, lith) with print_finish_strength, developer (default "Dektol 1:2"), temperature (15–25°C), development_time (0.5–30 min), agitation (stand/standard/continuous), and a free-text notes field.

    Output is a single print_intent of type WOF_PRINT_INTENT. That dict is what downstream WOF-aware nodes consume - PromptLab, for example, accepts a wof_print_intent input and validates that the prompt's tonal/contrast metadata is compatible with the selected film stock and era.

    When to use it

    • When you're building reproducible workflows and want the "how should this print look" decision recorded in the graph, not in your head.
    • When you want PromptLab's validation to steer prompt choices toward a coherent stock/print combo.
    • Honestly, when you're new to it, it's a way to learn the vocabulary of darkroom intent without touching chemicals - the schema is a surprisingly good glossary.

    Install

    Pack standard:

    cd ComfyUI/custom_nodes
    git clone https://github.com/AlbertJBurton/comfyui-jbnodes.git
    cd comfyui-jbnodes
    pip install -r requirements.txt
    

    Restart ComfyUI, or ComfyUI Manager → "comfyui-jbnodes."

    Gotchas

    • If no downstream node consumes print_intent, this node does literally nothing to your image. Don't drop it into a graph expecting a visual change.
    • The schema is the pack author's own design, not a community standard - don't expect other packs to understand WOF_PRINT_INTENT.
    • The paper_stock, developer, and notes fields are free text, so spelling consistency is on you - the schema validates enum fields but won't catch a typo'd paper name.
    CategoryJBNodes/WOF

    Inputs (10)

    NameTypeDefaultDescription
    tonal_emphasisCOMBOundefined12 options: undefined, neutral, full_scale, high_key_soft, high_key_contrast, low_key, +6
    contrast_classCOMBOgrade_27 options: grade_00, grade_0, grade_1, grade_2, grade_3, grade_4, +1
    paper_stockSTRINGilford_galerie_fb_matt
    print_finishoptCOMBOnone7 options: none, straight, selenium_light, selenium_heavy, warmtone, cooltone, +1
    print_finish_strengthoptFLOAT1.00–2
    developeroptSTRINGDektol 1:2
    temperatureoptFLOAT20.015–25
    development_timeoptFLOAT2.00.5–30
    agitationoptCOMBOstandard3 options: stand, standard, continuous
    notesoptSTRING

    Outputs (1)

    NameTypeDescription
    print_intentWOF_PRINT_INTENT