Skip to content

Clarify TextGenerate docs about model-dependent backend and reasoning output #1770

Description

@Lbunc

Summary

The TextGenerate documentation currently describes the node as using a CLIP model to generate text, but it does not explain that the actual backend depends on the specific model loaded into the clip input and that some models may emit reasoning/thinking content in the generated output.

Problem

The current docs only describe the basic generated_text output and do not mention:

  • the node can expose a separate thinking output
  • some models use <think>...</think> style reasoning blocks
  • the actual inference backend is model-dependent, not a single fixed engine
  • the node is a thin wrapper around the connected model's tokenize(), generate(), and decode() methods

This makes the behavior confusing for users who see reasoning text in outputs or expect a fixed backend implementation.

Expected behavior

The docs should clarify:

  • TextGenerate is a wrapper around the connected CLIP/text-generation model
  • actual inference is delegated to the loaded model backend
  • some models support reasoning/thinking output and may emit <think>...</think> blocks
  • the node exposes generated_text and thinking as separate outputs when applicable
  • users should not assume all clip models behave the same way

Suggested fix

Update zh/built-in-nodes/TextGenerate.mdx (and likely the English version if maintained) to include a short note under the output section or overview explaining:

  • TextGenerate depends on the specific model connected to the clip input
  • a model may support reasoning output, which is surfaced via the thinking output
  • reasoning blocks may be emitted in the raw response depending on model behavior

Relevant file

  • zh/built-in-nodes/TextGenerate.mdx
  • upstream ComfyUI implementation: comfy_extras/nodes_textgen.py

Possible wording

TextGenerate does not implement its own fixed inference engine. It calls the connected CLIP/text-generation model's tokenize(), generate(), and decode() methods. Depending on the loaded model, it may also emit reasoning/thinking output in a <think>...</think> block or expose a separate thinking output.

Why this matters

This is important for users troubleshooting unexpected reasoning text or confusion about whether the node uses Transformers, llama.cpp, vLLM, or some other backend.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions