Nodes/EBU PromptHelper/EBU PromptHelper Season Weather Time-Of-Day
ComfyUI Node

EBU PromptHelper Season Weather Time-Of-Day

Season, time, and weather in one roll

By burnsbert·Created 2 years ago·Updated 24 days ago· 2
EBU PromptHelper Season Weather Time-Of-Day
    • when
    • when_no_year
    • weather
    year_from1980
    year_to2025
    time_from5:00am
    time_to9:00pm
    seed0
    year_skewno skew
    time_of_day_skewno skew

    Season Weather Time-Of-Day is the most atmospheric node in EBU PromptHelper and the closest thing the pack has to a creative writing engine. It rolls a random date inside a year range you set, a random time inside a time range you set, and then generates a matching weather description - so one run might say "late afternoon during early winter of 1994, overcast with continuous light snowfall and a noticeably piercing chill." You feed the outputs into your prompt and every generation gets a coherent scene mood instead of the same default lighting. It's the node that makes a batch of "same subject, different atmosphere" images nearly free.

    How it works

    Two-stage, and the weather is derived from the datetime rather than rolled independently. First generate_random_datetime picks a year uniformly in [year_from, year_to], a day in that year, and a time uniformly between time_from and time_to (it even handles overnight ranges - if time_to is earlier than time_from, it treats the window as crossing midnight). The chosen month maps to a season phrase ("early winter", "middle of the spring", "late fall") and the chosen hour maps to a time-of-day phrase ("early morning", "late afternoon", "witching hour", "pre-dawn"). Then weather_utils.py - a big weighted dictionary keyed by season × time-of-day - picks a matching weather line. That's why the weather always fits: a winter morning rolls snow and frost, never a beach heatwave.

    The skew dropdowns are the hidden dials. year_skew and time_of_day_skew let you bias the otherwise uniform draws - "earlier of two" draws two candidates and keeps the smaller, "middle of three" draws three and keeps the median, and so on. Want the scene to feel like late night? Set time_of_day_skew to "later of two" and the range to evening hours.

    The inputs that matter

    • year_from / year_to - the year window, default 1980–2025. Note the range is inclusive on both ends.
    • time_from / time_to - the time window, default 5:00am–9:00pm, in 12-hour h:mmam/pm format.
    • seed - 0 for non-deterministic; fix it to reproduce a scene.
    • year_skew / time_of_day_skew - the bias dropdowns; "no skew" is uniform random.

    Outputs: when (e.g. "late afternoon during early winter of 1994"), when_no_year (the same without the year - handy if you want era-agnostic mood text), and weather (the description line).

    Where it fits

    The example workflow wires MY_WHEN and MY_WEATHER placeholders through the pack's Replace node, so the prompt reads like "a winter scene during late afternoon, overcast with light snow" every run with fresh specifics. Combine it with the palette node and you get coordinated mood: winter + cool blues, golden hour + warm tones. For LLM-encoded models that read prompts as instructions, this node's output is ideal raw material - concrete, sensory, and grounded.

    Install

    Part of EBU PromptHelper. ComfyUI Manager: search "EBU PromptHelper", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/burnsbert/ComfyUI-EBU-PromptHelper
    

    Restart ComfyUI. No models, no extra pip packages.

    Troubleshooting

    Two things to watch. The time strings must parse as %I:%M%p - 6:00pm works, 18:00 does not, and a malformed time raises an exception rather than degrading gracefully. And the weather wordlist is fixed: what's in weather_utils.py is all you'll ever get, so after a few hundred runs the descriptions start rhyming (they're weighted, so the pleasant ones repeat). If you want weather beyond the included vocabulary, you'd rewrite that file or route the output through an LLM - the pack's author pairs it with their EBU-LMStudio nodes for exactly that reason.

    CategoryPrompts

    Inputs (7)

    NameTypeDefaultDescription
    year_fromINT1980
    year_toINT2025
    time_fromSTRING5:00am
    time_toSTRING9:00pm
    seedINT00–18446744073709550000
    year_skewCOMBOno skew6 options: no skew, earlier of two, later of two, middle of three, earliest of three, latest of three
    time_of_day_skewCOMBOno skew4 options: no skew, earlier of two, later of two, middle of three

    Outputs (3)

    NameTypeDescription
    whenSTRING
    when_no_yearSTRING
    weatherSTRING