Nodes/arkennemasis Nodes/arkennemasis Prompt At (2B · one variation's prompt)
ComfyUI Node

arkennemasis Prompt At (2B · one variation's prompt)

The node that picks one prompt from the batch and bolts the locks on

By Hishamahmer·Created 2 months ago·Updated 8 days ago· 9
arkennemasis Prompt At (2B · one variation's prompt)
    • prompt
    • key
    • report
    prompts_json[]
    cell_json{}
    index0
    recipe_json
    plate_lock_json
    append_lockstrue
    state_dimensionstrue

    Step 2A gave you one big JSON array holding every variation's prompt. ArkPromptAt is step 2B: it pulls one prompt out of that array by index, and then it does the part that actually keeps a product-variation set honest - it appends the identity lock and the scene lock verbatim. The authored part varies. The fidelity part cannot.

    That split is the whole design. If you let a language model write each prompt free-form, the incidental wording drifts and the camera drifts with it. This node assumes the LLM's drafted change description is fine but never trusts it with the stuff that must stay identical: the product's proportions, the framing, the lighting, the shadow. Those come from the recipe as constants and get glued on here, byte-identical every time.

    Why the plate lock is the one to wire

    The hosted image backends this pipeline feeds ignore the tool's size parameter - asking for 1024×1536 and 1536×1024 both come back the same square-ish canvas. The only way to control output shape is to say it in the prompt. That's what plate_lock_json is for: the node reads the locked plate's exact pixel size and aspect and writes a sentence stating the canvas you want. Without it the model picks its own shape and reframes the product, which fails every downstream frame check. It's marked optional in the schema but the tooltip is blunt - wire this.

    The inputs that matter

    • prompts_json - the LLM's answer from step 2A.
    • cell_json - which variation this instance is, so the output key matches.
    • index - which prompt in the array this copy of the node pulls.
    • recipe_json - supplies the two locks. Without it, the authored prompt goes out alone and nothing anchors identity.
    • append_locks - default true. Turn it off only to see what the model wrote on its own; it's a debugging switch, not a delivery mode.
    • state_dimensions - default true. Appends the plate's exact pixels and aspect to every prompt. Needs plate_lock_json.

    Outputs

    • prompt - the finished string, wire it into the image generation node.
    • key - the cell key, so the right prompt lands on the right record.
    • report - human-readable status.

    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 two failure modes are both wiring mistakes. Missing plate_lock_json and the model re-frames the product. append_locks off and identity isn't anchored - fine for curiosity, useless for delivery. If your variations come back looking like different products rather than different colours, check those two links before you blame the generator. This node is pure string assembly, so there's nothing else to go wrong.

    Categoryarkennemasis/Variation

    Inputs (7)

    NameTypeDefaultDescription
    prompts_jsonSTRING[]The LLM's answer from step 2A.
    cell_jsonSTRING{}
    indexINT00–100000
    recipe_jsonoptSTRINGSupplies the two locks. Without it the authored prompt is sent alone and identity is not anchored.
    plate_lock_jsonoptSTRINGWire this. The hosted image backend IGNORES the tool's size field, so the ONLY way to control the output shape is to state it in the prompt — and the shape that is wanted is always the locked plate's. Without it the model picks its own canvas and reframes the product.
    append_locksoptBOOLEANtrueAppend the identity and scene locks verbatim. Off only to see what the model wrote on its own.
    state_dimensionsoptBOOLEANtrueAppend the plate's exact pixel size and aspect to every prompt. Requires plate_lock_json.

    Outputs (3)

    NameTypeDescription
    promptSTRING
    keySTRING
    reportSTRING