huggingface / huggingface/diffusers

In StableAudioPipeline initial_audio_waveforms basically have no effect on output because of latent scaling

Aperta
#10,861 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug stale
Lingua principale
Python
Stelle
34.5k
Fork
7.3k
Merge medio
3g 3h
PR unite (30g)
91

Descrizione

### Describe the bug

I think it is not intended
In default pipe pipe.scheduler.init_noise_sigma = 500, first it scales up noise and then add latent of provided initial_audio_waveforms
So latent variable is like [-2000, 2000] while encoded audio is like [-4, 4]

I think this should be correct math here
```
latents = randn_tensor(shape, generator=generator, device=device, dtype=dtype)
encoded_audio = ...
latents = (encoded_audio + latents) / 2
# scale the initial noise by the standard deviation required by the scheduler
latents = latents * self.scheduler.init_noise_sigma
```

### Reproduction
```
import torch
import soundfile as sf
from diffusers import StableAudioPipeline

pipe = StableAudioPipeline.from_pretrained("stabilityai/stable-audio-open-1.0", torch_dtype=torch.bfloat16)
pipe = pipe.to("cuda")

prompt = "ominous primordial melodies"
negative_prompt = "Low quality."

import torchaudio
data, samplerate = sf.read('path to some audio')

generator = torch.Generator("cuda").manual_seed(0)
audio = pipe(
prompt,
negative_prompt=negative_prompt,
num_inference_steps=200,
num_waveforms_per_prompt=1,
initial_audio_waveforms=data.to("cuda").to(torch.bfloat16),
initial_audio_sampling_rate=pipe.vae.sampling_rate,
generator=generator,
).audios
```
### Logs

```shell

```

### System Info

diffusers version 0.32.2

### Who can help?

_No response_

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Parti dal punto di ingresso StableAudioPipeline e riproduci il problema con lo script fornito e diffusers 0.32.2. Traccia come vengono codificati initial_audio_waveforms, combinati con latenti casuali e scalati tramite scheduler.init_noise_sigma; il lavoro è completato quando l’audio iniziale ha l’effetto previsto sull’output generato senza compromettere il comportamento esistente della pipeline.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python, pytorch
Ambito
machine-learning
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.