suryatmodulus
/

suryatmodulus mifinkelson commited on
Commit
ce8b1cd
·
0 Parent(s):

Duplicate from mifinkelson/scena

Browse files

Co-authored-by: Michael Finkelson <mifinkelson@users.noreply.huggingface.co>

Files changed (4) hide show
  1. .gitattributes +35 -0
  2. README.md +105 -0
  3. audio_vae.safetensors +3 -0
  4. scena.safetensors +3 -0
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: other
3
+ license_name: ltx-2-community-license
4
+ license_link: https://huggingface.co/Lightricks/LTX-2/blob/main/LICENSE
5
+ language:
6
+ - en
7
+ tags:
8
+ - audio
9
+ - text-to-audio
10
+ - audio-generation
11
+ - speech
12
+ - reference-conditioning
13
+ - multi-speaker
14
+ - flow-matching
15
+ - diffusion
16
+ - ltx
17
+ library_name: ltx-audio
18
+ pipeline_tag: text-to-audio
19
+ ---
20
+
21
+ # ScenA — Reference-Driven Multi-Speaker Audio Scene Generation
22
+
23
+ **ScenA** generates multi-speaker audio *scenes* (dialogue, conversation) from a text
24
+ prompt, conditioned on one or more **reference-audio** clips that set the speakers'
25
+ voices. It is an audio-only, reference-conditioned text-to-audio flow-matching DiT
26
+ built on the LTX-2 architecture (~4B parameters, 48 layers).
27
+
28
+ - 📄 **Paper:** [arXiv:2606.19325](https://arxiv.org/abs/2606.19325)
29
+ - 🌐 **Project page:** https://finmickey.github.io/scena/
30
+ - 💻 **Code:** https://github.com/finmickey/scena
31
+ - 🏢 Lightricks · Tel Aviv University
32
+
33
+ ## Files
34
+
35
+ | file | size | contents |
36
+ |---|---|---|
37
+ | `scena.safetensors` | ~8.2 GB | the ScenA transformer + Gemma text-projection weights |
38
+ | `audio_vae.safetensors` | ~365 MB | the audio VAE (encoder+decoder) + vocoder (bundled so you don't need the full LTX-2 model) |
39
+
40
+ You also need the **Gemma-3-12B-IT** text encoder (`google/gemma-3-12b-it`, gated on HF).
41
+
42
+ ## Quickstart
43
+
44
+ ```bash
45
+ git clone https://github.com/finmickey/scena
46
+ cd scena
47
+ pip install -e . # or: uv sync
48
+
49
+ # download the checkpoint + audio VAE bundle
50
+ huggingface-cli download mifinkelson/scena scena.safetensors audio_vae.safetensors --local-dir ./checkpoints
51
+ ```
52
+
53
+ Two example reference voices ship with the repo under `examples/references/` — the same two voices
54
+ drive both examples below, so this runs out of the box:
55
+
56
+ ```python
57
+ from ltx_pipelines.t2aud_ref_cond import T2AudRefCondPipeline
58
+
59
+ pipe = T2AudRefCondPipeline(
60
+ checkpoint_path="checkpoints/scena.safetensors",
61
+ audio_vae_path="checkpoints/audio_vae.safetensors",
62
+ gemma_root="/path/to/google/gemma-3-12b-it",
63
+ )
64
+
65
+ refs = ["examples/references/reference_1.wav", "examples/references/reference_2.wav"]
66
+
67
+ # A simple two-speaker dialogue
68
+ pipe(
69
+ prompt='The speaker from reference 1 says: "The taxi drivers are on strike again." The speaker from reference 2 says: "What for?" The speaker from reference 1 says: "They want the government to reduce the price of the gasoline." The speaker from reference 2 says: "It is really a hot potato."',
70
+ ref_audio_paths=refs,
71
+ duration=7.0,
72
+ seed=1,
73
+ ).save("dialogue.wav")
74
+
75
+ # Farm at sunrise — the same two voices in a scene with sound effects
76
+ pipe(
77
+ prompt='A farm at sunrise: a rooster crows. Chickens cluck softly throughout. The speaker from reference 1 says with a yawn: "Way too early for this." The speaker from reference 2 chuckles: "Welcome to country life." The rooster crows again.',
78
+ ref_audio_paths=refs,
79
+ duration=8.0,
80
+ seed=1,
81
+ ).save("farm.wav")
82
+ ```
83
+
84
+ ### Prompting guide
85
+ - Refer to speakers as **"the speaker from reference 1"**, **"reference 2"**, … matching the
86
+ order of `ref_audio_paths`.
87
+ - Put the spoken words **in quotes**; describe sound effects / ambience in plain prose
88
+ (e.g. *"rain drums steadily on a tin roof"*, *"a roaring stadium crowd cheers"*).
89
+ - Reference clips: clean single-speaker speech, up to ~20 s each — the more the better (any sample rate; mono or stereo).
90
+ - You don't have to follow a strict turn-taking pattern; see the [demo page](https://finmickey.github.io/scena/) for more varied examples.
91
+ - 60 inference steps, guidance ~7, and output durations up to ~20 s work best (the model was trained on ≤20 s scenes).
92
+
93
+ ## Citation
94
+
95
+ ```bibtex
96
+ @article{finkelson2026scena,
97
+ title = {Reference-Driven Multi-Speaker Audio Scene Generation from In-the-Wild Priors},
98
+ author = {Finkelson, Michael and Segal, Daniel and Richardson, Eitan and Armon, Shahar and Goldring, Nani and Panet, Poriya and Zabari, Nir and Brazowski, Benjamin and Patashnik, Or and HaCohen, Yoav},
99
+ journal = {arXiv preprint arXiv:2606.19325},
100
+ year = {2026}
101
+ }
102
+ ```
103
+
104
+ ## License
105
+ Released under the [LTX-2 Community License](https://huggingface.co/Lightricks/LTX-2/blob/main/LICENSE).
audio_vae.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b1f536f192420e1abd936b5ff10ea0ef7204058db2e1e79a865ab36e06b29847
3
+ size 364831364
scena.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3cb54ca58aa61eae5823cca01563463dd096b8fa39352f9a02f7232dfabadd35
3
+ size 8153188488