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() 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.

LoRA ağırlıklarının nasıl yükleneceğini öğrenmek için LoRA kılavuzuna bakın.

UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]]

diffusers.loaders.UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]]

diffusers.loaders.UNet2DConditionLoadersMixin()

Kaynak

LoRA katmanlarını UNet2DCondtionModel içine yükleyin.

load_attn_procs[[diffusers.loaders.UNet2DConditionLoadersMixin.load_attn_procs]]

load_attn_procs(pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor], **kwargs)

Kaynak

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() ile kaydedilmiş model ağırlıklarını içeren bir dizine (örneğin ./my_model_directory) giden bir yol. - Bir torch 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 içine yükler. Dikkat işlemci katmanları 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() kullanın.

Örnek:

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]]

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

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() yöntemiyle yeniden yüklenebilecek şekilde bir dizine kaydedin. LoRA katmanlarını kaydetmek için bunun yerine save_lora_adapter() kullanın.

Örnek:

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.