File size: 7,587 Bytes
8444283
 
 
 
 
a130229
 
8444283
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
697c00f
 
8444283
 
 
 
 
674ff27
 
 
 
 
 
 
 
 
 
 
 
 
 
8444283
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78a594b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d25a4ab
 
 
 
 
 
78a594b
 
 
 
d25a4ab
 
 
 
 
 
 
78a594b
 
 
 
 
 
8444283
 
 
 
 
 
 
 
 
 
 
 
 
 
78a594b
bcb7eb0
8444283
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
---
license: other
license_name: minimax-h3-community-license
license_link: https://huggingface.co/MiniMaxAI/MiniMax-H3/blob/main/LICENSE
base_model: MiniMaxAI/MiniMax-H3
base_model_relation: adapter
pipeline_tag: image-text-to-video
tags:
- lora
- video
- text-to-video
- vhs
- retro
- 1980s
- style
- minimax-h3
---

# vh5tape — a worn-VHS look for MiniMax H3

A style LoRA that makes H3 footage look like it was recorded off 1980s broadcast
television onto a VHS tape that has seen better days — soft smeared detail, chroma
bleed, tracking noise, head-switching bands at the frame edge, and (because H3
trains audio jointly) the matching muffled mono sound, tape hiss and warble.

The damage is a **prompt-controlled dial** with three trained levels, from a gentle
analog glow to a tape the VCR can barely hold onto.

<video controls playsinline width="720" src="https://huggingface.co/KennethFal/vh5tape-vhs-lora-minimax-h3/resolve/main/samples/vh5-trailer.mp4"></video>

## Gallery

All clips are raw single takes at 480P / 4:3 — none of this content was in the
training data.

<table>
<tr>
<td><video controls muted loop playsinline width="350" src="https://huggingface.co/KennethFal/vh5tape-vhs-lora-minimax-h3/resolve/main/samples/cartoon-robot.mp4"></video></td>
<td><video controls muted loop playsinline width="350" src="https://huggingface.co/KennethFal/vh5tape-vhs-lora-minimax-h3/resolve/main/samples/news-anchor.mp4"></video></td>
</tr>
<tr>
<td><video controls muted loop playsinline width="350" src="https://huggingface.co/KennethFal/vh5tape-vhs-lora-minimax-h3/resolve/main/samples/game-arcade.mp4"></video></td>
<td><video controls muted loop playsinline width="350" src="https://huggingface.co/KennethFal/vh5tape-vhs-lora-minimax-h3/resolve/main/samples/movie-horror.mp4"></video></td>
</tr>
<tr>
<td><video controls muted loop playsinline width="350" src="https://huggingface.co/KennethFal/vh5tape-vhs-lora-minimax-h3/resolve/main/samples/commercial-toy.mp4"></video></td>
<td><video controls muted loop playsinline width="350" src="https://huggingface.co/KennethFal/vh5tape-vhs-lora-minimax-h3/resolve/main/samples/musicvideo.mp4"></video></td>
</tr>
</table>

## Prompting

Prompt the way the model was trained: **trigger first, damage tier second, scene third.**

```
vh5tape, badly damaged VHS tape with heavy tracking errors and distortion. A loud
1980s local used car commercial: a salesman in a plaid suit shouts at a car lot
with strings of pennant flags and a spinning price sign, cheesy synthesizer
jingle, echoing announcer voice.
```

### The damage dial

| level | phrase |
|---|---|
| light | `lightly worn VHS tape with slight analog noise` |
| medium | `worn VHS tape recording with visible tape damage` |
| heavy | `badly damaged VHS tape with heavy tracking errors and distortion` |

### Tips

- **Trigger**: `vh5tape` — put it at the very start of the prompt.
- **Prompt expansion**: the LoRA was trained through H3's caption format, and the
  `balanced` expansion mode preserves the trigger and damage phrases — safe to keep on.
- **Scale**: `1.0` for the full look; `0.7–0.9` softens the wear if heavy prompts
  overshoot; up to `~1.5` pushes toward barely-watchable tape (fun for horror).
- **Sound comes along for free**: describe the audio ("muffled mono audio",
  "canned laughter", "cheesy jingle") and it renders appropriately tape-worn.
- **Dialogue**: give characters short explicit quoted lines
  (`the host says: "It slices, it dices!"`) — they come through near-verbatim.
- Period set dressing helps: wood paneling, studio lighting, 4:3, era wardrobe.

## Recipe (fal)

Works on the H3 and H3-Max LoRA endpoints
(`minimax/h3/text-to-video/lora`, `minimax/h3-max/text-to-video/lora`) and their
image-to-video LoRA siblings:

```json
{
  "prompt": "vh5tape, worn VHS tape recording with visible tape damage. A 1980s ...",
  "loras": [{ "path": "<url to vh5tape.safetensors>", "scale": 1.0 }],
  "resolution": "480P",
  "aspect_ratio": "4:3",
  "duration": 15,
  "prompt_expansion_mode": "balanced"
}
```

480P / 4:3 is the period-correct sweet spot; the style carries fine to higher
resolutions if you want clean pixels of a dirty tape.

## ComfyUI

`vh5tape.safetensors` loads in ComfyUI as-is — no conversion needed. It uses the
ComfyUI-native key layout (`diffusion_model.blocks.N.attn.{qkv_proj,out_proj}`,
fused QKV, alpha = rank), so all 104 modules load with no warnings.

**Base checkpoint — this is the thing that matters.** Use a non-pruned,
non-rotated base:

- ✅ `minimax_h3_fl2va_bf16.safetensors` (recommended)
- ✅ `minimax_h3_fl2va_pruned_fp8_scaled.safetensors`
- ❌ `*_int8_convrot`, `nvfp4`, `w4a8` — these store weights in a rotated /
  quantized basis. The LoRA loads without any error and then produces warped
  faces, melting limbs and disappearing objects. **The default checkpoint in the
  official ComfyUI H3 tutorial is `minimax_h3_fl2va_pruned_int8_convrot` — you
  must change it.** (Not specific to this LoRA — MiniMax-H3 LoRAs in general are
  made for fp16/fp8 bases.)

**Setup**

1. Put `vh5tape.safetensors` in `ComfyUI/models/loras/`.
2. `UNETLoader` (bf16 or fp8_scaled fl2va) → `LoraLoaderModelOnly` →
   `MiniMaxH3ImageToVideo` / your sampler.
3. Strength **1.0** (useful range 0.7–1.2).

**Sampling recipe** — H3 is CFG-distilled, so SDXL/Flux habits will degrade it
with or without a LoRA: use **BasicGuider** (not CFGGuider), `res_multistep` +
`simple`, ~**20 steps**, **video shift 12 / audio shift 3** (the MiniMax H3
Sigma Shift node). Stay near 1 MP (very low resolutions are unstable) and keep
prompts to a single shot.

**Stacking with a turbo LoRA:** drop this one to **0.4–0.6** — the two
perturbations add, and 4-step turbo has little headroom. (The `turbo_mode`
checkbox occupies its own LoRA slot; add a second `LoraLoaderModelOnly` for
this one.) 4-step turbo also softens the tape grain — ~20–25 full-precision
steps show the style best.

**If it looks wrong, two 2-minute checks:** (1) watch the console at load —
this LoRA should patch with **zero** "lora key not loaded" lines; (2) on a
quantized base, load the LoRA at **strength 0.0** and compare to no-LoRA — if
output degrades even at 0.0, the damage is the quantize→merge→requantize
round-trip on your base checkpoint, not this LoRA: switch to the bf16 base.

`vh5tape-comfyui.safetensors` is an optional convenience build: bit-identical
weights plus explicit `.alpha` tensors (= rank, scale 1.0) and the base-model
requirement in its metadata — same look, just harder to mis-load in
third-party loaders.

## Training

Trained with fal's MiniMax H3 t2v trainer (rank 32, 5,000 steps, 4:3, joint
video+audio objective) on a small hand-curated set of four-second clips of period
broadcast material — sitcoms, soap operas, commercials, news and station
sign-offs — each captioned with its content and one of the three damage-tier
phrases above. The 5,000-step checkpoint beat its 2k/3k/4k/6k siblings in blind
A/B testing; more steps past 5k made the damage *tamer*, not heavier.

## Get the weights

| file | what |
|---|---|
| [`vh5tape.safetensors`](./vh5tape.safetensors) | the LoRA, rank 32, 5,000 steps |
| [`vh5tape-comfyui.safetensors`](./vh5tape-comfyui.safetensors) | same weights bit-exact + explicit alpha tensors, for ComfyUI (see the ComfyUI section) |
| [`PROMPTS.md`](./PROMPTS.md) | the exact prompts + seeds behind every sample above |

Made for **H3-TV** — a 1970s portable CRT being rebuilt to play an endless,
slightly wrong 1980s broadcast day.