Buckets:
| # Topluluk boru hatları ve bileşenleri | |
| Topluluk boru hatları, orijinal makale uygulamasından farklı olan [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline) sınıflarıdır. Ek işlevsellik sağlarlar veya orijinal boru hattı uygulamasını genişletirler. | |
| > [!TIP] | |
| > Çıkarım ve eğitim örnekleriyle nasıl kullanılacaklarını gösteren topluluk pipeline'larını [diffusers/examples/community](https://github.com/huggingface/diffusers/tree/main/examples/community) dizininde inceleyin. | |
| Topluluk pipeline'ları ya Hub'da ya da Diffusers'ın GitHub deposunda saklanır. Hub pipeline'ları tamamen özelleştirilebilir (zamanlayıcı, modeller, pipeline kodu vb.)ken GitHub pipeline'ları yalnızca özel pipeline koduyla sınırlıdır. İki pipeline türünü aşağıdaki tabloda karşılaştırın. | |
| | | GitHub | Hub | | |
| |---|---|---| | |
| | Kullanım | `custom_pipeline="<filename_without_.py>"` | Hub depo kimliği veya `_class_name` özel koda işaret ettiğinde `trust_remote_code=True` | | |
| | İnceleme süreci | GitHub'da bir Pull Request açın ve birleştirilmeden önce Diffusers ekibinden bir inceleme sürecinden geçirin. Bu seçenek daha yavaştır. | Bir Hub deposuna inceleme olmadan doğrudan yükleyin. Bu, en hızlı seçenektir. | | |
| | Görünürlük | Resmî Diffusers deposu ve belgelerinde yer alır. | Hub profilinizde yer alır ve görünürlük kazanmak için kendi kullanımınıza ve tanıtımınıza bağlıdır. | | |
| ## Bir topluluk hattı yükleme | |
| `custom_pipeline` parametresini [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) fonksiyonuna ileterek topluluk kaynaklı her iki türden de pipeline yükleyebilirsiniz. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "stabilityai/stable-diffusion-3-medium-diffusers", | |
| custom_pipeline="pipeline_stable_diffusion_3_instruct_pix2pix", | |
| dtype=torch.float16, | |
| device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| ``` | |
| Belirli bir sürümden (örneğin `v0.30.0` veya `main`) topluluk hattı yüklemek için [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) fonksiyonuna `custom_revision` argümanını ekleyin. Varsayılan olarak, topluluk hatları Diffusers'ın en son kararlı sürümünden yüklenir. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "stabilityai/stable-diffusion-3-medium-diffusers", | |
| custom_pipeline="pipeline_stable_diffusion_3_instruct_pix2pix", | |
| custom_revision="main", | |
| dtype=torch.float16, | |
| device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| ``` | |
| > [!WARNING] | |
| > Hugging Face Hub dosyaları [tarama](https://huggingface.co/docs/hub/security-malware) yaparken, yine de Hub pipeline kodunu incelemeli ve güvenli olduğundan emin olmalısınız. | |
| Bir topluluk hattını yüklemenin birkaç yolu vardır. | |
| - `custom_pipeline` parametresine yerel bir topluluk hattını yüklemek için bir yol iletin. Dizin, hat sınıfını içeren bir `pipeline.py` dosyası içermelidir. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "stabilityai/stable-diffusion-3-medium-diffusers", | |
| custom_pipeline="path/to/pipeline_directory", | |
| trust_remote_code=True, | |
| dtype=torch.float16, | |
| device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| ``` | |
| - `custom_pipeline` argümanı, ek bellek kullanmadan [boru hatlarını yeniden kullanmak](./loading#reusing-models-in-multiple-pipelines) için faydalı olan [from_pipe()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pipe) tarafından da desteklenir. Bu, bellek kullanımını yalnızca yüklenen en büyük boru hattıyla sınırlar. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline_sd = DiffusionPipeline.from_pretrained( | |
| "emilianJR/CyberRealistic_V3", dtype=torch.float16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| pipeline_lpw = DiffusionPipeline.from_pipe( | |
| pipeline_sd, custom_pipeline="lpw_stable_diffusion" | |
| ) | |
| ``` | |
| [from_pipe()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pipe) yöntemi, topluluk boru hatlarını yüklemek için özellikle faydalıdır çünkü bunların çoğunun önceden eğitilmiş ağırlıkları yoktur. Topluluk boru hatları genellikle mevcut bir boru hattının üzerine bir özellik ekler. | |
| ## Topluluk bileşenleri | |
| Community components, Diffusers tarafından desteklenmeyen özel transformer, UNet, VAE ve scheduler'larla pipeline oluşturmanızı sağlar. Bu bileşenlerin kendi Python modüllerine ihtiyaç duyar. | |
| Bu bölüm, kullanıcıların topluluk bileşenlerini kullanarak bir topluluk hattı oluşturmayı nasıl yapabileceklerini, örnek olarak [showlab/show-1-base](https://huggingface.co/showlab/show-1-base) modelini kullanarak göstermektedir. | |
| 1. Gerekli bileşenleri, zamanlayıcıyı ve görüntü işleyiciyi yükleyin. Metin kodlayıcı genellikle [Transformers](https://huggingface.co/docs/transformers/index) kütüphanesinden içe aktarılır. | |
| ```python | |
| from transformers import T5Tokenizer, T5EncoderModel, CLIPImageProcessor | |
| from diffusers import DPMSolverMultistepScheduler | |
| pipeline_id = "showlab/show-1-base" | |
| tokenizer = T5Tokenizer.from_pretrained(pipeline_id, subfolder="tokenizer") | |
| text_encoder = T5EncoderModel.from_pretrained(pipeline_id, subfolder="text_encoder") | |
| scheduler = DPMSolverMultistepScheduler.from_pretrained(pipeline_id, subfolder="scheduler") | |
| feature_extractor = CLIPImageProcessor.from_pretrained(pipeline_id, subfolder="feature_extractor") | |
| ``` | |
| > [!WARNING] | |
| > 2. ve 3. adımlarda, özel [UNet](https://github.com/showlab/Show-1/blob/main/showone/models/unet_3d_condition.py) ve [pipeline](https://huggingface.co/sayakpaul/show-1-base-with-code/blob/main/unet/showone_unet_3d_condition.py) uygulamasının, bu örneğin çalışabilmesi için dosyalarında gösterilen biçimle eşleşmesi gerekir. | |
| 2. [Özel bir UNet](https://github.com/showlab/Show-1/blob/main/showone/models/unet_3d_condition.py) yükleyin; bu, zaten [showone_unet_3d_condition.py](https://huggingface.co/sayakpaul/show-1-base-with-code/blob/main/unet/showone_unet_3d_condition.py) içinde uygulanmıştır. [UNet3DConditionModel](/docs/diffusers/main/tr/api/models/unet3d-cond#diffusers.UNet3DConditionModel) sınıf adı, Diffusers'ta zaten var olduğu için [UNet3DConditionModel](/docs/diffusers/main/tr/api/models/unet3d-cond#diffusers.UNet3DConditionModel) yerine özel uygulama olan `ShowOneUNet3DConditionModel` olarak yeniden adlandırılmıştır. `ShowOneUNet3DConditionModel` sınıfı için gerekli tüm bileşenler `showone_unet_3d_condition.py` dosyasında yer almalıdır. | |
| ```python | |
| from showone_unet_3d_condition import ShowOneUNet3DConditionModel | |
| unet = ShowOneUNet3DConditionModel.from_pretrained(pipeline_id, subfolder="unet") | |
| ``` | |
| 3. Özel pipeline kodunu yükleyin (zaten [pipeline_t2v_base_pixel.py](https://huggingface.co/sayakpaul/show-1-base-with-code/blob/main/pipeline_t2v_base_pixel.py) içinde uygulandı). Bu betik, metinden video üretmek için özel bir `TextToVideoIFPipeline` sınıfı içerir. Özel UNet gibi, `TextToVideoIFPipeline` için gerekli olan tüm kod `pipeline_t2v_base_pixel.py` dosyasına yerleştirilmelidir. | |
| `TextToVideoIFPipeline`'i `ShowOneUNet3DConditionModel` ile başlatın. | |
| ```python | |
| import torch | |
| from pipeline_t2v_base_pixel import TextToVideoIFPipeline | |
| pipeline = TextToVideoIFPipeline( | |
| unet=unet, | |
| text_encoder=text_encoder, | |
| tokenizer=tokenizer, | |
| scheduler=scheduler, | |
| feature_extractor=feature_extractor, | |
| ) | |
| pipeline = pipeline.to("cuda") # or "mps", "xpu", "cpu" | |
| ``` | |
| 4. Pipeline'ı toplulukla paylaşmak için Hub'a gönderin. | |
| ```python | |
| pipeline.push_to_hub("custom-t2v-pipeline") | |
| ``` | |
| Pipeline başarıyla itildikten sonra aşağıdaki değişiklikleri yapın. | |
| - [model_index.json](https://huggingface.co/sayakpaul/show-1-base-with-code/blob/main/model_index.json#L2) dosyasındaki `_class_name` özniteliğini `["pipeline_t2v_base_pixel", "TextToVideoIFPipeline"]` olarak değiştirin. | |
| - `showone_unet_3d_condition.py` dosyasını [unet](https://huggingface.co/sayakpaul/show-1-base-with-code/blob/main/unet/showone_unet_3d_condition.py) alt klasörüne yükleyin. | |
| - `pipeline_t2v_base_pixel.py` dosyasını [repository](https://huggingface.co/sayakpaul/show-1-base-with-code/tree/main) hattına yükleyin. | |
| Çıkarım (inference) çalıştırmak için, arka plandaki tüm "sihirli" işlemleri yönetmek üzere pipeline'ı başlatırken `trust_remote_code` argümanını ekleyin. | |
| ```python | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "<change-username>/<change-id>", trust_remote_code=True, dtype=torch.float16 | |
| ) | |
| ``` | |
| > [!WARNING] | |
| > `trust_remote_code=True` ile ek bir önlem olarak, kodun yeni kötü amaçlı kodlarla güncellenmediğinden emin olmak için [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) içindeki `revision` argümanına bir commit hash'i iletin (model sahiplerine tamamen güvenmiyorsanız). | |
| ## Sonraki adımlar | |
| - Herkesin işlerini yavaşlamadan kolayca paylaşmasına yardımcı olmak için topluluk boru hatlarını neden eklediğimiz hakkında daha fazla bağlam için [#841](https://github.com/huggingface/diffusers/issues/841) numaralı soruna göz atın. | |
| - Ek bir topluluk hattı örneği olarak `trust_remote_code` özelliğini de kullanan [stabilityai/japanese-stable-diffusion-xl](https://huggingface.co/stabilityai/japanese-stable-diffusion-xl/) deposuna göz atın. | |
Xet Storage Details
- Size:
- 9.82 kB
- Xet hash:
- ecea9a118c26b06f269dc40085713753ce1ff0dfb95325bff029d2c563848be0
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.