Buckets:
| # Stable Audio 3 | |
| Stable Audio 3 (SA3), [Stability AI](https://stability.ai/) tarafından geliştirilen, 44,1 kHz'de yüksek kaliteli stereo ses üreten bir metinden sese modelidir. İki sinyale koşullanan bir rectified-flow DiT kullanır: | |
| * **Metin** — dondurulmuş bir T5Gemma kodlayıcı tarafından kodlanır ve çapraz dikkat (cross-attention) yoluyla enjekte edilir. | |
| * **Süre** — [StableAudio3DurationEmbedder](/docs/diffusers/main/tr/api/pipelines/stable_audio_3#diffusers.StableAudio3DurationEmbedder) tarafından gömülen ve uyumlu katman normalizasyonu için küresel koşullandırma vektörü olarak kullanılan bir ondalık sayı (saniye). | |
| Ses, [AutoencoderSAME](/docs/diffusers/main/tr/api/models/autoencoder_same#diffusers.AutoencoderSAME) otomatik kodlayıcısı tarafından SAME (Semantically-Aligned Music Encoder) ile çözümlenir. | |
| Her iki kontrol noktası da log-SNR-uniform sigma zamanlamasıyla [FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler) kullanır; yalnızca `stochastic_sampling` ve varsayılan adım sayısı açısından farklılık gösterirler: | |
| | Kontrol Noktası | `diffusion_objective` | `stochastic_sampling` | `num_inference_steps` | | |
| |---|---|---|---| | |
| | `stable-audio-3-medium-base` | `rectified_flow` | `False` (deterministik Euler) | **100** (damıtılmamış) | | |
| | `stable-audio-3-medium` (damıtılmış) | `rf_denoiser` | `True` (ping-pong yeniden gürültü) | **8** (8 adımda damıtıldı) | | |
| Doğru zamanlayıcı yapılandırması, dönüştürülen her kontrol noktasına gömülüdür; bu nedenle `num_inference_steps` parametresini ayarlamazsanız varsayılan olarak doğru değeri alır. Yalnızca bu değeri geçersiz kılmak istediğinizde parametreyi iletin. | |
| Orijinal kod tabanı: [Stability-AI/stable-audio-3](https://github.com/Stability-AI/stable-audio-3). | |
| ## Orijinal denetim noktalarını dönüştürme | |
| Stability AI kontrol noktaları diffusers biçiminde yayımlanmadığından, bunları yerel olarak dönüştürün. Betik, kontrol noktasının `model_config.json` dosyasını indirir ve zamanlayıcıyı `diffusion_objective` alanından seçer: | |
| ```bash | |
| python scripts/convert_stable_audio_3_to_diffusers.py \ | |
| --checkpoint_path stabilityai/stable-audio-3-medium-base \ | |
| --text_encoder_repo google/t5gemma-b-b-ul2 \ | |
| --output_dir /tmp/sa3-diffusers-euler \ | |
| --dtype float32 | |
| ``` | |
| > [!TIP] | |
| > `stable-audio-3-medium-base` bir **gated** depodur. Dönüştürmeden önce, erişimi olan bir hesapla `hf auth login` komutunu çalıştırın; aksi takdirde indirme 401 hatasıyla başarısız olur. | |
| ## Kullanım örneği | |
| Dönüştürülen kontrol noktasını yerel çıktı dizininden yükleyin ([`soundfile`](https://pypi.org/project/soundfile/) paketini `pip install soundfile` ile yükleyin): | |
| ```py | |
| import torch | |
| import soundfile as sf | |
| from diffusers import StableAudio3Pipeline | |
| pipe = StableAudio3Pipeline.from_pretrained("/tmp/sa3-diffusers-euler", torch_dtype=torch.float32) | |
| pipe = pipe.to("cuda") # or "mps", "xpu", "cpu" | |
| generator = torch.Generator("cuda").manual_seed(0) | |
| audio = pipe( | |
| "A gentle piano melody with soft strings in a concert hall", | |
| duration=10.0, # seconds; latent length is computed automatically | |
| generator=generator, | |
| ).audios | |
| sf.write("sa3_output.wav", audio[0].T.cpu().float().numpy(), samplerate=44100) | |
| ``` | |
| Pipeline ayrıca [AutoPipelineForText2Audio](/docs/diffusers/main/tr/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Audio) ile de kayıtlıdır ve bu, checkpoint'i otomatik olarak `StableAudio3Pipeline` olarak çözer: | |
| ```py | |
| from diffusers import AutoPipelineForText2Audio | |
| pipe = AutoPipelineForText2Audio.from_pretrained("/tmp/sa3-diffusers-euler", torch_dtype=torch.float32) | |
| ``` | |
| > [!NOTE] | |
| > Örnekler, `stabilityai/stable-audio-3-medium` ve `stable-audio-3-medium-base` henüz diffusers formatında yayımlanmadığı için (repo id ile yükleme 404 döndürüyor) yerel bir yol kullanır. Yayımlandıktan sonra, repo id yerel yolun yerine geçer. | |
| ## İpuçları | |
| * CPU veya MPS (Apple Silicon) üzerinde `torch.float32` kullanın — MPS üzerinde `torch.float16` gürültü üretir. | |
| * Distilled model (`stable-audio-3-medium`) **adversarially distilled** — guidance, ağırlıklara gömülüdür. Bu checkpoint için `guidance_scale=1.0` (varsayılan) değerini bırakın ve `negative_prompt` geçirmeyin; her ikisi de yalnızca distilled olmayan `stable-audio-3-medium-base` checkpoint için işe yarar. | |
| * `silence_padding_duration` (varsayılan `0.0`), latent dizinin sonuna sessiz bir pay bırakır. Model bu dolguyu maskelemek üzere eğitilmediyse `0.0` olarak bırakın; aksi halde ek kareler çıktı enerjisini tüketir ve sonuç kısılır. | |
| * Her istem başına birden fazla klip oluşturmak için `num_waveforms_per_prompt > 1` değerini ayarlayın. | |
| ## StableAudio3Pipeline[[diffusers.StableAudio3Pipeline]] | |
| #### diffusers.StableAudio3Pipeline[[diffusers.StableAudio3Pipeline]] | |
| ```python | |
| diffusers.StableAudio3Pipeline(vae: AutoencoderSAME, text_encoder: T5GemmaEncoderModel, tokenizer: GemmaTokenizer, duration_embedder: StableAudio3DurationEmbedder, transformer: StableAudio3DiTModel, scheduler: FlowMatchEulerDiscreteScheduler) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3.py#L157) | |
| **Parametreler:** | |
| vae ([*AutoencoderSAME*]) : Ses latentlerini kodlamak ve çözmek için kullanılan SAME otoenkoderi. | |
| text_encoder ([*~transformers.T5GemmaEncoderModel*]) : Donmuş T5Gemma metin kodlayıcısı (`google/t5gemma-b-b-ul2`). | |
| tokenizer ([*~transformers.GemmaTokenizerFast*]) : Metin kodlayıcı için tokenizer. | |
| duration_embedder ([*StableAudio3DurationEmbedder*]) : `duration` değerini saniye cinsinden her DiT bloğundaki AdaLN için küresel bir koşullandırma vektörüne eşler. | |
| transformer ([*StableAudio3DiTModel*]) : Düzeltme akışı hız tahmini DiT. | |
| scheduler ([*FlowMatchEulerDiscreteScheduler*]) : İteratif gürültü azaltma döngüsü için zamanlayıcı. Üretim (damıtılmış) SA3 Medium kontrol noktası, tam olarak 8 ping-pong adımı için *stochastic_sampling=True* kullanır; damıtılmamış temel kontrol noktası ise ~100 deterministik Euler adımı için *stochastic_sampling=False* kullanır. | |
| Stable Audio 3 kullanılarak metinden ses üretimi için Pipeline. | |
| SA3, ping-pong örneklemeye sahip damıtılmış rectified-flow DiT kullanır. Damıtılmış checkpoint için sınıflandırıcı-özgür yönlendirme (`guidance_scale` / `negative_prompt`) gereksizdir (`guidance_scale=1.0`, varsayılan değer bırakılmalıdır) ancak damıtılmamış `stable-audio-3-medium-base` checkpoint için anlamlıdır. | |
| Bu model, [*DiffusionPipeline*] sınıfından devralır. Tüm pipeline'lar için uygulanan genel yöntemler için üst sınıf belgelendirmesini kontrol edin. | |
| #### __call__[[diffusers.StableAudio3Pipeline.__call__]] | |
| ```python | |
| __call__(prompt: typing.Union[str, typing.List[str], NoneType] = None, duration: float = 10.0, num_inference_steps: typing.Optional[int] = None, logsnr_min: float = -6.2, logsnr_max: float = 2.0, silence_padding_duration: float = 0.0, guidance_scale: float = 1.0, negative_prompt: typing.Union[str, typing.List[str], NoneType] = None, num_waveforms_per_prompt: int = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, encoder_attention_mask: typing.Optional[torch.LongTensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_encoder_attention_mask: typing.Optional[torch.LongTensor] = None, return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int, dict], dict]] = None, callback_on_step_end_tensor_inputs: typing.List[str] = ['latents'], output_type: str = 'pt') | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3.py#L398) | |
| **Parametreler:** | |
| prompt (*str* veya *list[str]*, *isteğe bağlı*) : Metin istemcisi(leri). Tokenizasyonu ve kodlamayı atlamak için bunun yerine `prompt_embeds` geçirin. | |
| duration (*float*, varsayılan 10.0) : Saniye cinsinden istenen çıktı süresi. | |
| num_inference_steps (*int*, *optional*) : Gürültü azaltma adım sayısı. `None` (varsayılan) olduğunda, adım sayısı zamanlayıcının *stochastic_sampling* yapılandırmasından seçilir: *True* ise (distilled ping-pong tarzı checkpoint) **8**, *False* ise (distilled olmayan temel checkpoint) **100**. Değiştirmek için açık bir değer geçirin. | |
| logsnr_min (*float*, varsayılan -6.2) : Gürültü zamanlaması için minimum log-SNR değeri — zamanlamanın yüksek gürültülü başlangıcına eşlenir. | |
| logsnr_max (*float*, varsayılan 2.0) : Gürültü zamanlaması için maksimum log-SNR değeri — zamanlamanın düşük gürültülü ucuna eşlenir. | |
| silence_padding_duration (*float*, varsayılan 0.0) : Hedef içeriğin ötesinde üretilen ek saniyelik latent bağlam, modele sınırda bir pay bırakır; çıktı *duration* değerine geri kırpılır. Varsayılan değer 0.0'dır (devre dışı). Bu dolguyu maskeleyecek şekilde eğitilmiş/distille edilmiş bir model kullanılmadığı sürece artırmayın — aksi halde ek kareler çıktı enerjisini tüketir. | |
| guidance_scale (*float*, varsayılan 1.0) : Classifier-free guidance ölçeği. `1.0` guidance'ı devre dışı bırakır (varsayılan değer ve damıtılmış SA3 Medium checkpoint için tek mantıklı değer, çünkü CFG'si ağırlıklara gömülüdür). `> 1.0` değerleri, damıtılmamış `stable-audio-3-medium-base` checkpoint için anlamlıdır; daha yüksek değerler, çeşitlilikten ödün vererek prompt'a daha sadık kalır. | |
| negative_prompt (*str* veya *list[str]*, *isteğe bağlı*) : `guidance_scale > 1.0` olduğunda uzaklaşılmak istenen şeyleri tanımlayan istem(ler). `guidance_scale > 1.0` ve ne bu parametre ne de *negative_prompt_embeds* verildiğinde varsayılan olarak boş bir dize (koşulsuz) kullanılır. `guidance_scale <= 1.0` olduğunda yok sayılır. | |
| num_waveforms_per_prompt (*int*, varsayılan 1) : Her istem için üretilecek dalga formu sayısı. | |
| generator (*torch.Generator* veya *list[torch.Generator]*, *opsiyonel*) : Ping-pong döngüsünde deterministik üretim ve yeniden gürültüleme için. | |
| latents (*torch.Tensor*, *opsiyonel*) : Ön oluşturulmuş başlangıç latentleri. `None` ise yeni bir Gauss tensörü örneklenir. | |
| prompt_embeds (*torch.Tensor*, *opsiyonel*) : Ön hesaplanmış metin gömlemeleri `(batch, seq_len, 768)`. | |
| encoder_attention_mask (*torch.LongTensor*, *isteğe bağlı*) : Ön hesaplanmış gömme (embedding) için Boolean maskesi. | |
| negative_prompt_embeds (*torch.Tensor*, *opsiyonel*) : *negative_prompt* yerine kullanılacak, önceden hesaplanmış negatif metin gömme değerleri. | |
| negative_encoder_attention_mask (*torch.LongTensor*, *isteğe bağlı*) : Ön hesaplanmış negatif gömme vektörleri için Boole maskesi. | |
| return_dict (*bool*, varsayılan *True*) : *AudioPipelineOutput* veya düz bir tuple döndürür. | |
| callback_on_step_end (*Callable*, *isteğe bağlı*) : *(self, step_idx, timestep, callback_kwargs)* ile her gürültü azaltma adımının sonunda çağrılır; burada *callback_kwargs*, *callback_on_step_end_tensor_inputs* içinde listelenen tensörleri içerir. Döngünün geri kalanında kullanılacak (isteğe bağlı olarak değiştirilmiş) tensörleri içeren bir sözlük döndürmelidir. | |
| callback_on_step_end_tensor_inputs (*list[str]*, varsayılan *["latents"]*) : *callback_on_step_end*'e geçirilen tensörler. *self._callback_tensor_inputs*'ün bir alt kümesi olmalıdır. | |
| output_type (*str*, varsayılan `"pt"`) : PyTorch tensörü için `"pt"`, NumPy dizisi için `"np"` veya çözmeyi atlayıp ham latentleri döndürmek için `"latent"`. | |
| **Dönüş:** [*~pipelines.AudioPipelineOutput*] veya *tuple* | |
| `.audios`, `(batch * num_waveforms_per_prompt, audio_channels, samples)` biçiminde bir tensör/dizidir. | |
| Bir metin komutundan ses üretin. | |
| Örnekler: | |
| ```py | |
| >>> import torch | |
| >>> import soundfile as sf | |
| >>> from diffusers import StableAudio3Pipeline | |
| >>> pipe = StableAudio3Pipeline.from_pretrained("stabilityai/stable-audio-3-medium", torch_dtype=torch.float16) | |
| >>> pipe = pipe.to("cuda") | |
| >>> generator = torch.Generator("cuda").manual_seed(0) | |
| >>> audio = pipe( | |
| ... "A gentle piano melody with soft strings in a concert hall", | |
| ... duration=10.0, | |
| ... generator=generator, | |
| ... ).audios | |
| >>> sf.write("output.wav", audio[0].T.cpu().float().numpy(), samplerate=pipe.vae.config.sampling_rate) | |
| ``` | |
| #### encode_duration[[diffusers.StableAudio3Pipeline.encode_duration]] | |
| ```python | |
| encode_duration(duration: float, device: device, num_waveforms_per_prompt: int, batch_size: int) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3.py#L289) | |
| **Parametreler:** | |
| duration : Saniye cinsinden süre, batch'teki her örneğe uygulanır. | |
| device : Hedef cihaz. | |
| num_waveforms_per_prompt : Karo çarpanı. | |
| batch_size : İstek sayısı. | |
| **Dönüş:** | |
| `(batch * num_waveforms_per_prompt, output_dim)` tensörü. | |
| Süre değerini küresel koşullandırma vektörüne gömün. | |
| #### encode_prompt[[diffusers.StableAudio3Pipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt: typing.Union[str, typing.List[str], NoneType], device: device, num_waveforms_per_prompt: int, prompt_embeds: typing.Optional[torch.Tensor] = None, encoder_attention_mask: typing.Optional[torch.LongTensor] = None) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3.py#L223) | |
| **Parametreler:** | |
| prompt : Metin komutu veya komut listesi. `prompt_embeds` sağlandığında yok sayılır. | |
| device : Hedef cihaz. | |
| num_waveforms_per_prompt : Her istem başına üretilecek çıktı dalga formu sayısı; koşullama tensörleri buna göre çoğaltılır. | |
| prompt_embeds : Ön hesaplanmış metin gömme değerleri `(batch, seq_len, hidden_size)`. | |
| encoder_attention_mask : Ön hesaplanmış gömceler için Boole maskesi `(batch, seq_len)`; `1` = gerçek token, `0` = dolgu. | |
| **Dönüş:** | |
| `(prompt_embeds, encoder_attention_mask)` ikisi de `batch * num_waveforms_per_prompt` boyutuna döşendi. | |
| Metin istemlerini çapraz dikkat koşullama tensörlerine kodlayın. | |
| #### prepare_cross_attention[[diffusers.StableAudio3Pipeline.prepare_cross_attention]] | |
| ```python | |
| prepare_cross_attention(prompt_embeds: Tensor, encoder_attention_mask: Tensor, global_hidden_states: Tensor) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3.py#L313) | |
| **Dönüş:** | |
| `(context, context_mask)` biçimleri `(batch, T_text + 1, dim)` ve `(batch, T_text + 1)`. | |
| Çapraz dikkat bağlamını, süre gömme değerini ek bir jeton olarak ekleyerek oluşturun. | |
| SA3, `seconds_total` koşullandırıcısını hem küresel (AdaLN) girdiye hem de *her ikisine* çapraz dikkat bağlamına (`cross_attention_cond_ids = ["prompt", "seconds_total"]`) yönlendirir. Süre gömme (embedding) metin jetonlarının ardından birleştirilir ve dikkat maskesi bir geçerli girişle genişletilir. | |
| ## StableAudio3InpaintPipeline[[diffusers.StableAudio3InpaintPipeline]] | |
| #### diffusers.StableAudio3InpaintPipeline[[diffusers.StableAudio3InpaintPipeline]] | |
| ```python | |
| diffusers.StableAudio3InpaintPipeline(vae: AutoencoderSAME, text_encoder: T5GemmaEncoderModel, tokenizer: GemmaTokenizer, duration_embedder: StableAudio3DurationEmbedder, transformer: StableAudio3DiTModel, scheduler: FlowMatchEulerDiscreteScheduler) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3_inpaint.py#L158) | |
| **Parametreler:** | |
| vae ([*AutoencoderSAME*]) : Ses latentlerini kodlamak ve çözmek için kullanılan SAME otoenkoderi. | |
| text_encoder ([*~transformers.T5GemmaEncoderModel*]) : Donmuş T5Gemma metin kodlayıcısı (`google/t5gemma-b-b-ul2`). | |
| tokenizer ([*~transformers.GemmaTokenizerFast*]) : Metin kodlayıcı için tokenizer. | |
| duration_embedder ([*StableAudio3DurationEmbedder*]) : `duration` değerini saniye cinsinden her DiT bloğundaki AdaLN için küresel bir koşullandırma vektörüne eşler. | |
| transformer ([*StableAudio3DiTModel*]) : Düzeltme akışı hız tahmini DiT. | |
| scheduler ([*FlowMatchEulerDiscreteScheduler*]) : İteratif gürültü azaltma döngüsü için zamanlayıcı. Üretim (damıtılmış) SA3 Medium kontrol noktası, tam olarak 8 ping-pong adımı için *stochastic_sampling=True* kullanır; damıtılmamış temel kontrol noktası ise ~100 deterministik Euler adımı için *stochastic_sampling=False* kullanır. | |
| Stable Audio 3 için ses inpainting hattı. | |
| Metin-ses mantığını [*StableAudio3Pipeline*] ile paylaşır (*# Copied from* ile senkronize tutulur). `audio` ve `mask` sağlandığında, referans ses dondurulmuş SAME kodlayıcı ile kodlanır ve `masked_latent ∥ mask`, transformer'ın `local_add_cond` yolu (`to_local_embed`) üzerinden her DiT bloğuna yerel-eklemeli koşullama olarak enjekte edilir. | |
| Çağrı imzası uzantısı (bkz. `__call__`): audio (`(batch, channels, samples)` biçiminde *torch.Tensor*): `vae.config.sampling_rate` Hz'de referans ses dalgası. mask (`(batch, 1, latent_length)` biçiminde *torch.Tensor*): Gizli uzayda çerçeve başına ikili maske. `1` = orijinal sesi koru; `0` = doldurulacak bölge. | |
| #### __call__[[diffusers.StableAudio3InpaintPipeline.__call__]] | |
| ```python | |
| __call__(prompt: typing.Union[str, typing.List[str], NoneType] = None, duration: float = 10.0, audio: typing.Optional[torch.Tensor] = None, mask: typing.Optional[torch.Tensor] = None, mask_start_seconds: typing.Union[float, typing.List[float], NoneType] = None, mask_end_seconds: typing.Union[float, typing.List[float], NoneType] = None, num_inference_steps: typing.Optional[int] = None, logsnr_min: float = -6.2, logsnr_max: float = 2.0, silence_padding_duration: float = 0.0, num_waveforms_per_prompt: int = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, encoder_attention_mask: typing.Optional[torch.LongTensor] = None, return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int, dict], dict]] = None, callback_on_step_end_tensor_inputs: typing.List[str] = ['latents'], output_type: str = 'pt') | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3_inpaint.py#L455) | |
| **Parametreler:** | |
| prompt (*str* veya *list[str]*, *isteğe bağlı*) : Metin istemcileri. | |
| duration (*float*, varsayılan 10.0) : Saniye cinsinden çıktı süresi. Referans sesle eşleşmelidir. | |
| audio (*torch.Tensor*, *opsiyonel*) : `vae.config.sampling_rate` Hz'de `(batch, channels, samples)` boyutlu referans dalga formu. Inpainting için gereklidir. | |
| mask (*torch.Tensor*, *opsiyonel*) : 0 = inpaint bölgesi, 1 = koru olacak şekilde kare başına latent uzay maskesi `(batch, 1, L)`. `mask` veya `mask_start_seconds` / `mask_end_seconds` sağlanmalıdır. | |
| mask_start_seconds (*float* veya *list[float]*, *isteğe bağlı*) : Inpaint bölgesinin saniye cinsinden başlangıç zaman(lar)ı. | |
| mask_end_seconds (*float* veya *list[float]*, *isteğe bağlı*) : Inpaint bölgesinin bitiş zaman(lar)ı (`mask_start_seconds` ile eşleşmelidir). | |
| num_inference_steps (*int*, *optional*) : Gürültü azaltma adım sayısı. `None` (varsayılan) olduğunda, adım sayısı zamanlayıcının *stochastic_sampling* yapılandırmasından seçilir ve [*StableAudio3Pipeline*] ile eşleşir. | |
| logsnr_min (*float*, varsayılan -6.2) : Gürültü zamanlaması için minimum log-SNR değeri — zamanlamanın yüksek gürültülü başlangıcına eşlenir. | |
| logsnr_max (*float*, varsayılan 2.0) : Gürültü zamanlaması için maksimum log-SNR değeri — zamanlamanın düşük gürültülü ucuna eşlenir. | |
| silence_padding_duration (*float*, varsayılan 0.0) : Hedef içeriğin ardından eklenen gizli alan payı. | |
| num_waveforms_per_prompt (*int*, varsayılan 1) : İstek başına dalga formu sayısı. | |
| generator : Yeniden üretilebilirlik için RNG. | |
| latents : Ön oluşturulmuş başlangıç gürültüsü (`None` → taze örnek). | |
| prompt_embeds : Ön hesaplanmış metin gömme değerleri. | |
| encoder_attention_mask : Ön hesaplanmış gömceler için maske. | |
| return_dict (*bool*, varsayılan *True*) : *AudioPipelineOutput* veya tuple döndürür. | |
| callback_on_step_end (*Callable*, *isteğe bağlı*) : Her gürültü azaltma adımının sonunda *(self, step_idx, timestep, callback_kwargs)* ile çağrılır. Döngünün geri kalanında kullanılacak (isteğe bağlı olarak değiştirilmiş) tensörleri içeren bir sözlük döndürmelidir. | |
| callback_on_step_end_tensor_inputs (*list[str]*, varsayılan *["latents"]*) : *callback_on_step_end*'e geçirilen tensörler. *self._callback_tensor_inputs*'ün bir alt kümesi olmalıdır. | |
| output_type (*str*, varsayılan `"pt"`) : `"pt"` / `"np"` / `"latent"`. | |
| **Dönüş:** | |
| [*~pipelines.AudioPipelineOutput*] ve `.audios`. | |
| Bir metin istemi ve referans koşullu olarak inpainted ses üretin. | |
| Örnekler: | |
| ```py | |
| >>> import torch | |
| >>> import soundfile as sf | |
| >>> import torchaudio | |
| >>> from diffusers import StableAudio3InpaintPipeline | |
| >>> pipe = StableAudio3InpaintPipeline.from_pretrained( | |
| ... "stabilityai/stable-audio-3-medium", torch_dtype=torch.float16 | |
| ... ) | |
| >>> pipe = pipe.to("cuda") | |
| >>> audio, sr = torchaudio.load("reference.wav") | |
| >>> audio = torchaudio.functional.resample(audio, sr, pipe.vae.config.sampling_rate).unsqueeze(0).to("cuda") | |
| >>> generator = torch.Generator("cuda").manual_seed(0) | |
| >>> audio = pipe( | |
| ... "A gentle piano melody with soft strings in a concert hall", | |
| ... duration=10.0, | |
| ... audio=audio, | |
| ... mask_start_seconds=4.0, | |
| ... mask_end_seconds=6.0, | |
| ... generator=generator, | |
| ... ).audios | |
| >>> sf.write("output.wav", audio[0].T.cpu().float().numpy(), samplerate=pipe.vae.config.sampling_rate) | |
| ``` | |
| #### encode_duration[[diffusers.StableAudio3InpaintPipeline.encode_duration]] | |
| ```python | |
| encode_duration(duration: float, device: device, num_waveforms_per_prompt: int, batch_size: int) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3_inpaint.py#L290) | |
| **Parametreler:** | |
| duration : Saniye cinsinden süre, batch'teki her örneğe uygulanır. | |
| device : Hedef cihaz. | |
| num_waveforms_per_prompt : Karo çarpanı. | |
| batch_size : İstek sayısı. | |
| **Dönüş:** | |
| `(batch * num_waveforms_per_prompt, output_dim)` tensörü. | |
| Süre değerini küresel koşullandırma vektörüne gömün. | |
| #### encode_prompt[[diffusers.StableAudio3InpaintPipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt: typing.Union[str, typing.List[str], NoneType], device: device, num_waveforms_per_prompt: int, prompt_embeds: typing.Optional[torch.Tensor] = None, encoder_attention_mask: typing.Optional[torch.LongTensor] = None) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3_inpaint.py#L223) | |
| **Parametreler:** | |
| prompt : Metin komutu veya komut listesi. `prompt_embeds` sağlandığında yok sayılır. | |
| device : Hedef cihaz. | |
| num_waveforms_per_prompt : Her istem başına üretilecek çıktı dalga formu sayısı; koşullama tensörleri buna göre çoğaltılır. | |
| prompt_embeds : Ön hesaplanmış metin gömme değerleri `(batch, seq_len, hidden_size)`. | |
| encoder_attention_mask : Ön hesaplanmış gömceler için Boole maskesi `(batch, seq_len)`; `1` = gerçek token, `0` = dolgu. | |
| **Dönüş:** | |
| `(prompt_embeds, encoder_attention_mask)` ikisi de `batch * num_waveforms_per_prompt` boyutuna döşendi. | |
| Metin istemlerini çapraz dikkat koşullama tensörlerine kodlayın. | |
| #### prepare_cross_attention[[diffusers.StableAudio3InpaintPipeline.prepare_cross_attention]] | |
| ```python | |
| prepare_cross_attention(prompt_embeds: Tensor, encoder_attention_mask: Tensor, global_hidden_states: Tensor) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3_inpaint.py#L315) | |
| **Dönüş:** | |
| `(context, context_mask)` biçimleri `(batch, T_text + 1, dim)` ve `(batch, T_text + 1)`. | |
| Çapraz dikkat bağlamını, süre gömme değerini ek bir jeton olarak ekleyerek oluşturun. | |
| SA3, `seconds_total` koşullandırıcısını hem küresel (AdaLN) girdiye hem de *her ikisine* çapraz dikkat bağlamına (`cross_attention_cond_ids = ["prompt", "seconds_total"]`) yönlendirir. Süre gömme (embedding) metin jetonlarının ardından birleştirilir ve dikkat maskesi bir geçerli girişle genişletilir. | |
| ## StableAudio3AudioToAudioPipeline[[diffusers.StableAudio3AudioToAudioPipeline]] | |
| Referans ses kliplerinin bir varyasyonunu üretir: tüm referans, `init_noise_level` seviyesine kadar gürültülenir ve oradan gürültüsü giderilir; bu, belirli kareleri tam olarak koruyan [StableAudio3InpaintPipeline](/docs/diffusers/main/tr/api/pipelines/stable_audio_3#diffusers.StableAudio3InpaintPipeline)'ın kare bazlı yerel-eklemeli koşullandırmasından farklıdır. | |
| #### diffusers.StableAudio3AudioToAudioPipeline[[diffusers.StableAudio3AudioToAudioPipeline]] | |
| ```python | |
| diffusers.StableAudio3AudioToAudioPipeline(vae: AutoencoderSAME, text_encoder: T5GemmaEncoderModel, tokenizer: GemmaTokenizer, duration_embedder: StableAudio3DurationEmbedder, transformer: StableAudio3DiTModel, scheduler: FlowMatchEulerDiscreteScheduler) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3_audio2audio.py#L154) | |
| **Parametreler:** | |
| vae ([*AutoencoderSAME*]) : Ses latentlerini kodlamak ve çözmek için kullanılan SAME otoenkoderi. | |
| text_encoder ([*~transformers.T5GemmaEncoderModel*]) : Donmuş T5Gemma metin kodlayıcısı (`google/t5gemma-b-b-ul2`). | |
| tokenizer ([*~transformers.GemmaTokenizerFast*]) : Metin kodlayıcı için tokenizer. | |
| duration_embedder ([*StableAudio3DurationEmbedder*]) : `duration` değerini saniye cinsinden her DiT bloğundaki AdaLN için küresel bir koşullandırma vektörüne eşler. | |
| transformer ([*StableAudio3DiTModel*]) : Düzeltme akışı hız tahmini DiT. | |
| scheduler ([*FlowMatchEulerDiscreteScheduler*]) : İteratif gürültü azaltma döngüsü için zamanlayıcı. Üretim (damıtılmış) SA3 Medium kontrol noktası, tam olarak 8 ping-pong adımı için *stochastic_sampling=True* kullanır; damıtılmamış temel kontrol noktası ise ~100 deterministik Euler adımı için *stochastic_sampling=False* kullanır. | |
| Stable Audio 3 için sesten sese varyasyon hattı. | |
| Metin-ses mantığını [*StableAudio3Pipeline*] ile paylaşır (*# Copied from* üzerinden senkronize tutulur). Referans sesi donmuş SAME kodlayıcıyla kodlar, `init_noise_level`'ye göre taze gürültüyle karıştırır ve oradan gürültü giderme işlemine başlar — [*StableAudio3InpaintPipeline*]'in çerçeve başına yerel-eklemeli koşullandırmasının aksine, tüm sinyal küresel olarak gürültülenir/gürültüsü giderilir. | |
| Çağrı imzası uzantısı (bkz. `__call__`): audio (`(batch, channels, samples)` biçiminde *torch.Tensor*): `vae.config.sampling_rate` Hz'de referans ses dalgası. init_noise_level (*float*): Gürültü azaltma işleminden önce referansa karıştırılacak gürültü miktarı. `1.0` = tam gürültü (metinden sese eşdeğer); daha düşük değerler referansın daha büyük bir kısmını korur. | |
| #### __call__[[diffusers.StableAudio3AudioToAudioPipeline.__call__]] | |
| ```python | |
| __call__(prompt: typing.Union[str, typing.List[str], NoneType] = None, duration: float = 10.0, audio: typing.Optional[torch.Tensor] = None, init_noise_level: float = 1.0, num_inference_steps: typing.Optional[int] = None, logsnr_min: float = -6.2, logsnr_max: float = 2.0, silence_padding_duration: float = 0.0, num_waveforms_per_prompt: int = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, encoder_attention_mask: typing.Optional[torch.LongTensor] = None, return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int, dict], dict]] = None, callback_on_step_end_tensor_inputs: typing.List[str] = ['latents'], output_type: str = 'pt') | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3_audio2audio.py#L424) | |
| **Parametreler:** | |
| prompt (*str* veya *list[str]*, *isteğe bağlı*) : Metin istemcileri. | |
| duration (*float*, varsayılan 10.0) : Saniye cinsinden çıktı süresi. Referans sesle eşleşmelidir. | |
| audio (*torch.Tensor*, *isteğe bağlı*) : `vae.config.sampling_rate` Hz'de `(batch, channels, samples)` boyutlu referans dalga formu. Zorunludur. | |
| init_noise_level (*float*, varsayılan 1.0) : Gürültü seviyesi (`(0, 1]` aralığında), gürültüden arındırma öncesinde referansa karıştırılır: `x_start = (1 - init_noise_level) * reference_latents + init_noise_level * noise`. `1.0` değeri referansı tamamen atar ([*StableAudio3Pipeline*] ile eşdeğerdir); daha düşük değerler, tam adım sayısını çalıştırmaya devam ederken referansın yapısını giderek daha fazla korur. | |
| num_inference_steps (*int*, *optional*) : Gürültü azaltma adım sayısı. `None` (varsayılan) olduğunda, adım sayısı zamanlayıcının *stochastic_sampling* yapılandırmasından seçilir ve [*StableAudio3Pipeline*] ile eşleşir. | |
| logsnr_min (*float*, varsayılan -6.2) : Gürültü zamanlaması için minimum log-SNR değeri — zamanlamanın yüksek gürültülü başlangıcına eşlenir. | |
| logsnr_max (*float*, varsayılan 2.0) : Gürültü zamanlaması için maksimum log-SNR değeri — zamanlamanın düşük gürültülü ucuna eşlenir. | |
| silence_padding_duration (*float*, varsayılan 0.0) : Hedef içeriğin ardından eklenen gizli alan payı. | |
| num_waveforms_per_prompt (*int*, varsayılan 1) : İstek başına dalga formu sayısı. | |
| generator : Yeniden üretilebilirlik için RNG. | |
| latents : Ön oluşturulmuş başlangıç gürültüsü (`None` → taze örnek). | |
| prompt_embeds : Ön hesaplanmış metin gömme değerleri. | |
| encoder_attention_mask : Ön hesaplanmış gömceler için maske. | |
| return_dict (*bool*, varsayılan *True*) : *AudioPipelineOutput* veya tuple döndürür. | |
| callback_on_step_end (*Callable*, *isteğe bağlı*) : Her gürültü azaltma adımının sonunda *(self, step_idx, timestep, callback_kwargs)* ile çağrılır. Döngünün geri kalanında kullanılacak (isteğe bağlı olarak değiştirilmiş) tensörleri içeren bir sözlük döndürmelidir. | |
| callback_on_step_end_tensor_inputs (*list[str]*, varsayılan *["latents"]*) : *callback_on_step_end*'e geçirilen tensörler. *self._callback_tensor_inputs*'ün bir alt kümesi olmalıdır. | |
| output_type (*str*, varsayılan `"pt"`) : `"pt"` / `"np"` / `"latent"`. | |
| **Dönüş:** | |
| [*~pipelines.AudioPipelineOutput*] ve `.audios`. | |
| Bir metin komutu ve bir referans dalga formuna koşullu bir ses varyasyonu oluşturun. | |
| Örnekler: | |
| ```py | |
| >>> import torch | |
| >>> import soundfile as sf | |
| >>> import torchaudio | |
| >>> from diffusers import StableAudio3AudioToAudioPipeline | |
| >>> pipe = StableAudio3AudioToAudioPipeline.from_pretrained( | |
| ... "stabilityai/stable-audio-3-medium", torch_dtype=torch.float16 | |
| ... ) | |
| >>> pipe = pipe.to("cuda") | |
| >>> audio, sr = torchaudio.load("reference.wav") | |
| >>> audio = torchaudio.functional.resample(audio, sr, pipe.vae.config.sampling_rate).unsqueeze(0).to("cuda") | |
| >>> generator = torch.Generator("cuda").manual_seed(0) | |
| >>> audio = pipe( | |
| ... "A gentle piano melody with soft strings in a concert hall", | |
| ... duration=10.0, | |
| ... audio=audio, | |
| ... init_noise_level=0.6, | |
| ... generator=generator, | |
| ... ).audios | |
| >>> sf.write("output.wav", audio[0].T.cpu().float().numpy(), samplerate=pipe.vae.config.sampling_rate) | |
| ``` | |
| #### encode_duration[[diffusers.StableAudio3AudioToAudioPipeline.encode_duration]] | |
| ```python | |
| encode_duration(duration: float, device: device, num_waveforms_per_prompt: int, batch_size: int) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3_audio2audio.py#L287) | |
| **Parametreler:** | |
| duration : Saniye cinsinden süre, batch'teki her örneğe uygulanır. | |
| device : Hedef cihaz. | |
| num_waveforms_per_prompt : Karo çarpanı. | |
| batch_size : İstek sayısı. | |
| **Dönüş:** | |
| `(batch * num_waveforms_per_prompt, output_dim)` tensörü. | |
| Süre değerini küresel koşullandırma vektörüne gömün. | |
| #### encode_prompt[[diffusers.StableAudio3AudioToAudioPipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt: typing.Union[str, typing.List[str], NoneType], device: device, num_waveforms_per_prompt: int, prompt_embeds: typing.Optional[torch.Tensor] = None, encoder_attention_mask: typing.Optional[torch.LongTensor] = None) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3_audio2audio.py#L220) | |
| **Parametreler:** | |
| prompt : Metin komutu veya komut listesi. `prompt_embeds` sağlandığında yok sayılır. | |
| device : Hedef cihaz. | |
| num_waveforms_per_prompt : Her istem başına üretilecek çıktı dalga formu sayısı; koşullama tensörleri buna göre çoğaltılır. | |
| prompt_embeds : Ön hesaplanmış metin gömme değerleri `(batch, seq_len, hidden_size)`. | |
| encoder_attention_mask : Ön hesaplanmış gömceler için Boole maskesi `(batch, seq_len)`; `1` = gerçek token, `0` = dolgu. | |
| **Dönüş:** | |
| `(prompt_embeds, encoder_attention_mask)` ikisi de `batch * num_waveforms_per_prompt` boyutuna döşendi. | |
| Metin istemlerini çapraz dikkat koşullama tensörlerine kodlayın. | |
| #### prepare_cross_attention[[diffusers.StableAudio3AudioToAudioPipeline.prepare_cross_attention]] | |
| ```python | |
| prepare_cross_attention(prompt_embeds: Tensor, encoder_attention_mask: Tensor, global_hidden_states: Tensor) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_audio_3/pipeline_stable_audio_3_audio2audio.py#L312) | |
| **Dönüş:** | |
| `(context, context_mask)` biçimleri `(batch, T_text + 1, dim)` ve `(batch, T_text + 1)`. | |
| Çapraz dikkat bağlamını, süre gömme değerini ek bir jeton olarak ekleyerek oluşturun. | |
| SA3, `seconds_total` koşullandırıcısını hem küresel (AdaLN) girdiye hem de *her ikisine* çapraz dikkat bağlamına (`cross_attention_cond_ids = ["prompt", "seconds_total"]`) yönlendirir. Süre gömme (embedding) metin jetonlarının ardından birleştirilir ve dikkat maskesi bir geçerli girişle genişletilir. | |
| ## StableAudio3DurationEmbedder[[diffusers.StableAudio3DurationEmbedder]] | |
| #### diffusers.StableAudio3DurationEmbedder[[diffusers.StableAudio3DurationEmbedder]] | |
| ```python | |
| diffusers.StableAudio3DurationEmbedder(output_dim: int = 768, fourier_dim: int = 256, min_val: float = 0.0, max_val: float = 384.0, min_freq: float = 0.5, max_freq: float = 10000.0) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/condition_embedders/condition_embedder_stable_audio_3.py#L43) | |
| **Parametreler:** | |
| output_dim (*int*, varsayılan 768) : Çıktı gömme boyutu. DiT'nin `global_cond_dim` değeriyle eşleşmelidir. | |
| fourier_dim (*int*, varsayılan 256) : Dahili Fourier özellik boyutu (çift olmalıdır). | |
| min_val (*float*, varsayılan 0.0) : Normalizasyon sınırlama işlemi için minimum süre değeri. | |
| max_val (*float*, varsayılan 384.0) : Normalizasyon sınırlama işlemi için maksimum süre değeri. Bu değerin üzerindeki değerler sınırlanır. 384 saniye, `seconds_total` koşullandırıcısı için üretim ortamındaki SA3 Medium üst sınırıdır. | |
| min_freq (*float*, varsayılan 0.5) : Üstel Fourier tabanı için minimum frekans. | |
| max_freq (*float*, varsayılan 10000.0) : Üstel Fourier tabanı için maksimum frekans. | |
| Süre değerini (saniye cinsinden) Stable Audio 3 DiT için küresel koşullandırma vektörüne gömer (AdaLN girdisi olarak `global_hidden_states` kullanılır). | |
| SA3 referans uygulamasındaki `NumberConditioner(fourier_features_type="expo")` bileşenini yeniden oluşturur. | |
| #### forward[[diffusers.StableAudio3DurationEmbedder.forward]] | |
| ```python | |
| forward(seconds: Tensor) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/condition_embedders/condition_embedder_stable_audio_3.py#L90) | |
| **Parametreler:** | |
| seconds (`torch.Tensor`, şekli `(batch,)`) : Saniye cinsinden süre değerleri. | |
| **Dönüş:** | |
| `torch.Tensor`, şekli `(batch, output_dim)` — süre gömme değerleri. | |
Xet Storage Details
- Size:
- 37.1 kB
- Xet hash:
- ade07b82305f3bff738fbbfaa2ce5787259cc2e93275dfc68b03cca32adc203b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.