Nodes/arkennemasis Nodes/arkennemasis Instruction Brief (1A · base system prompt)
ComfyUI Node

arkennemasis Instruction Brief (1A · base system prompt)

Teach the model to write its own instructions

By Hishamahmer·Created 2 months ago·Updated 8 days ago· 9
arkennemasis Instruction Brief (1A · base system prompt)
    • system_instructions
    • product_brief
    intake_json{}
    base_instructions
    operator_notes
    regions

    ArkInstructionBrief is the first step of the arkennemasis Variation pipeline's LLM-driven setup, and it's a genuinely clever bit of prompt architecture. It builds the two texts you feed into an LLM at the very start: the fixed, product-neutral base system instructions, plus a brief describing this product's axes. Feed both to an LLM together with the base photograph, and what comes back is Step 1B - the customised system instructions for this product, written by the model after actually looking at the product.

    The reason for the two-step dance is in the base_instructions default text, which is worth reading in full because it's the whole philosophy of the pack: the first model's job is not to write variation prompts. Its job is to write the system instructions that a second model will follow when it writes those prompts. That second model is the one that produces the actual variation prompts, and the instruction-brief model is constrained to cover five things: what the product is (only what's visible - no speculating about brand or purpose), which part each axis changes (and that everything else stays untouched), how the changed part should be described, what must never change, and house style.

    This is the "write the instructions, never the prompts" layer that keeps the whole pipeline consistent - and it's why the default text ends with "Do not output JSON. Do not add commentary." The author knows exactly what happens when you let an LLM ramble.

    What you set

    • intake_json (required) - the normalised client sheet from Variation Intake. The node reads the product name, the variation axes, each value and whether it's a hex colour, a reference image, or both, and assembles the brief from that.
    • base_instructions - the fixed Step 1A text. It's product-neutral by design and ships as the default; you can edit it, but the tooltip warns it's what makes the pipeline portable across products.
    • operator_notes - free-text direction the photograph can't express: "the glass is crushed, keep the crinkle structure", "matte not glossy". These take priority over the model's own reading of the photo, and the brief marks them as such.
    • regions - the plate's real region names, so the model refers to parts by the names the rest of the pipeline uses instead of inventing its own vocabulary.

    Outputs

    • system_instructions - the fixed base text, passed through verbatim.
    • product_brief - the assembled brief describing this product's axes, values and notes.

    Both are STRINGs meant to be wired (along with the plate image) into an LLM node - the pack's Codex LLM or Replicate LLM both work - as the system prompt and the user content for the Step 1B call.

    Where it sits and how to install

    It's the "1A · base system prompt" step the pack labels in its node description - it runs once per product at setup time, before any generation. It needs no model of its own; it's pure text assembly from the intake JSON.

    It ships with comfyui-arkennemasis:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Hishamahmer/comfyui-arkennemasis
    pip install replicate httpx
    

    restart, and it's under arkennemasis/Variation. No models, no API keys for the node itself - the LLM call happens downstream.

    The mistake people make is treating this as optional and skipping straight to prompt generation. Don't. The whole consistency guarantee of the pipeline - every delivered image shows the same physical object differing only in the specified attribute - is seeded here, in the quality of the instructions the brief produces. A lazy Step 1A produces a model that invents the product's details, and no amount of downstream verification can un-invent them.

    Categoryarkennemasis/Variation

    Inputs (4)

    NameTypeDefaultDescription
    intake_jsonSTRING{}
    base_instructionsoptSTRING1A. Product-neutral by design — it says how to write instructions, never what the object is.
    operator_notesoptSTRINGFree-text direction for this product: 'the glass is crushed, keep the crinkle structure', 'matte not glossy'. Anything the photograph cannot say for itself.
    regionsoptSTRINGOptional. The plate's real region names, so the model refers to parts by the names the rest of the pipeline uses.

    Outputs (2)

    NameTypeDescription
    system_instructionsSTRING
    product_briefSTRING