What if you could turn MiniMax H3’s motion up or down like a volume knob, without training a LoRA? That is exactly what H3 Dials does. It is a free ComfyUI node pack that turns two opposite prompts into a tiny 14 KB slider file.
Set the strength to -2 and your scene almost freezes. Set it to +2 and everything moves about 2.7 times faster. The same trick works for mood, style and era, and a 6 November update added word dials, a lab of experimental sliders and a Dial Rack.
This guide covers what dials are, every shipped dial file, exact install folders, how to make your own, the best strengths for base H3 and Pika H3 Flex, the licence and the fixes for common problems.
- What: ComfyUI-Dials by matlowai: training-free “steering dials” for MiniMax H3, built from prompt pairs. Each dial is about 14 KB.
- Shipped dials: motion (-2 to +2), a motion LoRA version for the stock Load LoRA node, an 8-dial villainy mood pack and 10 experimental lab dials.
- Install:
git cloneintoComfyUI/custom_nodes/, copy dial files toComfyUI/models/loras/dials/. No extra Python packages. - Nodes: Make Dial, Apply Dial, Load Dial, Combine Dials, Save Dial.
- Pika H3 Flex: works unchanged; keep motion at +0.5 to +1.0.
- Licence: node code AGPL-3.0; dial files fall under the MiniMax H3 Community License.
- Limit: dials change how strongly something appears, not what appears. Use a LoRA for new characters or styles.
What Are H3 Dials?
H3 Dials is a ComfyUI custom node pack by the developer behind the matlowai GitHub account. ComfyUI Wiki covered its 6 November update, and the dial library lives on Hugging Face as MATLOWAI/H3-Dials.
A dial is a direction inside H3’s text conditioning. You give it pairs of prompts that differ in one quality, for example “a calm, still scene” versus “a fast, energetic scene”.
How it works, in plain words
- Encode the pairs. Make Dial runs each prompt pair through H3’s text encoder.
- Average the difference. It averages the gap between the two sides across all pairs.
- Remove the noise. A debias step removes wording shifts that come from the prompt template itself.
- Save a slider. What remains is one direction, saved as a small safetensors file you can push either way.
Negative strength moves your video toward the first prompt in each pair; positive strength moves it toward the second. There is no training, no reference images and no extra render pass.
Every Shipped Dial and Its Best Strength
All files go in ComfyUI/models/loras/dials/. Strengths below are the author’s tested values on a handful of scenes, so treat them as starting points.
Motion dials
| File | Load with | Range | Effect |
|---|---|---|---|
| h3_motion.safetensors | Load Dial + Apply Dial | -2 to +2 | -2 is near-frozen (about 0.05x base motion); +2 is about 2.5-3x base motion. Built from 24 pairs, agreement 0.78. |
| h3_motion_lora.safetensors | Stock Load LoRA (model only) or Load Dial | About 1.6x the hook strength | Same direction as a standard LoRA file; about 0.6x the effect per unit. |
Villainy mood pack (8 dials)
These steer the mood of a scene toward menace. The sweet spot is +1 to +2; the author calls +4 extreme.
| File | Mood | Notes |
|---|---|---|
| h3_evil_sinister | Shadows across faces, dim rooms, looming silhouettes | Damages speech: Whisper word error 0.84 at +2 vs 0.00 at base. Keep low for dialogue. |
| h3_evil_creepy | Uncanny smiles, subtly wrong movement, sterile spaces | None listed |
| h3_evil_cold | Icy, flat, calculating | None listed |
| h3_evil_unhinged | Maniacal, wild-eyed | Leans aggressive even at +2 (no gore seen) |
| h3_evil_seductive | Charming smile hiding dark intent | Speech stays clean (0.00 word error at +2) |
| h3_evil_corrupted | Decay and rot creeping in | None listed |
| h3_evil_dread | Foreboding atmosphere, no character needed | +0.5 to +1 on Pika H3 Flex |
| h3_evil_impish | Mischievous trickster | The lightest of the pack |
Experimental lab dials
These sit in dials/experimental/ on Hugging Face and were tested on Pika H3 Flex, one scene, two seeds.
- h3_x_oil_pixel: photoreal period drama (-3) through side-scroller and isometric diorama to a pixel-art game level (+2.5 to +3).
- h3_x_datamosh: at +2.25 the subject stays crisp while the background glitches.
- h3_x_owl_octopus: swaps a barn owl for an octopus in the same spot (needs an animal in the scene).
- h3_x_memory_present: saturated daylight versus a misty, faded, wistful look.
- h3_x_order_entropy: tidy and calm versus debris and dust (motion leaks in on the + side).
- h3_x_silentfilm_cyberpunk: 1920s to neon cyberpunk as era and setting. Stay below +3 or your character gets replaced.
- h3_x_vhs: clean digital versus VHS era (4:3 framing, older trains), not tape noise.
- Controls: h3_x_film_artifact (a kept negative result), h3_x_template_placebo and h3_x_sinister_noview, for testing what a push does on its own.
What You Need First
- A working MiniMax H3 setup in ComfyUI using the Comfy-Org repack. If you have not set it up yet, start with my MiniMax H3 ComfyUI guide, which lists every file and folder.
- No extra Python dependencies for the dials themselves.
- Optional: Pika H3 Flex LoRAs for 6-step renders (see my Pika H3 Flex setup).
- Optional: ComfyUI-MAINodes plus ComfyUI-KJNodes for the de-rope and Dial Rack workflows.
- VRAM: a dial adds almost nothing, so your limit is H3 itself. On 16 GB cards, follow my H3 out-of-memory fixes.
How to Install ComfyUI-Dials
- Open a terminal in your custom nodes folder. That is
ComfyUI/custom_nodes/(on the Windows portable build,ComfyUI_windows_portable/ComfyUI/custom_nodes/). - Clone the repo. Run
git clone https://github.com/matlowai/ComfyUI-Dials. It createsComfyUI/custom_nodes/ComfyUI-Dials/. - Create the dial folder. Make
ComfyUI/models/loras/dials/if it does not exist. - Copy the dial files. Copy everything in
ComfyUI/custom_nodes/ComfyUI-Dials/dials/*.safetensorsintoComfyUI/models/loras/dials/. For the lab dials, download them from huggingface.co/MATLOWAI/H3-Dials. - Restart ComfyUI. The nodes appear under the Dials category.
- Load an example workflow. Drag a JSON from
ComfyUI/custom_nodes/ComfyUI-Dials/workflows/onto the canvas.
Tip: I could not confirm a ComfyUI Manager listing for this pack at the time of writing, so the git clone route is the safe one. My ComfyUI Manager guide covers how to check the registry.
Included example workflows
| Workflow file | What it does |
|---|---|
| dials_studio_h3.json | Motion slider plus a villainy slot on H3 text-to-video with audio |
| dial_maker_h3.json | Make and preview your own dial |
| dials_pika_h3_flex.json | Motion dial on Pika H3 Flex (6 steps) |
| dials_pika_h3_flex_derope.json | Pika plus a de-rope pass for fast motion (needs MAINodes) |
| dials_pika_h3_flex_derope_6plus6_experimental.json | Experimental de-rope variant (sigmas off Pika’s trained steps) |
API-format versions (*_api.json) are included for scripted runs.
How to Use a Dial in Your Workflow
- Add Load Dial. Pick a file from
models/loras/dials/, for example h3_motion.safetensors. - Add Apply Dial. Connect your H3 MODEL and the DIAL output, then wire the patched MODEL to your sampler.
- Set the strength. Start at +1 for more motion or -1 for calmer scenes, then sweep in 0.5 steps.
- Stack if you like. Apply Dial patches the token refiner, so dials stack with LoRAs and with other dials. Chain several Apply Dial nodes.
- Keep the seed fixed while testing. That way you see only the dial’s effect.
Note: H3 is guidance-distilled, so negative prompts do nothing. A negative dial strength is the way to push away from a quality.
How to Make Your Own Dial
The Make Dial node takes CLIP, MODEL and a list of prompt pairs, one per line, in the form A ||| B. You can use a {subject} placeholder to reuse one template across subjects.
a quiet street at dawn, nothing moving ||| a busy street at dawn, people rushing past
{subject} standing perfectly still ||| {subject} spinning and jumping
a calm lake under clear sky ||| a stormy lake with crashing waves
- Write 10-24 pairs that differ only in the quality you want. The motion dial used 24.
- Keep debias on. It strips wording shifts that come from the template.
- Pick inject mode. Hook mode (the reference) or a LoRA file for the stock loader.
- Read the report. “Pair agreement” above 0.6 means a clean direction. Lower means your pairs disagree.
- Save it. The dial lands in
ComfyUI/models/loras/dials/<name>.safetensors.
Warning: pairs teach literally. The author found that “runs past the camera” taught subjects to leave the frame. Describe the quality, not an action you do not want.
Combine Dials blends two dials with weights wa and wb, and can remove one dial’s direction from the other. That is handy for “more motion, but not more chaos”.
Dials With Pika H3 Flex and De-rope
Pika H3 Flex is a 6-step, no-CFG version of H3. Dials work on it unchanged; place them between the Pika LoRA and the sampler.
| Setting | Base H3 | Pika H3 Flex |
|---|---|---|
| Motion dial useful range | -2 to +2 | +0.5 to +1.0 |
| Scene restages | Above about +2 | +1.5 to +2 |
| Prompt lost | Around +4 | +3 |
| Mood dials | +1 to +2 | +0.5 to +1 (dread tested) |
| Sampler | Your usual H3 setup | lcm, Pika’s step schedule unchanged |
Big motion pushes can smear fast-moving parts. The de-rope workflow in ComfyUI-MAINodes re-renders a slowed copy of the clip, then recovers the original frame rate.
It costs time. The author measured about 5.5-6 minutes per 1280×704, 141-frame, 6-step Pika clip with de-rope, versus about 1.5 minutes without, on one RTX PRO 6000 Max-Q (author-reported).
What the 6 November Update Added
- Word Dials: build a dial from four words instead of writing prompt pairs.
- Dials Lab: the experimental continuums above, such as oil painting to pixel art and owl to octopus.
- Dials on a first frame: with image-to-video, the first frame holds the look. Lower
guide_strengthin MAINodes’ H3 Cond Strength node to loosen it. - MAINodes Dial Rack: stack any number of dials on one model, switch each on or off, solo one, or hold a direction out.
- Strength over the clip: draw a strength curve over time with the mouse, or drive it from audio.
- MOSS-Image support: the nodes detect MOSS-Image; its strengths are about 2-4x H3’s.
Install MAINodes the same way: git clone https://github.com/matlowai/ComfyUI-MAINodes into ComfyUI/custom_nodes/, then restart. Most Motion Lab graphs also need ComfyUI-KJNodes.
Dials vs LoRAs vs Prompting
| Method | File size | Training | Best for | Weak at |
|---|---|---|---|---|
| H3 Dial | ~14 KB | None (prompt pairs) | Fine control of motion, mood, era, look; smooth -/+ sweeps | New faces, characters or styles |
| H3 LoRA (style, character) | Hundreds of MB to ~2 GB | Hours, needs a dataset | Adding new content H3 does not know | Gradual “how much” control |
| Speed LoRA (Pika, Turbo, Acc) | ~2 GB | Done by the publisher | Fewer steps, faster renders | Creative steering |
| Prompt wording | None | None | Quick changes | Precise, repeatable strength; no negative prompts on H3 |
For ready-made LoRAs, see my best MiniMax H3 LoRAs list. Dials stack on top of all of them.
Licence and Limits
- Node code, workflows, pair files and docs: AGPL-3.0. If you run modified code as a network service, you must share the source.
- Dial files (shipped and the ones you make): the MiniMax H3 Community License Agreement, because they count as model derivatives of H3. The text is in
dials/LICENSE-MiniMax-H3-Community.txtwith a requireddials/NOTICE. - ComfyUI-MAINodes: GPL-3.0-or-later.
- Testing is light: strengths were checked on a few scenes and seeds only.
- Other models: only H3 (and Pika H3 Flex, plus MOSS-Image via MAINodes) are supported. Other DiT models need a code table entry in
nodes.py. - Young project: 8 commits and no tagged release when I checked, so expect changes.
Note: the MiniMax H3 licence limits use to its Applicable Territory and Acceptable Use Policy. Read it before you use dial-made videos commercially.
Troubleshooting
| Problem | Cause | Fix |
|---|---|---|
| Dial does not show in Load Dial | File in the wrong folder | Move it to ComfyUI/models/loras/dials/ and refresh |
| Motion LoRA version feels weak | LoRA mode has about 0.6x the effect | Use about 1.6x the strength you would use on the hook dial |
| Dialogue turns to mumbling | Sinister dial at high strength | Keep sinister low, or swap to seductive or cold, which kept speech clean |
| Scene restages or character morphs on Pika | Motion above +1.5 | Stay at +0.5 to +1.0 |
| Character replaced by a different person | Silent film to cyberpunk dial at +3 | Stay below +3 |
| Subjects keep walking out of frame | Your pairs taught an action literally | Rewrite pairs to describe the quality, not the action |
| Make Dial report shows low pair agreement | Pairs differ in more than one way | Aim above 0.6: make pairs identical except for the target quality |
| Motion Lab graph shows 3 missing nodes | ComfyUI-KJNodes not installed | Install KJNodes and restart |
| git pull fails on MAINodes | Diverged history | Run git fetch and reset to origin/main, or re-clone |
| Image-to-video ignores the dial | First frame holds the look | Lower guide_strength in H3 Cond Strength (MAINodes) |
My Take
Dials are one of the cleverest H3 add-ons so far. A 14 KB file that gives you a smooth motion knob fixes the most common H3 complaint: clips that are either too static or too chaotic.
The motion dial is the one I would install first. It is predictable, stacks with Pika and the speed LoRAs, and the LoRA version even works with the stock loader.
The mood and lab dials are more of a playground. They are fun for music videos and short films, but check speech clarity and character consistency before you commit to a long render.
FAQ
Are H3 Dials free?
Yes. The node pack and dial files are free on GitHub and Hugging Face. The code is AGPL-3.0 and the dial files follow the MiniMax H3 Community License.
Do dials slow down rendering?
No. A dial is a small patch on the text conditioning, so normal renders take the same time. Only the optional de-rope pass adds minutes.
Can I use H3 Dials with Wan 2.2 or LTX?
Not out of the box. The pack targets MiniMax H3 and Pika H3 Flex, with MOSS-Image support via MAINodes; other models need a code change.
What strength should I start with?
Try +1 or -1 on base H3, and +0.5 to +1.0 on Pika H3 Flex. Then sweep in steps of 0.5 with a fixed seed.
Can I use more than one dial at once?
Yes. Chain several Apply Dial nodes, use Combine Dials, or use the Dial Rack in ComfyUI-MAINodes to switch and solo them.
Can a dial add a new character or art style?
No. Dials only change how strongly a quality you already get appears. Use a LoRA to add new content, and a dial to tune it.
Where do the dial files go?
Put them in ComfyUI/models/loras/dials/. Dials you make with Make Dial are saved there automatically.
Sources
- GitHub: matlowai/ComfyUI-Dials README (nodes, install, strengths, licence)
- Hugging Face: MATLOWAI/H3-Dials (dial file list, experimental dials, strengths)
- GitHub: matlowai/ComfyUI-MAINodes README (Dial Rack, de-rope, MOSS-Image support, licence)
- ComfyUI Wiki: “H3 Dials: 14 KB Sliders That Steer Motion and Mood in ComfyUI” (6 November 2026)
- Comfy-Org/MiniMax-H3 repack on Hugging Face (base model files)
