Nodes/Dragos Scene Builder/Dragos Prompt Loader
ComfyUI Node

Dragos Prompt Loader

The system prompt that makes an LLM turn your scene JSON into a real image prompt

By drago87·Created 6 months ago·Updated 15 days ago· 1
Dragos Prompt Loader
    • STRING
    prompt
    info_text
    prompt_text

    Here's the thing nobody tells you about the Dragos Scene Builder pipeline: it doesn't actually generate prompts. It generates structured scene data, and getting from that JSON to a prompt your image model understands is a job it outsources to an LLM. Dragos Prompt Loader is the node that equips that LLM with the instructions it needs.

    The mechanism is gloriously simple. The node ships a set of prompt files - one per model family - and loads whichever you pick. Each file is a system prompt telling the LLM exactly how to convert the scene JSON into that model's preferred prompt format. It's the piece that respects the messy reality that different models want radically different prompts: the Pony file demands score_9, score_8_up... quality tags before anything else, the Z-Image file demands a technical prose "Director's Brief" with lens names, and so on. No single prompt format survives contact with all of them, so the pack just ships eleven.

    How it works

    Pick a prompt from the dropdown - AuraFlow, Flux 1, Flux 2 Klein, Illustrious, NoobAI, Pony, Qwen, SD1.5, SD3.5, SDXL, or Z-Image. The node reads the matching .txt file from the pack's web/prompts folder, extracts the <prompt> block (the <info> block is just documentation), and outputs that instruction text as a string. The file contents use {prompt} as a placeholder where your compiled scene JSON gets inserted - that substitution happens inside your LLM node, not here.

    The optional text inputs are escape hatches: info_text shows you the file's documentation, and prompt_text lets you type your own version that overrides the file entirely. If you've customized a conversion recipe, that's where it goes.

    How it wires into the real workflow

    The pack's intended chain is: Structured Builder/Variables/Objects → Scene Compiler → an LLM node → your sampler. The compiler's JSON string goes into the LLM node's first text input, and this loader's output goes into the prompt slot. The author recommends ComfyUI-Z-Image-Utilities as the LLM backend, since the shipped prompts are written for its input layout.

    For the LLM itself, the README recommends a local GGUF - specifically Llama-Joycaption-Beta-One-Hf-Llava-Q4_K, a quantized captioning model small enough to run on CPU while your GPU works the image model. That's a deliberate, sensible choice: the conversion is cheap work, so why burn VRAM on it?

    One warning from the author worth taking seriously: the prompts are designed to allow NSFW, not to prevent it. Run this against a public API like ChatGPT and you're asking for a ban or a burned token budget. Use a local model.

    Installing the pack

    cd ComfyUI/custom_nodes
    git clone https://github.com/drago87/Dragos-SceneBuilder
    

    Then restart ComfyUI - or search "Dragos Scene Builder" in ComfyUI Manager. The pack itself has no pip dependencies and downloads no models. The LLM model and the LLM backend pack are on you, and they're the only heavy parts of this whole workflow.

    Common gotchas

    • The LLM backend is not included. Install ComfyUI-Z-Image-Utilities (or any LLM node) separately, and grab the GGUF model yourself. If you skip the LLM entirely, this node degrades to a fancy text-file reader.
    • prompt_text beats the file. If the box has content, that's what goes out. A stale edit silently overrides the dropdown selection.
    • Wrong wiring = nonsense. Compiler output to the first text box, loader output to the prompt slot. The README stresses this for a reason.
    CategoryDragos/Scene Builder

    Inputs (3)

    NameTypeDefaultDescription
    promptCOMBO11 options: AuraFlow, Flux 1, Flux 2 Klein, Illustrious, NoobAI, Pony, +5
    info_textoptSTRING
    prompt_textoptSTRING

    Outputs (1)

    NameTypeDescription
    STRINGSTRING