Diffusers documentation

LongCat-AudioDiT

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

LongCat-AudioDiT

LongCat-AudioDiT, Meituan LongCat tarafından geliştirilen bir metinden sese difüzyon modelidir. Diffusers entegrasyonu, metin koşullu ses üretimi için standart bir DiffusionPipeline arayüzü sunar.

Bu pipeline, LongCat-AudioDiT referans uygulamasından uyarlanmıştır: https://github.com/meituan-longcat/LongCat-AudioDiT

Bu pipeline, diffusers biçimindeki (içinde text_encoder/, transformer/, vae/, tokenizer/ ve scheduler/ alt klasörleri bulunan) yerel bir dizinden veya Hugging Face Hub deposundan yükleme destekler.

Kullanım

import soundfile as sf
import torch
from diffusers import LongCatAudioDiTPipeline

pipeline = LongCatAudioDiTPipeline.from_pretrained(
    "ruixiangma/LongCat-AudioDiT-1B-Diffusers",
    dtype=torch.float16,
)
pipeline = pipeline.to("cuda")  # or "mps", "xpu", "cpu"

prompt = "A calm ocean wave ambience with soft wind in the background."
audio = pipeline(
    prompt,
    audio_duration_s=5.0,
    num_inference_steps=16,
    guidance_scale=4.0,
    generator=torch.Generator("cuda").manual_seed(42),
).audios[0, 0]

sf.write("longcat.wav", audio, pipeline.sample_rate)

İpuçları

  • audio_duration_s, çıktı süresini kontrol etmenin en doğrudan yoludur.
  • Üretim sürecini tekrarlanabilir kılmak için generator=torch.Generator("cuda").manual_seed(42) kullanın.
  • Çıktı şekli (batch, channels, samples) - tek bir ses örneğini almak için .audios[0, 0] kullanın.
  • Pipeline mono ses (1 kanal) çıktısı üretir. Stereo gerekiyorsa kanalı kopyalayabilirsiniz: audio.unsqueeze(0).repeat(1, 2, 1).

LongCatAudioDiTPipeline

sınıf diffusers.LongCatAudioDiTPipeline

< >

( vae: LongCatAudioDiTVaetext_encoder: UMT5EncoderModeltokenizer: PreTrainedTokenizerBasetransformer: LongCatAudioDiTTransformerscheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | None = None )

__call__

< >

( prompt: str | list[str]negative_prompt: str | list[str] | None = Noneaudio_duration_s: float | None = Nonelatents: typing.Optional[torch.Tensor] = Nonenum_inference_steps: int = 16guidance_scale: float = 4.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneoutput_type: str = 'np'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → AudioPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str]) — Ses üretimini yönlendiren istem veya istemler.
  • negative_prompt (str veya list[str], isteğe bağlı) — Sınıflandırıcı-ücretsiz yönlendirme için negatif istem(ler).
  • audio_duration_s (float, isteğe bağlı) — Saniye cinsinden hedef ses süresi. latents sağlandığında yok sayılır.
  • latents (torch.Tensor, isteğe bağlı) — (batch_size, duration, latent_dim) biçiminde önceden oluşturulmuş gürültülü latensler.
  • num_inference_steps (int, varsayılan 16) — Gürültü azaltma adım sayısı.
  • guidance_scale (float, varsayılan 4.0) — Sınıflandırıcı-özgür yönlendirme için yönlendirme ölçeği.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Rastgele üreteç(ler).
  • output_type (str, varsayılan "np") — Çıktı biçimi: "np", "pt" veya "latent".
  • return_dict (bool, varsayılan True) — AudioPipelineOutput döndürülüp döndürülmemesi.
  • callback_on_step_end (Callable, optional) — A function called at the end of each denoising step with the pipeline, step index, timestep, and tensor inputs specified by callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, varsayılan ["latents"]) — callback_on_step_end'e iletilen girdi tensörleri.

Dönüş değeri

AudioPipelineOutput veya tuple

return_dict True ise AudioPipelineOutput, aksi halde tuple. Tuple döndürüldüğünde, ilk öğe üretilen ses dalgasıdır.

Üretim için pipeline çağrıldığında tetiklenen işlev.

Örnekler:

>>> import soundfile as sf
>>> import torch
>>> from diffusers import LongCatAudioDiTPipeline

>>> pipe = LongCatAudioDiTPipeline.from_pretrained("ruixiangma/LongCat-AudioDiT-1B-Diffusers")
>>> pipe.to("cuda")

>>> prompt = "A calm ocean wave ambience with soft wind in the background."
>>> audio = pipe(
...     prompt,
...     audio_duration_s=5.0,
...     num_inference_steps=20,
...     guidance_scale=4.0,
...     generator=torch.Generator("cuda").manual_seed(42),
... ).audios[0, 0]
>>> sf.write("output.wav", audio, pipe.sample_rate)

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLike**kwargs )

Parametreler

  • pretrained_model_name_or_path (str veya os.PathLike, isteğe bağlı) — Şu olabilir:
    • Hub'da barındırılan önceden eğitilmiş bir pipeline'ın repo id'si (örneğin CompVis/ldm-text2im-large-256) olan bir dize.
    • save_pretrained() kullanılarak kaydedilen pipeline ağırlıklarını içeren bir dizin (örneğin ./my_pipeline_directory/) yoluna
  • dtype (torch.dtype veya dict[str, Union[str, torch.dtype]], isteğe bağlı) — Varsayılan torch.dtype değerini geçersiz kılar ve modeli başka bir dtype ile yükler. Alt modelleri farklı dtype'lerle yüklemek için bir dict iletin (örneğin {'transformer': torch.bfloat16, 'vae': torch.float16}). Belirtilmeyen bileşenler için varsayılan dtype'i default ile ayarlayın (örneğin {'transformer': torch.bfloat16, 'default': torch.float16}). Bir bileşen belirtilmemiş ve varsayılan bir değer ayarlanmamışsa, torch.float32 kullanılır.
  • custom_pipeline (str, isteğe bağlı) —

    > 🧪 Bu deneysel bir özelliktir ve gelecekte değişebilir.

    Şunlardan biri olabilir:

    • Bir dize, Hub üzerinde barındırılan özel bir hattın repo id'si (örneğin hf-internal-testing/diffusers-dummy-pipeline). Depo, özel hattı tanımlayan pipeline.py adında bir dosya içermelidir.
    • Bir dize, GitHub'da Community altında barındırılan bir topluluk hattının dosya adı. Geçerli dosya adları, hattın betiği değil dosya adıyla eşleşmelidir (clip_guided_stable_diffusion.py yerine clip_guided_stable_diffusion). Topluluk hatları her zaman GitHub'ın güncel ana dalından yüklenir.
    • Özel bir pipeline içeren bir dizine (./my_pipeline_directory/) giden yol. Dizin, özel pipeline'ı tanımlayan pipeline.py adında bir dosya içermelidir.

    Özel boru hatlarını nasıl yükleyip oluşturacağınız hakkında daha fazla bilgi için Özel Boru Hatlarını Yükleme ve Ekleme bölümüne göz atın.

  • force_download (bool, isteğe bağlı, varsayılan False) — Model ağırlıklarının ve yapılandırma dosyalarının (yeniden) indirilmesinin zorlanıp zorlanmayacağını belirler; önbellekteki sürümler varsa bunların üzerine yazar.
  • cache_dir (Union[str, os.PathLike], isteğe bağlı) — Standart önbellek kullanılmıyorsa, indirilen önceden eğitilmiş model yapılandırmasının önbelleğe alındığı dizinin yolu.
  • proxies (Dict[str, str], isteğe bağlı) — Protokole veya uç noktaya göre kullanılacak vekil sunucuların sözlüğü, örneğin {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Vekiller her istekte kullanılır.
  • output_loading_info(bool, opsiyonel, varsayılan olarak False) — Eksik anahtarlar, beklenmeyen anahtarlar ve hata mesajlarını içeren bir sözlüğü de döndürülüp döndürülmeyeceğini belirtir.
  • local_files_only (bool, isteğe bağlı, varsayılan False) — Yalnızca yerel model ağırlıkları ve yapılandırma dosyalarının yüklenip yüklenmeyeceğini belirtir. True olarak ayarlanırsa, model Hub'dan indirilmez.
  • token (str veya bool, isteğe bağlı) — Uzak dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. True ise, diffusers-cli login ile oluşturulan jeton ( ~/.huggingface içinde saklanır) kullanılır.
  • revision (str, isteğe bağlı, varsayılan "main") — Kullanılacak belirli model sürümü. Bir dal adı, etiket adı, commit kimliği veya Git tarafından izin verilen herhangi bir tanımlayıcı olabilir.
  • custom_revision (str, isteğe bağlı) — Kullanılacak belirli model sürümü. Hub'dan özel bir pipeline yüklerken revision ile benzer şekilde bir dal adı, etiket adı veya commit kimliği olabilir. Varsayılan olarak en son kararlı 🤗 Diffusers sürümüdür.
  • mirror (str, isteğe bağlı) — Çin'de bir model indirirken erişilebilirlik sorunlarını çözmek için kullanılacak ayna kaynağı. Kaynağın güncelliğini veya güvenliğini garanti etmiyoruz; daha fazla bilgi için lütfen ayna sitesine başvurun.
  • device_map (str, isteğe bağlı) — Bir pipeline'ın farklı bileşenlerinin kullanılabilir cihazlara nasıl yerleştirileceğini belirleyen strateji. Şu anda yalnızca “balanced” device_map desteklenmektedir. Daha fazla bilgi için buraya bakın.
  • max_memory (Dict, isteğe bağlı) — Maksimum bellek için bir sözlük cihaz tanımlayıcısı. Ayarlanmazsa, varsayılan olarak her GPU için kullanılabilir maksimum bellek ve kullanılabilir CPU RAM'i olur.
  • offload_folder (str veya os.PathLike, isteğe bağlı) — "disk" değerini içeren bir device_map varsa, ağırlıkların taşınacağı yol.
  • offload_state_dict (bool, isteğe bağlı) — True ise, CPU state dict + checkpoint'in en büyük shard'ı sığmıyorsa CPU RAM'inin dolmasını önlemek için CPU state dict'i geçici olarak sabit diske taşır. Disk offload varsa varsayılan olarak True olur.
  • low_cpu_mem_usage (bool, isteğe bağlı, varsayılan olarak torch sürümü >= 1.9.0 ise True, aksi halde False) — Modeli yalnızca önceden eğitilmiş ağırlıkları yükleyerek ve ağırlıkları başlatmadan yüklemeyi hızlandırır. Bu, model yüklenirken (tepe bellek dahil) CPU belleğinde model boyutunun 1 katından fazlasını kullanmamaya da çalışır. Yalnızca PyTorch >= 1.9.0 için desteklenir. PyTorch'un daha eski bir sürümünü kullanıyorsanız, bu argümanı True olarak ayarlamak bir hata verecektir.
  • use_safetensors (bool, isteğe bağlı, varsayılan None) — None olarak ayarlanırsa, safetensors ağırlıkları mevcut ve safetensors kütüphanesi yüklüyse indirilir. True olarak ayarlanırsa, model zorla safetensors ağırlıklarından yüklenir. False olarak ayarlanırsa, safetensors ağırlıkları yüklenmez.
  • use_onnx (bool, isteğe bağlı, varsayılan None) — True olarak ayarlanırsa, mevcut ise ONNX ağırlıkları her zaman indirilir. False olarak ayarlanırsa, ONNX ağırlıkları asla indirilmez. Varsayılan olarak use_onnx, _is_onnx sınıf özniteliğine eşittir; bu öznitelik ONNX olmayan hatlar için False, ONNX hatlar için ise True değerini alır. ONNX ağırlıkları, .onnx ve .pb uzantılı her iki dosyayı da içerir.
  • kwargs (geri kalan anahtar kelime argümanları sözlüğü, isteğe bağlı) — Yükleme ve kaydedilebilir değişkenleri (belirli pipeline sınıfının pipeline bileşenlerini) geçersiz kılmak için kullanılabilir. Geçersiz kılınan bileşenler doğrudan pipeline'ın __init__ yöntemine iletilir. Daha fazla bilgi için aşağıdaki örneğe bakın.
  • variant (str, isteğe bağlı) — Ağırlıkları, "fp16" veya "ema" gibi belirtilen bir varyant dosya adından yükler.
  • disable_mmap (‘bool’, isteğe bağlı, varsayılan ‘False’) — Bir Safetensors modeli yüklenirken mmap'in devre dışı bırakılıp bırakılmayacağı. Model bir ağ biriminde veya sabit diskte olduğunda, bu ortamın mmap'in sıklıkla konum değiştirme (seek) gerektiren doğasını iyi yönetememesi nedeniyle bu seçenek daha iyi performans gösterebilir.

Önceden eğitilmiş pipeline ağırlıklarından bir PyTorch difüzyon pipeline'ı örnekleyin.

Hattın varsayılan olarak değerlendirme modunda (model.eval()) ayarlanır.

Aşağıdaki hata mesajını alıyorsanız, aşağı akış göreviniz için ağırlıkları ince ayar yapmanız gerekir:

Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.

> Özel veya korumalı modelleri kullanmak için hf > auth login ile oturum açın.

Örnekler:

>>> from diffusers import DiffusionPipeline

>>> # Download pipeline from huggingface.co and cache.
>>> pipeline = DiffusionPipeline.from_pretrained("CompVis/ldm-text2im-large-256")

>>> # Download pipeline that requires an authorization token
>>> # For more information on access tokens, please refer to this section
>>> # of the documentation](https://huggingface.co/docs/hub/security-tokens)
>>> pipeline = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5")

>>> # Use a different scheduler
>>> from diffusers import LMSDiscreteScheduler

>>> scheduler = LMSDiscreteScheduler.from_config(pipeline.scheduler.config)
>>> pipeline.scheduler = scheduler
Update on GitHub