Buckets:
Metinsel Tersine Çevirme
Textual Inversion, birkaç örnek görüntüden yeni metin gömlemleri öğrenerek modelleri kişiselleştirmek için kullanılan bir eğitim yöntemidir. Eğitimden üretilen dosya son derece küçüktür (birkaç KB) ve yeni gömlemler metin kodlayıcıya yüklenebilir.
TextualInversionLoaderMixin, Diffusers ve Automatic1111 kaynaklarından Textual Inversion gömme vektörlerini metin kodlayıcıya yüklemek ve bu gömme vektörlerini etkinleştirmek için özel bir jeton yüklemek üzere bir işlev sağlar.
Textual Inversion gömme yüklemelerinin nasıl yükleneceğini öğrenmek için Textual Inversion yükleme kılavuzuna bakın.
TextualInversionLoaderMixin[[diffusers.loaders.TextualInversionLoaderMixin]]
diffusers.loaders.TextualInversionLoaderMixin[[diffusers.loaders.TextualInversionLoaderMixin]]
diffusers.loaders.TextualInversionLoaderMixin()
Textual Inversion jetonlarını ve gömme değerlerini tokenizer ve metin kodlayıcıya yükleyin.
load_textual_inversion[[diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion]]
load_textual_inversion(pretrained_model_name_or_path: str | list[str] | dict[str, torch.Tensor] | list[dict[str, torch.Tensor]], token: str | list[str] | None = None, tokenizer: 'PreTrainedTokenizer' | None = None, text_encoder: 'PreTrainedModel' | None = None, **kwargs)
Parametreler:
pretrained_model_name_or_path (str veya os.PathLike veya list[str or os.PathLike] veya Dict veya list[Dict]) : Aşağıdakilerden biri veya bunların bir listesi olabilir: - Hub'da barındırılan önceden eğitilmiş bir modelin model kimliği (örneğin sd-concepts-library/low-poly-hd-logos-icons) olan bir dize. - Metinsel tersine çevirme ağırlıklarını içeren bir dizin yolu (örneğin ./my_text_inversion_directory/). - Metinsel tersine çevirme ağırlıklarını içeren bir dosya yolu (örneğin ./my_text_inversions.pt). - Bir torch state dict.
token (str veya list[str], isteğe bağlı) : Metinsel ters çevirme ağırlıkları için kullanılacak jetonu geçersiz kılar. pretrained_model_name_or_path bir liste ise, token da eşit uzunlukta bir liste olmalıdır.
text_encoder (CLIPTextModel, isteğe bağlı) : Donmuş metin kodlayıcı (clip-vit-large-patch14). Belirtilmezse, fonksiyon self.tokenizer değerini alır.
tokenizer (CLIPTokenizer, isteğe bağlı) : Metni tokenleştirmek için bir CLIPTokenizer. Belirtilmezse, fonksiyon self.tokenizer değerini alır.
weight_name (str, isteğe bağlı) : Özel bir ağırlık dosyasının adı. Bu, aşağıdaki durumlarda kullanılmalıdır: - Kaydedilen metinsel ters çevirme dosyası 🤗 Diffusers biçimindeyse ancak text_inv.bin gibi belirli bir ağırlık adı altında kaydedildiyse. - Kaydedilen metinsel ters çevirme dosyası Automatic1111 biçimindeyse.
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.
hf_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.
mirror (str, isteğe bağlı) : Çin'de bir model indiriyorsanız 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.
StableDiffusionPipeline metin kodlayıcısına Textual Inversion gömme değerlerini yükleyin (hem 🤗 Diffusers hem de Automatic1111 biçimleri desteklenir).
Örnek:
🤗 Diffusers biçiminde bir Textual Inversion gömme vektörü yüklemek için:
from diffusers import StableDiffusionPipeline
import torch
model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to("cuda")
pipe.load_textual_inversion("sd-concepts-library/cat-toy")
prompt = "A <cat-toy> backpack"
image = pipe(prompt, num_inference_steps=50).images[0]
image.save("cat-backpack.png")
Automatic1111 biçiminde bir Textual Inversion gömme vektörünü yüklemek için, vektörü önce indirin (örneğin civitAI üzerinden) ve ardından vektörü yükleyin
yerel olarak:
from diffusers import StableDiffusionPipeline
import torch
model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to("cuda")
pipe.load_textual_inversion("./charturnerv2.pt", token="charturnerv2")
prompt = "charturnerv2, multiple views of the same character in the same outfit, a character turnaround of a woman wearing a black jacket and red shirt, best quality, intricate details."
image = pipe(prompt, num_inference_steps=50).images[0]
image.save("character.png")
maybe_convert_prompt[[diffusers.loaders.TextualInversionLoaderMixin.maybe_convert_prompt]]
maybe_convert_prompt(prompt: str | list[str], tokenizer: 'PreTrainedTokenizer')
Parametreler:
prompt (str veya str listesi) : Görsel üretimi yönlendirmek için istem veya istemler.
tokenizer (PreTrainedTokenizer) : İsteğin giriş jetonlarına kodlanmasından sorumlu jetonlaştırıcı.
Dönüş: str veya str listesi
Dönüştürülen istem
Çok vektörlü metinsel tersine çevirme gömme değerine karşılık gelen özel bir token içeren istekleri işler ve bu token'ı, vektörlerden her birine karşılık gelen birden fazla özel token ile değiştirir. İstekte metinsel tersine çevirme token'ı yoksa veya metinsel tersine çevirme token'ı tek vektörlüyse, girdi isteği olduğu gibi döndürülür.
unload_textual_inversion[[diffusers.loaders.TextualInversionLoaderMixin.unload_textual_inversion]]
unload_textual_inversion(tokens: str | list[str] | None = None, tokenizer: 'PreTrainedTokenizer' | None = None, text_encoder: 'PreTrainedModel' | None = None)
StableDiffusionPipeline metin kodlayıcısından Textual Inversion gömme vektörlerini bellekten kaldırın
Örnek:
from diffusers import AutoPipelineForText2Image
import torch
pipeline = AutoPipelineForText2Image.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5")
# Example 1
pipeline.load_textual_inversion("sd-concepts-library/gta5-artwork")
pipeline.load_textual_inversion("sd-concepts-library/moeb-style")
# Remove all token embeddings
pipeline.unload_textual_inversion()
# Example 2
pipeline.load_textual_inversion("sd-concepts-library/moeb-style")
pipeline.load_textual_inversion("sd-concepts-library/gta5-artwork")
# Remove just one token
pipeline.unload_textual_inversion("<moe-bius>")
# Example 3: unload from SDXL
pipeline = AutoPipelineForText2Image.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")
embedding_path = hf_hub_download(
repo_id="linoyts/web_y2k", filename="web_y2k_emb.safetensors", repo_type="model"
)
# load embeddings to the text encoders
state_dict = load_file(embedding_path)
# load embeddings of text_encoder 1 (CLIP ViT-L/14)
pipeline.load_textual_inversion(
state_dict["clip_l"],
tokens=["<s0>", "<s1>"],
text_encoder=pipeline.text_encoder,
tokenizer=pipeline.tokenizer,
)
# load embeddings of text_encoder 2 (CLIP ViT-G/14)
pipeline.load_textual_inversion(
state_dict["clip_g"],
tokens=["<s0>", "<s1>"],
text_encoder=pipeline.text_encoder_2,
tokenizer=pipeline.tokenizer_2,
)
# Unload explicitly from both text encoders and tokenizers
pipeline.unload_textual_inversion(
tokens=["<s0>", "<s1>"], text_encoder=pipeline.text_encoder, tokenizer=pipeline.tokenizer
)
pipeline.unload_textual_inversion(
tokens=["<s0>", "<s1>"], text_encoder=pipeline.text_encoder_2, tokenizer=pipeline.tokenizer_2
)
Xet Storage Details
- Size:
- 10.2 kB
- Xet hash:
- af338dd7b8e23ab40caaa2ee500402055c30cc4320a4402a07e90741f70231ac
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.