Downloads · 30 days
0
CCP6/H3-Shadow-Negative-Nodes
H3-Shadow-Negative-Nodes is a machine learning model from CCP6. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
Negative prompting for MiniMax H3 in ComfyUI.
Downloads · 30 days
0
Access
Public
Updated Aug 13, 2026
Repo size
—
Likes
6
Public
Click a slice to open those files.
.json65.5 KB · 59%
From the Hugging Face model README
Negative prompting for MiniMax H3 in ComfyUI.
H3 is CFG-distilled — there's no stock negative prompt input. This pack patches the H3 DiT blocks to run a shadow attention branch with your negative text while keeping the positive presentation, references, and keyframes intact. NAG-form normalized repulsion is applied to the generated video and audio targets independently.
Works with T2V, FL2VA (first/last-frame I2V), and REF2VA.
Extract in comfy\custom_nodes folder / Restart ComfyUI / No additional dependencies.
ComfyUI/custom_nodes/ComfyUI-H3NegativeLab/
__init__.py
h3_negative_lab_v1_0_2.py
README.md
The everyday node. Plug in one negative CONDITIONING (from a plain CLIP Text Encode on the H3 text encoder), connect the patched MODEL to a normal BasicGuider, done.
video_scale and audio_scale control how hard the output is pushed away from the negative. Scale 1 = off for that stream. If audio_scale > 1 and no separate audio_negative is connected, the main negative is reused for audio.
tau caps the guided norm relative to the positive (prevents overcooking). alpha blends between the positive-only and guided result. start_percent / end_percent limits guidance to a window of the denoise schedule.
Same mechanism, explicit video_negative input. Optionally connect a separate audio_negative.
For REF2VA, two modes:
Plain mode — connect an ordinary H3 text CONDITIONING to video_negative. The patch preserves all packed REF2VA reference rows and replaces the user-prompt text in the shadow branch best-effort.
Exact mode — duplicate your stock MiniMax H3 Reference to Video node with the same refs, same sizing, same reference order, but put your negative description in its prompt. Connect that CONDITIONING to video_negative. The patch detects matching reference metadata and builds a full alternate packed layout with correct text/vision tags and RoPE coordinates for the shadow branch.
(phrase:weight) syntax for H3 text conditioning. Operates in embedding space — weights above 1 emphasize, below 1 de-emphasize. The (syntax:1.5) is stripped before Qwen encoding.
Designed to feed the Shadow node's negative inputs. Safe alongside the Shadow block patch (it modifies the conditioning tensor, not the DiT blocks).
Minimal setup — add a negative to any H3 T2V workflow:
H3 CLIP Text Encode ("blurry, static, grainy")
|
v
H3 Shadow Negative <-- MODEL (after sigma shift if used)
|
v
BasicGuider <-- positive CONDITIONING
|
v
KSampler
Console output reports per-step metrics (neg-delta, guided-delta, clamp %) so you can tell whether your negative is actually doing anything.
These worked well in testing as starting points:
| Parameter | Basic | Advanced |
|---|---|---|
| video_scale | 3.0 | 3.0 |
| audio_scale | 1.0 | 1.0 |
| tau | 2.5 | 2.5 |
| alpha | 0.35 | 0.35 |
| start_percent | 0.0 | 0.0 |
| end_percent | 0.60 | 0.60 |
If your output looks overcooked, lower alpha first, then tau. If the negative isn't biting, raise video_scale.
set_model_patch_replace. Block-level cache nodes (Sage+Spectrum, T8mars, etc.) that replace the same blocks will conflict — use one or the other per run.MIT