ComfyUI Extension: UCLA Daily
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
ComfyUI custom node pack for aggregating UCLA campus news, events, and daily briefs.
Looking for a different extension?
Custom Nodes (17)
- UCLA Daily: Arts Fetch
- UCLA Daily: CS Fetch
- UCLA Daily: Data Init
- UCLA Daily: Pulse Report
- UCLA Daily: Deep Dive Batch
- UCLA Daily: Deep Dive Card
- UCLA Daily: Eventbrite Fetch
- UCLA Daily: Film Archive Fetch
- UCLA Daily: Fowler Fetch
- UCLA Daily: Hammer Fetch
- UCLA Daily: Housing Info
- UCLA Daily: Lobby Card
- UCLA Daily: Med Fetch
- UCLA Daily: Narrator (Qwen2.5)
- UCLA Daily: Newsroom Fetch
- UCLA Daily: SEIS Fetch
- UCLA Daily: Slideshow Export (MP4)
README
ComfyUI-UCLADaily
By Jeffrey A. Brick · March 2026
A self-contained custom node pack for ComfyUI that aggregates daily news, events, and press releases from across the UCLA campus into lobby-ready TV displays.
Built for the lobby TV at 6401 Wilshire Blvd (UCLA Housing, Miracle Mile). Outputs a looping 1920x1080 MP4 for OBS → YouTube streaming.
Inspired by the Data Media Machine project. Built following the principles of the ComfyUI Custom Node Survival Guide.
What It Does
Fetches live data from 10 UCLA sources, renders two types of cards, and stitches them into a single MP4:
- Lobby Summary Cards — one per source, 4 events each, dark theme teletext style
- Deep Dive Cards — one per event with venue address, enriched description, QR code, procedural geometric art, factual institutional context, and dynamic font sizing
Nodes
| Node | Description |
|------|-------------|
| UCLADailyDataInit | Initializes the UCLA_DATA pipeline structure |
| UCLAMedFetch | Health & Behavior news via Newsroom RSS |
| UCLAFilmArchiveFetch | Film & TV content filtered from Newsroom RSS |
| UCLAFowlerFetch | Fowler Museum events via HTML scrape |
| UCLAArtsFetch | Arts & Culture news via Newsroom RSS |
| UCLANewsroomFetch | Any of 11 UCLA Newsroom RSS categories |
| UCLACSFetch | UCLA Computer Science events |
| UCLAHammerFetch | Hammer Museum events via HTML scrape |
| UCLASEISFetch | School of Education events |
| UCLAEventbriteFetch | UCLA Eventbrite events |
| UCLAHousingInfo | Housing info for Wilshire Apartments |
| UCLANarrator | LLM-ready narration formatter |
| UCLALobbyCard | Renders 1920x1080 lobby summary cards |
| UCLADeepDiveCard | Renders 1920x1080 deep dive detail cards |
| UCLADeepDiveBatch | Batch renders all deep dives as a tensor |
| UCLASlideshowExport | Stitches cards into MP4 with fade transitions |
| UCLADailyPulse | Compiles all data into a formatted report |
Pipeline
DataInit → Fetchers (chain any combination) → LobbyCard / DeepDiveCard → SlideshowExport
All fetchers accept and return UCLA_DATA, so they can be chained in any order.
Standalone MP4 Generator
For OBS workflows, skip the ComfyUI GUI entirely:
cd ComfyUI/custom_nodes/ComfyUI-UCLADaily
python generate_obs.py
Outputs ComfyUI/UCLADAILYOUTPUT/UCLADaily_OBS.mp4 — 12 seconds per card, crossfade transitions, ~10 minutes total. Point OBS Media Source at it with loop enabled.
Deep Dive Card Features
- Dynamic font sizing — description text scales from 72pt down to 38pt, picks the largest size that fits
- Venue address database — 20+ UCLA venues mapped to real street addresses
- Description enrichment — fetches og:description from event detail pages
- Procedural geometric art — category-aware patterns (film strips, constellations, ripples, hexagons, etc.)
- QR codes — scannable link to event detail page
- Factual context — university-level institutional info, not marketing fluff
Data Sources
All public, no API keys needed:
- UCLA Newsroom RSS (11 category feeds)
- Hammer Museum (HTML scrape)
- Fowler Museum (HTML scrape)
- UCLA CS Events (HTML scrape)
- UCLA SEIS Events (HTML scrape)
- Eventbrite UCLA (JSON API)
- UCLA Housing (built-in data)
Installation
cd ComfyUI/custom_nodes
git clone https://github.com/jbrick2070/ComfyUI-UCLADaily.git
pip install qrcode pillow requests
Restart ComfyUI. Nodes appear under the UCLA Daily category.
Testing
cd ComfyUI-UCLADaily
python test_fetch.py
Runs a 16-step integration test: data init, all fetchers, lobby cards, deep dive cards, batch rendering.
Survival Guide Compliance
Every node follows the ComfyUI Custom Node Survival Guide:
- Custom type
UCLA_DATAprevents accidental cross-wiring IS_CHANGEDreturnstime.time()— forces fresh data every queue run- Only stdlib at module scope — heavy imports deferred inside functions
NODE_CLASS_MAPPINGSkeys are permanent — treated as public API- Shared
http_utilswith requests→urllib fallback for zero-dependency operation - Graceful error handling — fetch failures log to
errors[]without crashing - Unicode cleanup — fixes mojibake from RSS feeds (curly quotes, em dashes, etc.)
License
MIT
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.