ComfyUI Node

Prompt Core

The SickOllie prompt assembler with placement control and trigger injection

By sickollie·Created 2 months ago·Updated 7 days ago· 17
Prompt Core
    • final_prompt
    prompt_sourcemanual
    manual_prompt
    prompt_log_file[None]
    prompt_modeincrement
    prompt_index0
    outfit_token_AOUTFIT_A
    outfit_placement_Asmart
    outfit_log_file_A[None]
    outfit_mode_Arandomize
    outfit_index_A0
    outfit_token_BOUTFIT_B
    outfit_placement_Bsmart
    outfit_log_file_B[None]
    outfit_mode_Brandomize
    outfit_index_B0
    outfit_token_COUTFIT_C
    outfit_placement_Csmart
    outfit_log_file_C[None]
    outfit_mode_Crandomize
    outfit_index_C0
    scene_tokenSCENE
    scene_placementsmart
    scene_log_file[None]
    scene_moderandomize
    scene_index0
    name_tokenNAME
    name_value
    item_tokenITEM
    item_value
    prefix_enabledfalse
    prefix_text
    suffix_enabledfalse
    suffix_text
    prefix_suffix_separator,
    cleanup_enabledtrue
    cleanup_rules\?\[|\] \\?[()] :\s*[+-]?(?:\d+(?:\.\d*)?|\.\d+)
    saved_prompt
    trigger_tokenTRIGGER
    trigger_placementoff
    trigger_override
    outfit_source_Alog
    outfit_manual_A
    outfit_source_Blog
    outfit_manual_B
    outfit_source_Clog
    outfit_manual_C
    scene_sourcelog
    scene_manual
    main_trigger
    manual_prompt_input

    The Studio version of SickOllie's Prompt Core (SOPromptLogEngineStudio) is what Classic's prompt engine grows up into once you've lived with it for a while. It keeps everything that worked - manual or log-file source, per-stream fixed/increment/decrement/randomize/shuffle modes, the NAME/OUTFIT_A/OUTFIT_B/OUTFIT_C/SCENE/ITEM placeholder system - and adds the two things Classic users kept asking for: you get to say where each component lands, and you get proper LoRA trigger injection.

    What changed from Classic

    Placement modes. Every component stream gains a placement dropdown: smart (auto), token, append, prepend, or off. Smart looks for a matching placeholder and replaces it, appending the component if none exists. Token Only replaces only when the token is present. Append and Prepend remove the matching placeholder and put the value after or before the prompt, respectively. Off injects nothing and strips the known placeholder. This is the fix for the Classic behavior where a missing token silently meant a component never showed up - now you can force it in.

    Trigger support. There's a TRIGGER token with its own placement, plus trigger_override and an optional main_trigger input. Wire Loader Core's main_trigger output in and the trigger lands at the front of the prompt by default (when you're not using a placeholder), which is where LoRA activation words belong. The override is there for when the detected trigger is a recipe-like mess and you'd rather type ch9ractername yourself.

    Persistent prompt display, built in. Studio's Prompt Core has the persistent resolved-prompt display baked into its dashboard, which is why the standalone Persist node is Classic-only. The assembly panel shows whether each component is active, missing, waiting for a placeholder, or not placed, and only components that actually participate advance their indexes.

    Inputs and outputs that matter

    Inputs worth setting: prompt_source (manual/log), manual_prompt, prompt_log_file, the per-stream outfit_log_file_A/B/C and scene_log_file, and the placement/mode pairs. name_value is where Loader's clean_name lands; item_value (relabeled BRAND in the dashboard if you configure it) handles the configurable slot.

    The single output is final_prompt - connect it to Studio Generation Core's positive_text. That's it. Studio deliberately trimmed the fourteen Classic outputs down to one because Auto Context in Output Core reconstructs the prompt/outfit/scene context from the workflow graph instead of demanding a wire bundle.

    Installing it

    Part of the SickOllie pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/sickollie/SickOllie
    

    or ComfyUI Manager → "SickOllie". Restart, hard-refresh. Starter logs ship under the pack's Starter Content.

    Where people get burned

    The usual one is placement confusion: setting a component to Token Only when the token isn't in your template and watching nothing happen. The dashboard's placement status panel is your diagnostic - if it says "waiting for placeholder," you've got a token mismatch. And remember trigger injection defaults to off until you set a placement, so a fresh Studio workflow won't add your LoRA's trigger word until you tell it to. That's intentional; it keeps auto-detected triggers from hijacking your prompt until you've vetted them.

    CategorySick Ollie/Studio

    Inputs (50)

    NameTypeDefaultDescription
    prompt_sourceCOMBOmanual3 options: manual, input, log
    manual_promptSTRING
    prompt_log_fileCOMBO[None]5 options: [None], prompts/Creative Library/MASTER - Ready Prompts.txt, prompts/Creative Library/MASTER - Saved Recipe Prompts.txt, prompts/Creative Library/Prompts/All Prompts.txt, prompts/Creative Library/Templates/All Templates.txt
    prompt_modeCOMBOincrement5 options: fixed, increment, decrement, randomize, shuffle
    prompt_indexINT0-2147483648–2147483647
    outfit_token_ASTRINGOUTFIT_A
    outfit_placement_ACOMBOsmart5 options: smart, token, append, prepend, off
    outfit_log_file_ACOMBO[None]2 options: [None], outfits/Creative Library/MASTER - Outfit Looks.txt
    outfit_mode_ACOMBOrandomize5 options: fixed, increment, decrement, randomize, shuffle
    outfit_index_AINT0-2147483648–2147483647
    outfit_token_BSTRINGOUTFIT_B
    outfit_placement_BCOMBOsmart5 options: smart, token, append, prepend, off
    outfit_log_file_BCOMBO[None]2 options: [None], outfits/Creative Library/MASTER - Outfit Looks.txt
    outfit_mode_BCOMBOrandomize5 options: fixed, increment, decrement, randomize, shuffle
    outfit_index_BINT0-2147483648–2147483647
    outfit_token_CSTRINGOUTFIT_C
    outfit_placement_CCOMBOsmart5 options: smart, token, append, prepend, off
    outfit_log_file_CCOMBO[None]2 options: [None], outfits/Creative Library/MASTER - Outfit Looks.txt
    outfit_mode_CCOMBOrandomize5 options: fixed, increment, decrement, randomize, shuffle
    outfit_index_CINT0-2147483648–2147483647
    scene_tokenSTRINGSCENE
    scene_placementCOMBOsmart5 options: smart, token, append, prepend, off
    scene_log_fileCOMBO[None]2 options: [None], scenes/Creative Library/MASTER - Scenes.txt
    scene_modeCOMBOrandomize5 options: fixed, increment, decrement, randomize, shuffle
    scene_indexINT0-2147483648–2147483647
    name_tokenSTRINGNAME
    name_valueSTRING
    item_tokenSTRINGITEM
    item_valueSTRING
    prefix_enabledBOOLEANfalse
    prefix_textSTRING
    suffix_enabledBOOLEANfalse
    suffix_textSTRING
    prefix_suffix_separatorSTRING,
    cleanup_enabledBOOLEANtrue
    cleanup_rulesSTRING\?\[|\] \\?[()] :\s*[+-]?(?:\d+(?:\.\d*)?|\.\d+)
    saved_promptSTRING
    trigger_tokenSTRINGTRIGGER
    trigger_placementCOMBOoff5 options: smart, token, append, prepend, off
    trigger_overrideSTRING
    outfit_source_ACOMBOlog2 options: manual, log
    outfit_manual_ASTRING
    outfit_source_BCOMBOlog2 options: manual, log
    outfit_manual_BSTRING
    outfit_source_CCOMBOlog2 options: manual, log
    outfit_manual_CSTRING
    scene_sourceCOMBOlog2 options: manual, log
    scene_manualSTRING
    main_triggeroptSTRING
    manual_prompt_inputoptSTRING

    Outputs (1)

    NameTypeDescription
    final_promptSTRING