Nodes/UCLA Daily/UCLA Daily: Lobby Card
ComfyUI Node

UCLA Daily: Lobby Card

The summary card that makes raw text look like a TV broadcast

By jbrick2070·Created 5 months ago·Updated 5 months ago· 0
UCLA Daily: Lobby Card
    • card_image
    • save_path
    segment_text
    card_width1920
    card_height1080
    title_override
    show_unofficial_badgetrue
    save_to_diskfalse

    UCLALobbyCard is where the UCLA Daily pipeline finally becomes visible. Every fetcher upstream hands you boring text; this node renders it as a 1920x1080 dark-theme display card - UCLA blue background, gold accents, clean monospace type, an "UNOFFICIAL" badge in red - the exact look you'd expect from a building lobby TV. It's the node that makes a string of event listings feel like a broadcast.

    It's part of the UCLA Daily pack by Jeffrey A. Brick, built for the lobby screen at 6401 Wilshire Blvd. The pipeline is DataInit → fetchers → cards → MP4, and the LobbyCard is the summary tier: one card per source, each showing a handful of events, teletext-style. The deep-dive cards handle the per-event detail; this one is the overview.

    How it works

    It renders with PIL (Pillow), drawing directly onto a canvas with the pack's UCLA brand palette and a font fallback list (Liberation Sans → Lato → DejaVu). Input is a plain text string, not the UCLA_DATA dict - that's a deliberate design break: the card node doesn't care about your pipeline internals, it just wants text. Feed it a fetcher's segment_text directly, or run that text through UCLANarrator first for a polished version. It returns a ComfyUI IMAGE tensor (H×W×3 float 0–1), so it plugs into any standard image workflow - preview, save, or composite.

    IS_CHANGED hashes the input text, so the node only re-renders when the text actually changes - the rare UCLA Daily node that isn't chatty by default. That's fine: text in, new card out.

    The inputs that matter

    • segment_text - required. The text to render; from any fetcher's segment_text or the Narrator's narrated_text.
    • card_width / card_height - default 1920×1080. The whole pack is tuned for that; drop below 800×600 and layout gets cramped.
    • title_override - blank by default (auto-detect from the segment). Set it if you want a fixed header regardless of content.
    • show_unofficial_badge - default true. The pack is a fan project, not a UCLA-branded product, and it's honest about it.
    • save_to_disk - default false. Flip on to write a PNG to the output directory.

    Outputs

    Two: card_image (the IMAGE tensor - preview it, save it, or feed it to a video node) and save_path (the file path, if save_to_disk is on).

    Install

    ComfyUI Manager → search UCLA Daily, or:

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

    Restart ComfyUI. Pillow is the real dependency here - the node defers the import, so it'll load without it, but the render will fail until you pip install pillow.

    Common issues

    If the card comes out blank or the node errors on a fresh install, the cause is almost always missing Pillow - the README's pip install line includes it, so run that first. Font-related weirdness (fallback glyphs, boxes) means your system is missing the preferred fonts; install DejaVu or Liberation and it'll look right. And remember it renders whatever text you feed it - garbage in, beautifully-typeset garbage out.

    CategoryUCLA Daily

    Inputs (6)

    NameTypeDefaultDescription
    segment_textSTRINGSegment text from a fetcher or narrator node.
    card_widthoptINT1920800–3840Card width in pixels.
    card_heightoptINT1080600–2160Card height in pixels.
    title_overrideoptSTRINGCustom title. Blank = auto-detect from segment.
    show_unofficial_badgeoptBOOLEANtrueShow UNOFFICIAL badge.
    save_to_diskoptBOOLEANfalseSave PNG to output directory.

    Outputs (2)

    NameTypeDescription
    card_imageIMAGE
    save_pathSTRING