Buckets:
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[[diffusers.LongCatAudioDiTPipeline]]
diffusers.LongCatAudioDiTPipeline[[diffusers.LongCatAudioDiTPipeline]]
diffusers.LongCatAudioDiTPipeline(vae: LongCatAudioDiTVae, text_encoder: UMT5EncoderModel, tokenizer: PreTrainedTokenizerBase, transformer: LongCatAudioDiTTransformer, scheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | None = None)
call[[diffusers.LongCatAudioDiTPipeline.call]]
__call__(prompt: str | list[str], negative_prompt: str | list[str] | None = None, audio_duration_s: float | None = None, latents: typing.Optional[torch.Tensor] = None, num_inference_steps: int = 16, guidance_scale: float = 4.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, output_type: str = 'np', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list = ['latents'])
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ü latentler.
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ı-ücretsiz 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ülmeyeceğini belirtir.
callback_on_step_end (Callable, isteğe bağlı) : callback_on_step_end_tensor_inputs ile belirtilen pipeline, adım indeksi, timestep ve girdi tensörleriyle her gürültü azaltma adımının sonunda çağrılan bir işlev.
callback_on_step_end_tensor_inputs (list, varsayılan ["latents"]) : callback_on_step_end'e geçirilen Tensor girdileri.
Dönüş: 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[[diffusers.LongCatAudioDiTPipeline.from_pretrained]]
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ı) : Şunlardan biri olabilir: - Hub'da barındırılan önceden eğitilmiş bir pipeline'ın repo kimliği (örneğin CompVis/ldm-text2im-large-256) olan bir dize. - save_pretrained() kullanılarak kaydedilmiş pipeline ağırlıklarını içeren bir dizin yolu (örneğin ./my_pipeline_directory/).
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 değerini 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ı) : > [!WARNING] > 🧪 Bu deneysel bir özelliktir ve gelecekte değişebilir. Şunlardan biri olabilir: - Hub'da barındırılan özel bir pipeline'ın repo kimliği (örneğin hf-internal-testing/diffusers-dummy-pipeline) olan bir dize. Depo, özel pipeline'ı tanımlayan pipeline.py adında bir dosya içermelidir. - GitHub'da Community altında barındırılan bir topluluk pipeline'ının dosya adı olan bir dize. Geçerli dosya adları, pipeline betiği yerine dosya adıyla eşleşmelidir (clip_guided_stable_diffusion.py yerine clip_guided_stable_diffusion). Topluluk pipeline'ları her zaman GitHub'ın güncel ana dalından yüklenir. - Özel bir pipeline içeren bir dizine giden yol (./my_pipeline_directory/). Dizin, özel pipeline'ı tanımlayan pipeline.py adında bir dosya içermelidir. Özel pipeline'ların nasıl yükleneceği ve oluşturulacağı hakkında daha fazla bilgi için Özel Pipeline'ların Yüklenmesi ve Eklenmesi 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ı) : Protokol veya uç nokta bazında 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, isteğe bağlı, varsayılan False) : Eksik anahtarlar, beklenmeyen anahtarlar ve hata mesajlarını içeren bir sözlüğün de döndürülüp döndürülmeyeceğini belirtir.
local_files_only (bool, isteğe bağlı, varsayılan False) : Sadece yerel model ağırlıklarının 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ı) : Uzaktaki 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 parametresine benzer şekilde bir dal adı, etiket adı veya commit kimliği olabilir. Varsayılan olarak en son kararlı 🤗 Diffusers sürümü kullanılır.
mirror (str, isteğe bağlı) : Çin'de bir model indirirken erişilebilirlik sorunlarını çözmek için ayna kaynağı. Kaynağın güncelliğini veya güvenliğini garanti etmiyoruz; daha fazla bilgi için ayna sitesine başvurmalısınız.
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 olacaktır.
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 durum sözlüğünün ağırlığı + checkpoint'in en büyük dilimi sığmıyorsa CPU RAM'inin dolmasını önlemek için CPU durum sözlüğü geçici olarak sabit diske aktarılır. Disk aktarımı varsa varsayılan olarak True değerine ayarlanır.
low_cpu_mem_usage (bool, isteğe bağlı, varsayılan olarak PyTorch sürümü >= 1.9.0 ise True, aksi halde False) : Ağırlıkları başlatmadan yalnızca önceden eğitilmiş ağırlıkları yükleyerek model yüklemesini 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 olan ONNX ağırlıkları her zaman indirilir. False olarak ayarlanırsa, ONNX ağırlıkları asla indirilmez. Varsayılan olarak use_onnx, ONNX olmayan hatlar için False ve ONNX hatları için True olan _is_onnx sınıf özniteliğine ayarlanır. ONNX ağırlıkları, .onnx ve .pb ile biten her iki dosyayı da içerir.
kwargs (kalan anahtar kelime argümanları sözlüğü, isteğe bağlı) : Yüklenir ve kaydedilir 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ğını belirtir. Model bir ağ biriminde veya sabit diskte olduğunda, bu ortamın mmap'in rastgele erişim (seek) davranışı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 gated modelleri kullanmak için oturum açın
hf > auth loginile.
Ö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
Xet Storage Details
- Size:
- 14.8 kB
- Xet hash:
- bbecdd93c21ce143b131e39ee79aa02877b0f37be60a2fc4267822e718b8e663
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.