Sign Options
The settings bag that keeps the Sign Detailer from being a wall of widgets
- sign_options
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
cfgandnegative_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 like0.85|0.45, for a strong first pass and a gentle second.class_denoise- the headline feature. Per-class overrides, oneclass: valueper line:plate: 0.95renders a license plate harder thangarment_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.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| cfg | FLOAT | 1.00–20 | Classifier-free guidance. Turbo/distilled models want 1.0. |
| negative_prompt | STRING | gibberish, 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 | Applied to every region. Aimed at suppressing fake lettering. |
| context_expand_factor | FLOAT | 1.301–3 | How much surrounding context enters the crop. Text needs more than faces so the model can match the sign's material and perspective. |
| output_padding | INT | 320–256 | — |
| mask_fill_holes | BOOLEAN | true | Close holes in the mask — letter counters otherwise punch through. |
| denoise_progression | STRING | Pipe-separated denoise per round, e.g. '0.85|0.45'. | |
| steps_progression | STRING | Pipe-separated steps per round, e.g. '8|4'. | |
| class_denoise | STRING | Per-class denoise override, one 'class: value' per line. Example: plate: 0.95 garment_print: 0.70 | |
| skip_classes | STRING | Comma-separated class names to leave untouched, e.g. 'screen, graffiti'. | |
| uppercase | BOOLEAN | false | Force glyph rendering to uppercase — helps on street signs and plates. |
| margin_ratio | FLOAT | 0.080–0.4 | Padding between the rendered text and the edge of the sign. |
| prompt_suffix | STRING | Appended 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)
| Name | Type | Description |
|---|---|---|
| sign_options | SIGN_OPTIONS | — |