Skip to content

cosmos3: disable the bundled content guardrail#21

Merged
Johan-de-R merged 1 commit into
mainfrom
johan/cosmos3-disable-guardrail
Jul 10, 2026
Merged

cosmos3: disable the bundled content guardrail#21
Johan-de-R merged 1 commit into
mainfrom
johan/cosmos3-disable-guardrail

Conversation

@Johan-de-R

Copy link
Copy Markdown

What

Set guardrails=False on the worker's OmniSetupOverrides so the Cosmos worker skips the bundled text (Blocklist + Qwen3Guard) and video guardrail runners entirely. One line; no cosmos-framework patch. Covers both Cosmos3-Nano and Cosmos3-Super (same worker).

Why

The bundled Qwen3Guard text guard is unfit to gate customer prompts:

  • Coarse: a single "Sexual Content or Sexual Acts" category, no CSAM/minor distinction — it cannot express "block illegal only, allow legal adult."
  • Biased: "a cinematic shot of an african american woman being picked up by a robot" is blocked as sexual, while the same prompt with white returns normally. The only variable is the subject's race.
  • Wasteful + opaque: the prompt check runs after generation (inference.py Save-outputs loop, ~line 1538), so every rejected prompt burns a full ~60s clip and surfaces to the user as a 500 "Failed to fold videos stream".

Disabling it also makes video gen uniform — no other videogen model (LTX, FastWan…) has a worker-level guard. Real content filtering will be a platform-level video-gen guardrail applied across all models, as a separate future project — not a per-model guard here.

NVIDIA's own latency.yaml / throughput.yaml inference configs already run guardrails: False, so this is a supported mode.

⚠️ Trade-off (explicit)

Off = no content filtering on Cosmos in the interim, including no CSAM/illegal-content filter, until the platform guardrail exists. This resolves the previously-"pending legal" posture toward "off" for a live generative video model — flagged for legal/leadership awareness.

Follow-ups (not in this PR)

  • Drop the gated nvidia/Cosmos-Guardrail1 prefetch from the Dockerfile — unused once guardrails are off (removes the build-time HF-token requirement).
  • Platform-level video-gen guardrail (its own project).

Rollout

Rebuild the Cosmos worker image → roll Cosmos3-Nano (Super later). Holding the prod roll until this is reviewed/approved.

🤖 Generated with Claude Code

Set guardrails=False on the OmniSetupOverrides so the Cosmos worker skips the
bundled text (Blocklist + Qwen3Guard) and video guardrail runners entirely.

The Qwen3Guard text guard is unfit to gate customer prompts:
- one coarse "Sexual Content or Sexual Acts" category, no CSAM/minor
  distinction, so it cannot express "block illegal only, allow legal";
- demonstrable demographic bias -- "an african american woman being picked up
  by a robot" is blocked as sexual while the same prompt with "white" returns
  normally;
- the prompt check runs after generation (inference.py Save-outputs loop), so
  every rejected prompt still burns a full ~60s clip and surfaces as an opaque
  500 "Failed to fold videos stream".

Content filtering will move to a platform-level video-gen guardrail applied
uniformly across all models, rather than a per-model guard here. Covers both
Cosmos3-Nano and Cosmos3-Super (same worker).

NVIDIA's own latency/throughput inference configs already run guardrails: False.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Johan-de-R
Johan-de-R merged commit 8dea0ca into main Jul 10, 2026
13 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant