Buckets:

mishig's picture
|
download
raw
7.08 kB
# UNet
Bazı eğitim yöntemleri - LoRA ve Custom Diffusion gibi - genellikle UNet'in dikkat katmanlarını hedefler, ancak bu eğitim yöntemleri diğer dikkat dışı katmanları da hedefleyebilir. Modelin tüm parametrelerini eğitmek yerine, yalnızca parametrelerin bir alt kümesi eğitilir; bu daha hızlı ve verimlidir. Bu sınıf, yalnızca ağırlıkları bir UNet'e *yüklediğinizde* kullanışlıdır. Ağırlıkları metin kodlayıcıya veya hem metin kodlayıcıya hem de UNet'e yüklemeniz gerekiyorsa, bunun yerine [load_lora_weights()](/docs/diffusers/main/tr/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) işlevini kullanmayı deneyin.
`UNet2DConditionLoadersMixin` sınıfı, ağırlıkları yükleme ve kaydetme, LoRA'ları birleştirme ve ayırma, LoRA'ları devre dışı bırakma ve etkinleştirme ile adaptörleri ayarlama ve silme işlevlerini sağlar.
> [!TIP]
> LoRA ağırlıklarının nasıl yükleneceğini öğrenmek için [LoRA](../../tutorials/using_peft_for_inference) kılavuzuna bakın.
## UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]]
#### diffusers.loaders.UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]]
```python
diffusers.loaders.UNet2DConditionLoadersMixin()
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/unet.py#L54)
LoRA katmanlarını `UNet2DCondtionModel` içine yükleyin.
#### load_attn_procs[[diffusers.loaders.UNet2DConditionLoadersMixin.load_attn_procs]]
```python
load_attn_procs(pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor], **kwargs)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/unet.py#L62)
**Parametreler:**
pretrained_model_name_or_path_or_dict (`str` veya `os.PathLike` veya `dict`) : Şunlardan biri olabilir: - Hub'da barındırılan önceden eğitilmiş bir modelin model kimliği (örneğin `google/ddpm-celebahq-256`) olan bir dize. - [ModelMixin.save_pretrained()](/docs/diffusers/main/tr/api/models/overview#diffusers.ModelMixin.save_pretrained) ile kaydedilmiş model ağırlıklarını içeren bir dizine (örneğin `./my_model_directory`) giden bir yol. - Bir [torch state dict](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict).
cache_dir (`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.
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.
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.
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.
subfolder (`str`, *isteğe bağlı*, varsayılan `""`) : Hub'da veya yerel olarak daha büyük bir model deposu içindeki bir model dosyasının alt klasör konumu.
weight_name (`str`, *isteğe bağlı*, varsayılan olarak None) : Seri hale getirilmiş state dict dosyasının adı.
Önceden eğitilmiş Custom Diffusion dikkat işlemci katmanlarını [UNet2DConditionModel](/docs/diffusers/main/tr/api/models/unet2d-cond#diffusers.UNet2DConditionModel) içine yükler. Dikkat işlemci katmanları [`attention_processor.py`](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) içinde tanımlanmış olmalı ve bir `torch.nn.Module` sınıfı olmalıdır. LoRA katmanlarını yüklemek için bunun yerine [load_lora_adapter()](/docs/diffusers/main/tr/api/loaders/peft#diffusers.loaders.PeftAdapterMixin.load_lora_adapter) kullanın.
Örnek:
```py
import torch
from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained(
"CompVis/stable-diffusion-v1-4",
torch_dtype=torch.float16,
).to("cuda")
pipeline.unet.load_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin")
```
#### save_attn_procs[[diffusers.loaders.UNet2DConditionLoadersMixin.save_attn_procs]]
```python
save_attn_procs(save_directory: str | os.PathLike, is_main_process: bool = True, weight_name: str = None, save_function: typing.Callable = None, safe_serialization: bool = True, **kwargs)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/unet.py#L253)
**Parametreler:**
save_directory (`str` veya `os.PathLike`) : Bir dikkat işleyicisinin (attention processor) kaydedileceği dizin (varsa oluşturulur).
is_main_process (`bool`, *isteğe bağlı*, varsayılan `True`) : Bu işlemi çağıran sürecin ana süreç olup olmadığı. Dağıtık eğitim sırasında ve bu fonksiyonu tüm süreçlerde çağırmanız gerektiğinde kullanışlıdır. Bu durumda, yarış durumlarını (race condition) önlemek için `is_main_process=True` değerini yalnızca ana süreçte ayarlayın.
save_function (`Callable`) : Durum sözlüğünü (state dictionary) kaydetmek için kullanılacak işlev. Dağıtık eğitim sırasında `torch.save` yerine başka bir yöntem kullanmanız gerektiğinde faydalıdır. `DIFFUSERS_SAVE_MODE` ortam değişkeni ile yapılandırılabilir.
safe_serialization (`bool`, *isteğe bağlı*, varsayılan `True`) : Modelin `safetensors` ile mi yoksa `pickle` ile mi kaydedileceğini belirtir.
Özel Diffusion dikkat işlemci katmanlarını, [load_attn_procs()](/docs/diffusers/main/tr/api/loaders/unet#diffusers.loaders.UNet2DConditionLoadersMixin.load_attn_procs) yöntemiyle yeniden yüklenebilecek şekilde bir dizine kaydedin. LoRA katmanlarını kaydetmek için bunun yerine [save_lora_adapter()](/docs/diffusers/main/tr/api/loaders/peft#diffusers.loaders.PeftAdapterMixin.save_lora_adapter) kullanın.
Örnek:
```py
import torch
from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained(
"CompVis/stable-diffusion-v1-4",
torch_dtype=torch.float16,
).to("cuda")
pipeline.unet.load_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin")
pipeline.unet.save_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin")
```

Xet Storage Details

Size:
7.08 kB
·
Xet hash:
7bfed7cc79f5a1ec7a820893ae66f876bd16a6bc597eb644e997870cc414f86e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.