Nodes/civitai-comfy-nodes/Shieldstral Text
ComfyUI Node

Shieldstral Text

Shieldstral Text

By civitai·Created 3 months ago·Updated 2 days ago· 44
Shieldstral Text
  • api_config
  • results
  • blocked
  • triggered_policies
  • workflow_id
  • raw_json
text
policies_json
policy_overrides_json

The Shieldstral family comes in two flavors: one that inspects a prompt pair, and this one, the plain-text checker. Same hosted moderation model, same outputs, but no positive/negative framing and no context field - just "here's some text, is it blocked?" It's the simplest possible safety gate in the whole Civitai pack, and that simplicity is exactly why it's worth having around.

What it is

Shieldstral Text from civitai/civitai-comfy-nodes, under Civitai/Analysis/Shieldstral Text. It's the shieldstralModeration recipe in text mode. One required input, three meaningful outputs, a cloud call in between. If you need to check arbitrary text - a caption, a chat message, a generated description, user input before it touches anything else - this is the node.

The inputs

  • text - required, multiline. The document to moderate.
  • policies_json - optional filter. When omitted, every configured policy for the selected mode is evaluated; supply a list to check a subset. Useful both for scoping and for trimming per-call cost.
  • policy_overrides_json - optional. Merges with existing policies by name, and new names create custom policies. The two rules from the tooltip: policies are free-form natural language, and a Query, when supplied, must be a single yes/no question. That last bit is the trap - a query that's actually two questions will behave unexpectedly.

That's it. Where the Prompt variant adds negative_prompt and context, this one stays lean. It's a difference worth respecting: if you need product context in the evaluation, use the Prompt node; if you just need a verdict on raw text, this is the cheaper, cleaner call.

The outputs

  • results - the evaluation payload, as JSON.
  • blocked - the boolean-ish verdict your logic branches on.
  • triggered_policies - the list of policies that fired. Wire this to a log, or feed it back to the user so they know why their text didn't pass.
  • workflow_id / raw_json - the pack standard.

Installing it

ComfyUI Manager → Civitai Comfy Nodes → Install → restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt

Gotchas

  • Metered cloud call. Every check spends Buzz. If you're moderating every caption in a batch pipeline, that's a line item - cache results for repeated text where you can.
  • The text leaves your machine. It's processed on Civitai's servers. Fine for a personal gate, a real consideration for anything with sensitive content.
  • Policies default to "everything configured." Unexpected blocks are usually a configured policy you didn't know about - check triggered_policies, then scope with policies_json.
  • Credentials - Civitai Auth node, CIVITAI_API_TOKEN, or sidebar OAuth.
  • Remember the sibling node: Shieldstral Prompt exists if your text is a prompt pair that needs context-aware evaluation. Both are the same shieldstralModeration recipe in different modes.
CategoryCivitai/Analysis/Shieldstral Text

Inputs (4)

NameTypeDefaultDescription
textSTRING
policies_jsonoptSTRINGOptional policy filter. When omitted, every configured policy for the selected mode is evaluated.
policy_overrides_jsonoptSTRINGPer-request policy overrides. Existing policies are merged by name and new names create custom policies. Policy is free-form natural language; Query, when supplied, must be a single yes/no question.
api_configoptCIVITAI_CONFIGOptional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login.

Outputs (5)

NameTypeDescription
resultsSTRING
blockedSTRING
triggered_policiesSTRING
workflow_idSTRING
raw_jsonSTRING