Nodes/BilboX's ComfyUI Custom Nodes/BilboX PromptGeek Photo Prompt
ComfyUI Node

BilboX PromptGeek Photo Prompt

The prompt builder that lets you talk like a photographer

By syllebra·Created 3 years ago·Updated 11 months ago· 145
BilboX PromptGeek Photo Prompt
    • full_composed_prompt
    • subject_only
    modal_combostrue
    style
    subject
    framing
    setting_background
    lighting
    camera_angle
    camera_properties
    film_types
    lenses
    filters_effects
    photographers
    preview
    log_promptNo

    Type "photorealistic" into a prompt box and you get the same generic prettiness as everyone else. The advice that actually works is to describe the scene the way a photographer would - real camera, real lens, real film stock, real light. That's the exact vocabulary BilboX PromptGeek Photo Prompt hands you, pre-curated from PromptGeek's paid "Creating Photorealistic Images With AI" book data. It's a photorealistic prompt builder in dropdown form.

    What makes it different from the usual prompt-styler is that it's not just text. Every style, lighting setup, film type, and camera in the lists has a description and a couple of example images, and the node shows them to you as you hover. You get two preview modes. modal_combos (on by default) pops a fullscreen scrollable window where hovering shows details and clicking selects and closes; switch it off and you get compact tooltips instead. So you're not guessing what "chiaroscuro" is supposed to do - you see example shots first. That's the whole point of the node, and it's why people find it.

    How it works

    The heavy lifting happens in the browser, not in Python. The pack ships a JSON file with nine curated categories: 18 styles, 20 lighting setups, 20 camera properties, 12 film types, and 38 named photographers, plus framing, camera angle, lens, and filter/effect lists. The dropdowns you see are built straight from that file. When you pick combinations, the frontend JavaScript assembles them into a sentence following the template:

    [style] photo of [subject], [framing], [setting/background], [lighting],
    [camera angle], [camera properties], [film types], [lens],
    [filters/effects], in the style of [photographer]
    

    and writes the result into the read-only preview box at the bottom of the node. The Python side is a thin pass-through: it returns that preview string and your subject text, and that's it.

    The inputs and outputs that matter

    You'll actually set a few of these, and the rest are bonus:

    • subject - the one free-text field that matters. Everything else is a dropdown. Type your subject, key features, pose, extra details.
    • style and lighting - the dropdowns that set the photographic mood and direction.
    • camera_properties, film_types, and photographers - where the realism comes from. Naming a real camera body, a film stock like Kodak Portra or Cinestill 800T, and an actual photographer does more work than any quality-spam words, and this is that advice as a menu.
    • framing, camera_angle, lenses, filters_effects, setting_background - optional refinements.
    • log_prompt - set to Yes to print the composed prompt to the console, handy when you're checking what actually went to the sampler.

    Outputs are two STRINGs. Wire full_composed_prompt into the positive input of a CLIP Text Encode. subject_only gives you just your subject line, if you want to condition on it separately.

    Install

    Install it like any custom node pack. If you have ComfyUI Manager, search for BilboX's ComfyUI Custom Nodes (or just "BilboX") and hit Install. The manual route is the same as every other pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/syllebra/bilbox-comfyui
    

    then restart ComfyUI. (The README says custom-nodes with a hyphen - that's a typo; the real folder is custom_nodes.) There are no model files to download; everything the node needs ships in the repo. It pulls a few Python deps - numpy, imageio, opencv - on first load.

    Troubleshooting

    Honest warning: this is the aging part of the pack. The author's last real update was 1.0.0 for the registry, and ComfyUI's frontend has moved since. In April 2025 a user reported that the preview feature - the main draw - had broken after a ComfyUI UI change, and shipped his own fix as a fork (ruben-bilbox-comfyui). So if your dropdowns are there but previews won't pop, you're not doing anything wrong: update ComfyUI first, and if it still misbehaves, that fork is the fallback. The prompt composing itself still works fine; it's the fancy preview chrome that rots.

    One pack-level thing worth knowing: the pack also registers a right-click Reboot menu that can lock, log out, reboot, or shut down the machine ComfyUI runs on. Harmless on your own PC. Exposing an unauthenticated ComfyUI instance to the internet turns that into a remote off switch for strangers - don't do that with any node pack, this one included.

    CategoryBilboX

    Inputs (14)

    NameTypeDefaultDescription
    modal_combosBOOLEANtrue
    styleCOMBO19 options: , abstract, analogue, beauty, candid, documentary photography, +13
    subjectSTRING
    framingCOMBO5 options: , close up on face, full body, head shot, upper body
    setting_backgroundSTRING
    lightingCOMBO21 options: , bounced lighting, candlelight, chiaroscuro, cinematic lighting, soft diffused lighting, +15
    camera_angleCOMBO5 options: , dutch angle, from above/high angle, from below/low angle, eye level
    camera_propertiesCOMBO21 options: , Aaton LTR, ARRI ALEXA 65, Bolex H16, RED Digital Cinema Camera, Canon EOS 5D, +15
    film_typesCOMBO13 options: , Agfa Vista, Cinestill 800T, Ektar 100, film grain, Ilford HP5 Plus, +7
    lensesCOMBO4 options: , 50mm, 8mm Fisheye Lens, Voigtländer Nokton 50mm f1.1
    filters_effectsCOMBO20 options: , black and white, color filter, bokeh, desaturated, grunge filter, +14
    photographersCOMBO39 options: , Alberto Seveso, Alex Timmermans, Alfred Stieglitz, Ando Fuchs, Anne Brigman, +33
    previewSTRING
    log_promptCOMBONo2 options: No, Yes

    Outputs (2)

    NameTypeDescription
    full_composed_promptSTRING
    subject_onlySTRING