ONNX
webgpu
int4
GCStream commited on
Commit
6486522
·
verified ·
1 Parent(s): e2cd286

tts4_int4: set measured steps/cfg

Browse files
Files changed (1) hide show
  1. tts4_int4/manifest.json +44 -43
tts4_int4/manifest.json CHANGED
@@ -1,45 +1,46 @@
1
  {
2
- "graphs": {
3
- "dit_step": "dit_step.onnx",
4
- "vocoder": "vocoder.onnx"
5
- },
6
- "vocoder_tail": {
7
- "why": "this vocos variant ends in an ISTFTHead (complex spectrogram); ONNX has no complex tensors, so the graph stops at the linear head",
8
- "planes": "[B, 1026, T] = concat(mag_pre, phase)",
9
- "browser_tail": [
10
- "mag = min(exp(planes[:513]), 1e2)",
11
- "phase = planes[513:]",
12
- "spec = mag * (cos(phase) + i * sin(phase)) # [513, T]",
13
- "wav = istft(spec, n_fft=1024, hop=256, win=1024, hann, center=True)"
14
- ],
15
- "reference": "web/src/audio/istft.js (pinned by tests/test_istft.py)",
16
- "samples_per_frame": 256
17
- },
18
- "dtype": "float16",
19
- "opset": 20,
20
- "mel": {
21
- "target_sample_rate": 24000,
22
- "n_mel_channels": 100,
23
- "hop_length": 256,
24
- "n_fft": 1024,
25
- "win_length": 1024,
26
- "mel_spec_type": "vocos"
27
- },
28
- "vocab": {
29
- "file": "vocab.txt",
30
- "size": 2545,
31
- "note": "ASCII + numbered pinyin (ai3, ni3); NO CJK glyphs, so Chinese text must be converted to pinyin with tones before lookup"
32
- },
33
- "sampler": {
34
- "solver": "euler",
35
- "steps": 32,
36
- "sway_sampling_coef": -1.0,
37
- "schedule": "t = linspace(0, 1, steps + 1); t = t + sway * (cos(pi/2 * t) - 1 + t); step y += dt * v",
38
- "cfg_strength": 2.0,
39
- "cfg_note": "run the step graph twice (cond and text, then cond=0 and text=0) and combine pred + (pred - null) * cfg_strength; the uncond call differs slightly from the repo's internal drop_text (filler-token embedding vs learned zeros), so set cfg_strength=0 for exact parity"
40
- },
41
- "vocoder_chunk_frames": 375,
42
- "vocoder_chunk_note": "chunk long mel (375 frames ~ 4 s at hop 256) rather than one huge pass: the backbone is convolutional, so chunking changes the boundary only",
43
- "sample_rate": 24000,
44
- "source_ckpt": "/root/WebASMR/models/f5tts_4step.pt"
 
45
  }
 
1
  {
2
+ "graphs": {
3
+ "dit_step": "dit_step.onnx",
4
+ "vocoder": "vocoder.onnx"
5
+ },
6
+ "vocoder_tail": {
7
+ "why": "this vocos variant ends in an ISTFTHead (complex spectrogram); ONNX has no complex tensors, so the graph stops at the linear head",
8
+ "planes": "[B, 1026, T] = concat(mag_pre, phase)",
9
+ "browser_tail": [
10
+ "mag = min(exp(planes[:513]), 1e2)",
11
+ "phase = planes[513:]",
12
+ "spec = mag * (cos(phase) + i * sin(phase)) # [513, T]",
13
+ "wav = istft(spec, n_fft=1024, hop=256, win=1024, hann, center=True)"
14
+ ],
15
+ "reference": "web/src/audio/istft.js (pinned by tests/test_istft.py)",
16
+ "samples_per_frame": 256
17
+ },
18
+ "dtype": "float16",
19
+ "opset": 20,
20
+ "mel": {
21
+ "target_sample_rate": 24000,
22
+ "n_mel_channels": 100,
23
+ "hop_length": 256,
24
+ "n_fft": 1024,
25
+ "win_length": 1024,
26
+ "mel_spec_type": "vocos"
27
+ },
28
+ "vocab": {
29
+ "file": "vocab.txt",
30
+ "size": 2545,
31
+ "note": "ASCII + numbered pinyin (ai3, ni3); NO CJK glyphs, so Chinese text must be converted to pinyin with tones before lookup"
32
+ },
33
+ "sampler": {
34
+ "solver": "euler",
35
+ "steps": 4,
36
+ "sway_sampling_coef": -1.0,
37
+ "schedule": "t = linspace(0, 1, steps + 1); t = t + sway * (cos(pi/2 * t) - 1 + t); step y += dt * v",
38
+ "cfg_strength": 0.0,
39
+ "cfg_note": "run the step graph twice (cond and text, then cond=0 and text=0) and combine pred + (pred - null) * cfg_strength; the uncond call differs slightly from the repo's internal drop_text (filler-token embedding vs learned zeros), so set cfg_strength=0 for exact parity",
40
+ "measured_note": "4 steps, CFG 0: reflow-distilled student. CER 0.597 vs 0.775 for the teacher at 4:0, still short of the 16-step 0.097. Experimental."
41
+ },
42
+ "vocoder_chunk_frames": 375,
43
+ "vocoder_chunk_note": "chunk long mel (375 frames ~ 4 s at hop 256) rather than one huge pass: the backbone is convolutional, so chunking changes the boundary only",
44
+ "sample_rate": 24000,
45
+ "source_ckpt": "/root/WebASMR/models/f5tts_4step.pt"
46
  }