ComfyUI Node

Prompt Core

The SickOllie prompt assembler with placement control and trigger injection

By sickollie·Created 2 months ago·Updated 27 days ago· 30
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—