Nodes/ComfyUI-Mana-Nodes/πŸ†— Font Properties
ComfyUI Node

πŸ†— Font Properties

Font Properties

By ForeignGodsΒ·Created 2 years agoΒ·Updated 2 years agoΒ· 248
πŸ†— Font Properties
    • font
    β—„font_fileAURORA-PROβ–Ί
    β—„font_size75β–Ί
    β—„font_colorwhiteβ–Ί
    β—„kerning0β–Ί
    β—„border_width0β–Ί
    β—„border_colorgreyβ–Ί
    β—„shadow_colorgreyβ–Ί
    β—„shadow_offset_x0β–Ί
    β—„shadow_offset_y0β–Ί
    β—„x_offset0β–Ί
    β—„y_offset0β–Ί
    β—„rotation0β–Ί
    β—„rotation_anchor_x0β–Ί
    β—„rotation_anchor_y0β–Ί

    Font Properties is the "how should this text look" node in Mana Nodes. It doesn't render anything by itself - it bundles up a typeface and all its styling into one package and hands that to the Text to Image Generator. Think of it as a text-style preset you build once and plug in.

    Why it exists

    Mana Nodes deliberately split typography into small bricks so the main generator stays readable. Font Properties is the styling brick. You'll usually have one for your main caption text, and often a second one wired into the generator's highlight_font slot to style the currently-spoken word differently - that's the karaoke-highlight effect where the active word changes color.

    The inputs that matter

    There are a lot of widgets, but a beginner really only touches three or four:

    • font_file - a dropdown of the ~30 fonts bundled with the pack (AURORA-PRO is the default; you also get DejaVu, Montserrat, and some display faces). Want your own? Drop a .ttf/.otf/.woff/.woff2 into the pack's font_files folder and restart.
    • font_size - a single number, default 75. Or, and this is the good part, right-click and convert it to an input so you can drive it from a Scheduled Values node and animate the size over time.
    • font_color - a color, default white. Takes CSS color keywords ("white", "tomato", "rebeccapurple"). Convert it to an input and feed a Preset Color Animations node to make it cycle.

    The rest are polish: kerning (letter spacing), border_width and border_color for an outline, shadow_color with shadow_offset_x/shadow_offset_y for a drop shadow, x_offset/y_offset to nudge position, and rotation (with rotation_anchor_x/rotation_anchor_y to set the pivot point). Like size and color, x_offset, y_offset, and rotation can each be converted to an input and animated from a Scheduled Values node.

    The single output is font (type TEXT_GRAPHIC_ELEMENT), which goes straight into the font or highlight_font slot of a Text to Image Generator.

    The animation trick you actually want

    Here's the pattern that makes this node click. On its own, Font Properties is static - one size, one color. To animate a property, you right-click the node, choose "Convert font_size to input" (or color, offset, rotation), and a new input dot appears. Then you wire a Scheduled Values node (for numbers like size, offset, rotation) or a Preset Color Animations node (for colors) into that dot. Now the property is keyframed across your frames instead of frozen. That convert-to-input step is the thing most people miss.

    Installing it

    Ships with the pack. ComfyUI Manager β†’ search Mana Nodes β†’ install β†’ restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ForeignGods/ComfyUI-Mana-Nodes.git
    

    Install requirements (pip install -r requirements.txt in your venv, or the python_embed route on Windows portable) and restart. Rendering uses Pillow; no model downloads for this node.

    Common issues

    If your custom font isn't in the dropdown, you skipped the restart - the list is read at startup from font_files, so ComfyUI has to reboot to see a new file. If a color throws an error, you probably typed something Pillow's color parser doesn't recognize; stick to standard CSS/extended color keywords or clean hex.

    And the recurring gotcha: you can't animate a property you haven't converted to an input. If a Scheduled Values or Preset Color Animations node "isn't doing anything," it's almost always because it's connected to a property that's still a plain widget instead of a converted input. Non-Latin scripts are also a known weak spot the author hasn't fully solved yet.

    CategoryπŸ’  Mana Nodes/βš™οΈ Generator Settings

    Inputs (14)

    NameTypeDefaultDescription
    font_fileCOMBOAURORA-PRO30 options: AURORA-PRO, Akira Expanded Demo, Another Danger - Demo, DejaVu Sans, DejaVu Sans Display, DejaVu Sans Mono, +24
    font_sizeINT75β€”
    font_colorSTRINGwhiteβ€”
    kerningINT0β€”
    border_widthINT0β€”
    border_colorSTRINGgreyβ€”
    shadow_colorSTRINGgreyβ€”
    shadow_offset_xINT0β€”
    shadow_offset_yINT0β€”
    x_offsetINT0β€”
    y_offsetINT0β€”
    rotationINT0-360–360β€”
    rotation_anchor_xINT0β€”
    rotation_anchor_yINT0β€”

    Outputs (1)

    NameTypeDescription
    fontTEXT_GRAPHIC_ELEMENTβ€”