Nodes/WAS Node Suite v3/Rich Text Editor
ComfyUI Node Runs on cloud

Rich Text Editor

A rich text editor drawn on the node that hands you clean HTML

By WASasquatch·Created 3 years ago·Updated 4 days ago· 1,844
Rich Text Editor
    • html
    html

    Some workflows need a document, not just a string. Rich Text Editor puts a full rich text editor - bold, italics, headings, images, tables - directly on the node, and hands you the result as HTML. It's for the ComfyUI users who are quietly using the tool to generate things that aren't images: emails, HTML pages, documents that get saved or rendered downstream.

    The architecture detail that makes it trustworthy for that job: the document lives in the node's own text box, which is the source of truth. A saved workflow reopens with the document intact, and a run from the API produces the same text with no browser involved - the editor you see is a view onto an HTML string, not the other way around. Paste markup into the box and the editor and the box stay in sync.

    What it does

    Write (or paste) a document, and the html output emits it. The box takes no links - no clicking through to a URL from inside the editor. And because the document is just a string on a wire, the output feeds anything that takes text: Save DOC for a real file, the Content Viewer to render it, or whatever downstream document tooling you've built.

    Tokens like [time] and [user] are replaced on the way out, and the box itself is never rewritten - so your source stays put while the emitted HTML carries the resolved values.

    The security default you should know about

    With document.clean_html on - which is the default - script and iframe elements, object and embed tags, on* handler attributes, and javascript: URLs are removed from the output and named in the log. Text, styling, images and tables come through exactly as the box holds them. That's a sensible default if you're emitting pages you'll actually serve or send.

    The config note in the pack's docs is worth taking literally, though: it cleans up markup written on your own machine. It is not a hardened sanitizer for untrusted pages. If you're going to pipe untrusted HTML through this, that's not the layer you want defending you. Turn clean_html off (set document.clean_html: false in config.yaml) only if you genuinely need raw markup out and accept the trade.

    How it behaves as a document engine

    The editor parses what it's given into a document and writes that document back out, so markup is normalized on the way through. Bare text gets wrapped in a paragraph; misplaced elements get unwrapped, moved, or given the parent they need; and five characters (<, >, &, and in attributes " and a backtick) are written as entities so a literal 5 < 6 or AT&T survives the round trip intact. Nothing about that normalization is optional - it's how a WYSIWYG editor keeps itself consistent.

    Installing

    Rich Text Editor is part of WAS Node Suite v3. ComfyUI Manager → search WAS Node Suite v3, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/WASasquatch/was-node-suite-comfyui
    

    Restart after; needs ComfyUI 0.14.0+ and Python 3.10+. The editor UI is bundled with the pack - no extra install, nothing downloaded. v3's zero-dependency rewrite means even a document node like this one runs on what the pack ships, a clean break from the old v2 suite's dependency stack.

    Where people get surprised: the HTML output is a fragment or document depending on how you consume it, and tokens resolve at run time - so a workflow saved today and run next week still stamps the current [time]. If you want the document frozen as written, save the output, don't rely on re-runs being identical.

    CategoryWAS Suite/Text

    Inputs (1)

    NameTypeDefaultDescription
    htmlSTRINGThe document, as HTML. The editor drawn on the node is a view onto this box, so paste markup here and the two stay in step.

    Outputs (1)

    NameTypeDescription
    htmlSTRINGThe document as HTML, for anything that takes a string. A bare < in the text arrives as &lt;.