Nodes/UCLA Daily/UCLA Daily: Data Init
ComfyUI Node

UCLA Daily: Data Init

The node that makes UCLA Daily re-fetch every run

By jbrick2070·Created 5 months ago·Updated 5 months ago· 0
UCLA Daily: Data Init
    • ucla_data
    report_nameUCLA_Daily_Brief
    horizon_days3
    seed0

    If you've ever loaded a "live data" workflow and wondered why it keeps serving you yesterday's news, you already know the value of this node. UCLADailyDataInit is the front door of every UCLA Daily pipeline - the thing that stamps a report with a timestamp, sets the time window, and forces the whole graph to pull fresh data every single time you hit Queue. Wire it to nothing, run it, and you get one UCLA_DATA object with a reason to exist.

    UCLA Daily is a pack from Jeffrey A. Brick that turns UCLA's public news feeds and event pages into 1920x1080 cards for a lobby TV (it was built for the screen at 6401 Wilshire Blvd). Every fetcher in the pack - Med, Arts, Fowler, Hammer, CS, Eventbrite, the lot - takes UCLA_DATA in and hands UCLA_DATA out, so they can be chained in any order. This node creates that structure at the start. Without it, there's nothing to feed into the first fetcher.

    What it actually does

    Under the hood it's tiny: it builds a Python dict with a metadata block (report name, created-at timestamp in both ISO and "Tuesday, March 3 at 9:41 AM" form, the horizon, and a seed), plus empty events and errors lists. The errors list is the pack's answer to flaky scrapes - any fetcher that fails logs the failure there instead of crashing the graph, so the pipeline keeps going.

    The clever bit is IS_CHANGED, which returns time.time(). In ComfyUI terms that's a polite way of saying "always re-run me." Every queue execution re-creates this dict, which means every fetcher downstream re-fetches. That's exactly what you want for a daily-news display and exactly the opposite of what most nodes do (cache results until the inputs change). This is one of the rules from the author's own "ComfyUI Custom Node Survival Guide," and it's the difference between a screen that updates and a screen that lies to you.

    The inputs that matter

    Three widgets, all required, all self-explanatory:

    • report_name - shows up in the header of the pulse report. Default UCLA_Daily_Brief; name it after the run if you're generating multiple.
    • horizon_days - how many days ahead to include events. 1 means today only, 7 means the week. Default 3.
    • seed - 0 (default) uses the current timestamp, so every run is unique. Non-zero makes the run deterministic, which is handy for testing layout before you let it loose on live data.

    Output

    One output: ucla_data (custom type UCLA_DATA). That custom type is worth knowing about - ComfyUI will only let you plug this into inputs that expect UCLA_DATA, which is the pack's way of stopping you from accidentally wiring the wrong thing into a fetcher. Chain: DataInit → any fetchers → LobbyCard / DeepDiveCard / Pulse.

    Install

    Via ComfyUI Manager, search for UCLA Daily, or clone it by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jbrick2070/ComfyUI-UCLADaily.git
    pip install qrcode pillow requests
    

    Restart ComfyUI and the nodes appear under the UCLA Daily category. The fetchers are pure stdlib (with a requests→urllib fallback), so this node needs nothing beyond ComfyUI itself. The pip install line covers the card renderers and QR codes downstream.

    Common gotchas

    The one real trap: if you wire fetchers but forget the DataInit, nothing has a UCLA_DATA to work from and the graph won't validate. It's the smallest, least interesting node in the pack - and also the one everything else hangs off. Start here, always.

    CategoryUCLA Daily

    Inputs (3)

    NameTypeDefaultDescription
    report_nameSTRINGUCLA_Daily_BriefName for this report run. Appears in the pulse output header.
    horizon_daysINT31–30How many days ahead to include events (1=today only, 7=this week).
    seedINT00–184467440737095500000 = use current timestamp. Non-zero = deterministic for testing.

    Outputs (1)

    NameTypeDescription
    ucla_dataUCLA_DATA