Nodes/comfyui-fvmtools/Sign Options
ComfyUI Node

Sign Options

The settings bag that keeps the Sign Detailer from being a wall of widgets

By ping1979ping·Created 6 months ago·Updated about a month ago· 0
Sign Options
    • sign_options
    cfg1.0
    negative_promptgibberish, garbled letters, misspelled words, random symbols, warped typography, double exposure text, watermark, paragraph of body text, filler writing, handwritten notes in the margin, columns of small print
    context_expand_factor1.30
    output_padding32
    mask_fill_holestrue
    denoise_progression
    steps_progression
    class_denoise
    skip_classes
    uppercasefalse
    margin_ratio0.08
    prompt_suffix

    Sign Options is the quiet sibling in the Sign Tools family. It's an optional settings bag that feeds the Sign Detailer's sign_options input, and its whole reason for existing is keeping the Detailer's widget list manageable. Nothing here is required - but a couple of these are the difference between "looks pasted" and "reads like a real sign."

    What it carries

    • cfg and negative_prompt - the negative is a strong default aimed at suppressing fake lettering ("gibberish, garbled letters, misspelled words..."), applied to every region. Turbo/distilled models want CFG 1.0.
    • context_expand_factor (1.3) - how much surrounding context enters each crop. Text needs more context than faces so the model can match the sign's material and perspective. If a sign looks pasted on, this is the first knob.
    • denoise_progression / steps_progression - pipe-separated per-round values like 0.85|0.45, for a strong first pass and a gentle second.
    • class_denoise - the headline feature. Per-class overrides, one class: value per line: plate: 0.95 renders a license plate harder than garment_print: 0.70, which should stay soft because it sits in fabric folds. Each text class already carries its own denoise offset; this lets you tune individual ones without touching the global setting.
    • skip_classes - drop whole categories late, so you can re-run the Detailer after a tweak without re-detecting and re-asking the LLM. That's the workflow trick: detection and proposal only re-run when they need to.

    The one trick worth remembering

    prompt_suffix is where you describe the SURFACE, not the text - the class template already covers the lettering. Combined with the Detailer's glyph_plate_color and glyph_ink_color, it's how you turn a grey smudge into a bright yellow post-it: the prompt tells the diffusion model what the surface is, and the color fields paint it into the typeset layer before sampling. The Detailer will even remind you in the report if you set a plate color but left the suffix empty, because either one alone leaves the other pulling the wrong direction.

    Other bits worth knowing: uppercase for street signs and plates, margin_ratio for the padding between the rendered text and the sign's edge, and mask_fill_holes to stop letter counters from punching through the mask.

    Output and install

    One output, sign_options, into the Detailer. Install is just the pack clone:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ping1979ping/comfyui-FVMtools
    

    Restart ComfyUI. No models, no dependencies - it's pure configuration.

    CategoryFVM Tools/Text

    Inputs (12)

    NameTypeDefaultDescription
    cfgFLOAT1.00–20Classifier-free guidance. Turbo/distilled models want 1.0.
    negative_promptSTRINGgibberish, garbled letters, misspelled words, random symbols, warped typography, double exposure text, watermark, paragraph of body text, filler writing, handwritten notes in the margin, columns of small printApplied to every region. Aimed at suppressing fake lettering.
    context_expand_factorFLOAT1.301–3How much surrounding context enters the crop. Text needs more than faces so the model can match the sign's material and perspective.
    output_paddingINT320–256
    mask_fill_holesBOOLEANtrueClose holes in the mask — letter counters otherwise punch through.
    denoise_progressionSTRINGPipe-separated denoise per round, e.g. '0.85|0.45'.
    steps_progressionSTRINGPipe-separated steps per round, e.g. '8|4'.
    class_denoiseSTRINGPer-class denoise override, one 'class: value' per line. Example: plate: 0.95 garment_print: 0.70
    skip_classesSTRINGComma-separated class names to leave untouched, e.g. 'screen, graffiti'.
    uppercaseBOOLEANfalseForce glyph rendering to uppercase — helps on street signs and plates.
    margin_ratioFLOAT0.080–0.4Padding between the rendered text and the edge of the sign.
    prompt_suffixSTRINGAppended to every region's prompt — this is where you describe the SURFACE, not the text. The class template only covers the lettering. Example: 'on a bright yellow post-it note, slight paper curl, soft drop shadow, matte paper texture'. Pair it with the plate colour override in the Detailer so the typeset layer already carries that surface colour.

    Outputs (1)

    NameTypeDescription
    sign_optionsSIGN_OPTIONS