Nodes/ComfyUI-BCNodes/PostFx Theme
ComfyUI Node

PostFx Theme

The node you only need when you're chaining looks

By 0xBeycan·Created 23 days ago·Updated 3 days ago· 2
PostFx Theme
    • look
    ◄themesignature/01_portra_400►

    Here's a node whose entire job is to exist at the start of a chain. Pick a built-in film stock, and it hands the look to the next node in the line.

    What it is

    One combo widget - 34 built-in themes - and one output, look, on the POSTFX_LOOK socket. That socket is the link type between the pack's look-producing nodes and PostFx Apply, and every look node has an optional look input, which is what makes them chain in any order.

    The author's own framing is the honest way to describe it: use this only to build a chain from a named theme. If you just want signature/01_portra_400 applied to your image, pick the theme straight on PostFx Apply and skip this node entirely.

    How it works

    It loads the theme by name out of the postfx package and passes the resulting look object downstream. Nothing is applied here - no pixels move, no work is done. It's a source node for a value.

    The reason it earns its place is the chain. Take a stock you like, then put a LUT on top of it, then a couple of grain knobs, then hand the whole thing to Apply:

    PostFx Theme (portra_400) -> PostFx LUT (my_look.cube) -> PostFx Custom Look (grain up) -> PostFx Apply
    

    That's a reusable house style you can swap by changing one node. Copy it into your next workflow and the grade comes with it.

    The trap worth naming

    On PostFx Apply, a connected look overrides the theme dropdown. So if you wire a Theme node in and you've also got signature/05_cinestill_800t selected on Apply, the dropdown is inert and the Theme node wins. It's the correct design - one decision, one place - but it's the sort of thing that produces twenty minutes of "why is nothing changing when I move this dropdown".

    The corollary: don't wire a Theme node and set a theme on Apply. Pick one location for the theme decision.

    Installing it

    The PostFx nodes need the postfx package, which requirements.txt installs:

    cd ComfyUI/custom_nodes
    git clone https://github.com/0xBeycan/ComfyUI-BCNodes
    pip install -r ComfyUI-BCNodes/requirements.txt
    

    ComfyUI Manager users: search ComfyUI-BCNodes, install, let it pull the requirements. Without postfx the pack still loads and only the PostFx nodes are absent, because the import is deferred until a node actually runs. Restart ComfyUI and reload the browser tab; the nodes are under BCNodes/postfx.

    If you drop your own .cube files into the pack's luts/ folder for PostFx LUT, none of this changes - the theme list is built in, and it's the LUT dropdown that reads the folder.

    Where people get burned

    Nothing happens. An unconnected Theme node does nothing at all, and neither does one whose output isn't wired into a look input. It's a value, not an effect - and there's no preview on the node to tell you otherwise.

    Treating it as a preset browser. The names are readable (portra_400, tri_x_400, cinestill_800t) but you can't see what any of them do from the dropdown. Run PostFx Signature Sheet once on your own image instead - picking a look off a grid of your own photo is a much better use of ten minutes than auditioning them one at a time.

    Expecting look to be a magic override for the gating widgets. It carries the look - colour, grain, lens - while condition, strength, seed and batch_seed stay on Apply, where they belong, because they're about this run rather than about this look.

    CategoryBCNodes/postfx

    Inputs (1)

    NameTypeDefaultDescription
    themeCOMBOsignature/01_portra_40034 options: grain/01_fine_grain_light, grain/02_fine_grain_medium, grain/03_fine_grain_heavy, signature/01_portra_400, signature/02_gold_200, signature/03_pro_400h, +28

    Outputs (1)

    NameTypeDescription
    lookPOSTFX_LOOK—