- H3 Dials: training-free steering for MiniMax H3
- Moving edges: Hard ↔ Soft (experimental)
- A curve, not a constant
- On Pika H3 Flex, with de-rope
- Motion: Freeze ↔ Zoomies
- Villainy pack: eight flavours of evil (hook dials)
- On Pika H3 Flex (6 steps)
- Five dials from a magic-duel bake-off
- Four anime dials on a time curve
- Experimental dials (lab)
- What makes a dial different
- Thanks
- License
- Moving edges: Hard ↔ Soft (experimental)
H3 Dials: training-free steering for MiniMax H3
Dials are ~14 KB steering files made from prompt pairs, with no training. Each dial is one direction in MiniMax H3's processed-prompt space. Its strength is a slider:
- negative moves every generation toward the pair's A side;
- positive moves it toward the B side.
Dials are developed in ComfyUI-MAINodes
(dials/): Make Dial, the Dial Rack (many dials
on one model, each with an optional time curve over the clip), Render Preset and the Simple blueprint. Start with
dials_simple_pika_derope.json
and the Dials guide.
ComfyUI-Dials stays the stable original pack (Load Dial → Apply Dial)
and hosts the Dials pages:
Dials on a Curve,
Lab,
Word Dials,
First Frame and
MOSS-Image. Both packs read the same files: put the dials in
ComfyUI/models/loras/dials/.
Moving edges: Hard ↔ Soft (experimental)
h3_blur_moving_edges_hook.safetensors is a MiniMax H3 post-refiner hook: negative = hard/crisp moving edges, positive = soft/feathered moving edges. Built from eight matched prompt pairs.
Tested on Pika H3 Flex (6 steps), including a same-reference 0 versus −6 ninja-kick pair, seed 42, 768×512, 39 frames, with de-rope off and Oracle on. −6 is a tested probe, not a universal recommendation. Pose, timing and style can change; extreme values can alter identity or shift toward painterly rendering. This is an experimental edge/style direction, not calibrated motion-blur control.
A curve, not a constant
dials/h3_impact_frame.safetensors at 4.5, text to video on Pika H3 Flex (6 steps), same prompt and seed. Left: no
dial. Middle: 4.5 held for the whole clip replaces the shot with an ink drawing. Right: the same 4.5 on a 0.5 s pulse at
the punch: about six frames of black silhouettes in an ink starburst, then the dojo comes back. Underneath: the curve
and the measured change from the baseline (solid: the curve take; dashed: the constant one). Sound from the curve take.
A dial's strength can follow a time curve on its Dial Rack row in MAINodes
(how); more below in
Five dials from a magic-duel bake-off and
Four anime dials on a time curve.
On Pika H3 Flex, with de-rope
Top to bottom: MiniMax H3 base, 25 steps, no de-rope; then Pika H3 Flex (6 steps) with motion +0.5 and de-rope, at dread 0, +0.5 and +1. Same prompt and seed. A de-roped Pika clip takes about as long as one 25-step base render (about 6 min at 1280x704 on one RTX PRO 6000 Max-Q) and comes out with more motion and crisper frames; the end card has the timings, motion and sharpness.
Motion: Freeze ↔ Zoomies
Left to right: dial −2, base, dial +2 (same prompt and seed).
| file | mode | load with | notes |
|---|---|---|---|
dials/h3_motion.safetensors |
hook (after H3's text refiner) | a MAINodes Dial Rack row, or ComfyUI-Dials Load Dial → Apply Dial | the reference version. −2: near-frozen, cinemagraph-like (0.05× base motion). +2: everything zooms (≈2.7× base motion) |
dials/h3_motion_lora.safetensors |
LoRA file (condition_proj bias diff) |
stock Load LoRA (model only), a Dial Rack row, or Load Dial | the same pairs, about 0.6× the effect per unit (use ~1.6× strength) |
Built from 24 prompt pairs: 8 subjects × 3 phrasings of still/posing/frozen vs running/jumping/moving
energetically. Pair agreement is 0.78. The pairs are in example_pairs/.
Villainy pack: eight flavours of evil (hook dials)
Made with debias on, so each flavour is its own direction (motion is unrelated to all of them). +1 to +2 is the sweet spot; +4 is extreme.
| file | turns the scene toward | notes |
|---|---|---|
dials/h3_evil_sinister.safetensors |
menace: shadows across faces, dim rooms, looming silhouettes | ⚠️ tends to break the audio: speech gets crushed (Whisper word error 0.84 at +2 vs 0.00 at base). Keep it low for clear dialogue |
dials/h3_evil_creepy.safetensors |
uncanny: unnervingly wide smiles, subtly wrong movement, sterile spaces | |
dials/h3_evil_cold.safetensors |
icy: flat, calculating, emotionless | |
dials/h3_evil_unhinged.safetensors |
maniacal, wild-eyed | ⚠️ really is unhinged, beware: screaming, lunging intimidation even at +2 (leans aggressive; no gore seen) |
dials/h3_evil_seductive.safetensors |
a charming smile hiding dark intent | speech stays clean |
dials/h3_evil_corrupted.safetensors |
decay and rot creeping in | |
dials/h3_evil_dread.safetensors |
foreboding atmosphere, no character needed | |
dials/h3_evil_impish.safetensors |
mischievous trickster | the lighter end |
These have been checked on a handful of scenes, so treat them as creative tools. Pair files are in example_pairs/.
On Pika H3 Flex (6 steps)
Dread 0 / +0.5 / +1 with motion +0.5 on Pika H3 Flex (same prompt and
seed; audio from +1). The dials work on Pika unchanged and keep the prompt and characters. On Pika, +0.5 to +1 is the
useful range for motion and evil alike. Ready-made workflows: in MAINodes, the Simple front door
(examples/dials/: Render Preset → Dial Rack →
the Dials - H3 + De-rope blueprint); in the original pack, Pika + motion dial + evil slot, with and without de-rope:
ComfyUI-Dials › Pika H3 Flex + Dials.
Motion dial on Pika: 0 to +3
1280x704, same prompt and seed. +0.5 / +1.0: same scene, more action (+20 % / +23 % camera-removed motion). +1.5 / +2.0: the scene restages and characters morph. +3: loses the prompt.
De-rope vs no de-rope
Motion +1.0. De-rope finds stretches that move too fast for the frame rate, re-renders them slowed down and maps them back to real time, keeping the original audio. The workflow default re-enters at inject 0.48; a 6+6 schedule is included as an experimental workflow. At 1280x704, a de-roped Pika clip takes about 5.5–6 min, about the same as one 25-step render of the base model without de-rope (about 5.5 min).
These two videos were rendered with an earlier wording of the example prompt, before the magical-girl rewrite. Re-renders with the current wording are coming.
Five dials from a magic-duel bake-off
Five hook dials tried on one anime magic duel: Pika H3 Flex with reference pictures (a storyboard frame plus character
sheets of two original adult characters, a mage student and her examiner), 6 steps, lcm, manual sigmas, cfg 1,
1280x704, one seed (4242). Every dial row rides the same time curve (a power-up ramp to the collision, then held) with
blend steps k = 6 and audio: protect. All five were made with MAINodes Make Dial: arcane sigils for this
bake-off, the other four earlier and calibrated here. Pairs and suggested strengths are in example_pairs/<name>.txt,
and each file carries its own description, labels and useful strength (⚙ in the Dial Rack).
Same board, prompt and seed in every tile. Top: baseline, psychedelic 4, psychedelic 3 + space warp 3. Middle: dramatic light 3, storm 2.5, storm 1.5 + dramatic light 2. Bottom: arcane sigils 3, arcane sigils 3 + psychedelic 3, and the close-up that follows the clash (dramatic light 1.5 held; frozen on its first frame until 2.1 s). The bar underneath is the curve. One soundtrack for all (dramatic light's): with audio: protect the look dials stayed within 2.5 LU of the undialled sound.
| file | suggested | what it did | notes |
|---|---|---|---|
dials/h3_dramatic_light.safetensors |
3 on a wide; about 1.5 held on a close-up | the most combat-readable clash: a white flash, shards, hard contrast, faces kept | lighting ramps in more broadly than the look dials, so start its curve a little early. In text to video the contrast came with layout changes; −2 gave flat, even light |
dials/h3_psychedelic.safetensors |
2.5 to 4 on a spell build-up | 4 on a single caster: a full neon rainbow vortex, face and coat kept | needs k = 6 (at k = 2 no colour came up to 5). On the busier duel 4 hides the clash. ⚠️ On a close, dancing figure 2 changed the costume (a skin-tight rainbow suit); 1.5 kept it |
dials/h3_space_warp.safetensors |
2.5 to 4 | the magic rings become a spiral tunnel | at 4 the caster turned her back at the peak. The vortex = psychedelic + space warp: at 3 + 3 it swallows the duel's beam after about 2 s, so start at 2 + 2; held at 3 + 3 on a close-up it replaced the face |
dials/h3_arcane_sigils.safetensors |
2 to 3 on a spell build-up | 3: a huge runic magic circle on the floor with sub-circles | the only one here that drew its own look at k = 2 as well. On the duel it replaced the beam with a corridor of runic circles; with psychedelic 3 + 3, an iridescent runic mandala |
dials/h3_storm.safetensors |
2.5 | wind, dust and energy arcs, no rain; the examiner lunges into a fighting stance | ⚠️ changes the sound even on audio: protect (+2.5 to +3.4 LU, music-like). The storm side of the pairs has bending trees and flying debris, so it adds motion too (an earlier text-to-video check rejected it as a pure weather dial for that reason). With dramatic light keep it at 1.5 + 2 (2 + 2.5 turned the impact into a black ink blot) |
Set blend steps to 6 for look dials with reference pictures. With k = 2, psychedelic (1 to 5) and space warp (1.5 to 4) only flipped the layout of the magic rings and drew no colour: on Pika's 6 steps with reference pictures the look is written in steps 3 to 6. A k = 6 row costs about 1.7× the render time per distinct curve.
The spell build-up
The first shot: one caster stacks rings into a sphere and releases it (same board and seed; peak strengths in the labels). The curve ramps over the build-up, holds while the sphere is closed (3.5 to 3.95 s) and drops at the release. This shot ran with audio: follow, so the dials reach the soundtrack too (psychedelic and space warp added a roaring whoosh, +6 to +9 LU); the sound here is psychedelic's. Use audio: protect unless you want that.
Dramatic light and storm on the duel
Baseline | dramatic light 3 on the power-up ramp. Sound from the dial take.
Baseline | storm 2.5 | storm 1.5 + dramatic light 2. Storm makes the examiner fight back, so a one-sided duel turns into an even one. Sound from storm 2.5 (audio: protect, still 3.4 LU louder and music-like).
Four anime dials on a time curve
Four hook dials made with ComfyUI-MAINodes Make Dial, one prompt
pair each over eight adult subjects (debias on), and tested on the time curve each one is for in the Dial Rack.
See every strength we rendered, in sync with its baseline and with sound:
Dials on a Curve. Pairs and suggested strengths are in
example_pairs/<name>.txt ({subject} expands over subjects_adults_places.txt), and each file carries its own
description, labels and strengths (⚙ in the Dial Rack). All on Pika H3 Flex (6 steps, lcm, manual sigmas, cfg 1),
one scene and seed per dial, time-curve rows with blend steps k = 6 and audio: protect.
| file | curve | text to video | with a reference picture | notes |
|---|---|---|---|---|
dials/h3_impact_frame.safetensors |
a 0.5 s pulse at the hit | pulse 4.5; constant 3 for a whole-clip ink look | pulse 6 (an ink burst over the contact, not full-frame) | the anime hit flash: ~6 frames of black silhouettes on white in an ink starburst, then the shot comes back. Held constant it replaces the shot. 8 on the pulse drew less than 6 |
dials/h3_aura.safetensors |
ramp and hold | ramp 2 (costume and hair drift; 3 bursts from frame 0) | ramp 2.5 (2 softer) | a halo ring, energy spikes and dust. ⚠️ The dial also pushes the camera in to a close-up, and the face drifts there. The soundtrack got ~18 LU louder (a wind roar) even with audio: protect |
dials/h3_ink_wash.safetensors |
best held constant | constant 1.5 to 2; seep in/out 2 at k = 6 | draws nothing (tried up to 6) | a flowing black ink-wash painting on paper. Best as a constant look on text to video. On a curve it follows, but the scene re-composes as it washes in and out (k = 2 smears the look over the clip) |
dials/h3_colour_drain.safetensors |
a snap (step) | greys at 4 to 5 but restages the set into masked mannequins | snap 4 (3 draws nothing) | full colour to flat grey and back with the same characters. Starts ~0.3 s before the key |
Each clip: baseline, the dial held for the whole clip, the dial on its curve; the curve and the measured change from the baseline are drawn underneath. Sound from the curve take.
What changes with a reference picture: it holds the style, so the useful strength depends on the pipeline (ink wash drew nothing with one; colour drain needed 4; impact frame 6 instead of 4.5). With a reference picture, aura and colour drain followed their curves at k = 2 as well as k = 6; without one, ink wash needed k = 6. Start look dials on curves at k = 6.
Experimental dials (lab)
Ten hook dials from a night of odd contrasts, made with
ComfyUI-MAINodes Make Dial (post-refiner, debias on). They are
experiments, not polished tools, but each one does something interesting. See them in motion with sound:
Dials Lab. Every dial ships with its prompt pairs in
example_pairs/experimental/<name>.txt (the first line says what A and B are; {subject} expands over
subjects_adults.txt, or settings.txt for the owl), and each file carries its own description, labels and
useful/overcook strengths (⚙ in the Dial Rack). Strengths below are for Pika H3 Flex (6 steps, text-to-video) on one
scene, seeds 42/43.
| file | kind | − side · + side | what it does |
|---|---|---|---|
dials/experimental/h3_x_oil_pixel.safetensors |
style continuum | period drama · pixel art | −3 photoreal period drama (often a rider on a horse indoors); +1.5 side-scroller staging; +2 isometric diorama; +2.5/+3 a pixel-art game level |
dials/experimental/h3_x_datamosh.safetensors |
plain vs featured | wholesome vintage · datamosh | +2.25 keeps the subject crisp while the background breaks into a glitch mosaic; +2.5 glitch portraits (identity changes); +3 glitch only |
dials/experimental/h3_x_owl_octopus.safetensors |
creature continuum | owl · octopus | needs an animal in the scene. On an owl: +1.5 a barn owl, +2.5/+3 an octopus in the same place, +4.5 the setting follows (a coral reef). No hybrid in between |
dials/experimental/h3_x_memory_present.safetensors |
abstract | vivid present · faded memory | a gentle look dial: crisp saturated daylight vs misty, faded, wistful light |
dials/experimental/h3_x_order_entropy.safetensors |
abstract | order · entropy | tidy and calm vs debris, dust and a person running (motion leaks in on the + side) |
dials/experimental/h3_x_silentfilm_cyberpunk.safetensors |
style continuum | 1920s · neon cyberpunk | arrives as era and setting (photoreal), not as film grain. ⚠️ at +3 the character is replaced by a younger-looking woman; stay below +3 to keep your character |
dials/experimental/h3_x_vhs.safetensors |
opposites (look) | clean digital · VHS era | +3 gives a 4:3 pillarboxed frame and older trains rather than tape noise |
dials/experimental/h3_x_film_artifact.safetensors |
artifact described | clean colour · old-film grade | a negative result kept on purpose: describing grain, dust and scratches gave a cool desaturated grade and no grain |
dials/experimental/h3_x_template_placebo.safetensors |
control | grey scarf · blue scarf | a meaningless dial (vector length ≈ 10). Scale it to another dial's push to see what any push of that size does on its own |
dials/experimental/h3_x_sinister_noview.safetensors |
control | warm · sinister | the sinister slot text in templates without camera words (cos 0.968 to h3_evil_sinister); shows the templates don't drive the dial |
Two dials together: oil_pixel at −3 plus datamosh at +1.5 to +2.25 turns the photoreal period drama into an actual oil painting with visible brushwork (2 seeds). The placebo at the same push does not.
Speech on Pika: in a two-line dialogue test (one seed), every villainy dial at +2 kept the words on Pika H3 Flex (Whisper word error 0.00; unhinged 0.00-0.05, shouted), including sinister, which crushed speech on base H3.
Lessons for making your own: pair agreement is a floor, not a verdict (dials that worked and dials that failed both scored 0.75-0.85); style words arrive as an era before they arrive as a medium; a creature or object continuum needs its subject in the scene; compare against a placebo of the same push.
What makes a dial different
- Not a LoRA or slider LoRA: nothing is trained. A dial is computed from prompt pairs in about a minute and only steers what H3 already knows.
- Not a RefMod: no reference images or video. A dial changes how much of a quality any prompt gets, not what is shown.
- Not an SD-era embedding: it isn't a word you type. It's a signed direction added to every prompt token, where the DiT reads the prompt.
- Not a negative prompt: H3 is guidance-distilled (no CFG), so negative prompts don't work. Dials give that kind of control back, in both directions.
There's a full comparison table in the GitHub README.
Thanks
Thanks to DaveSnow, whose Natural_detailV2 dataset and every-second-block observation started the research behind this. Powered by MiniMax H3.
License
These dial weight files are Model Derivatives of MiniMax H3 and are distributed under the MiniMax H3 Community
License Agreement (LICENSE-MiniMax-H3-Community.txt, notice in NOTICE), including its Applicable Territory and
Acceptable Use Policy terms. The node code is separate, on GitHub: ComfyUI-MAINodes (GPL-3.0-or-later) and
ComfyUI-Dials (AGPL-3.0).
- Downloads last month
- 2,693
Model tree for MATLOWAI/H3-Dials
Base model
MiniMaxAI/MiniMax-H3