Create forge_clip.py

This commit is contained in:
lllyasviel
2024-01-25 06:11:24 -08:00
parent fdef0aeb6b
commit 027ab005b6

View File

@@ -0,0 +1,39 @@
from modules.sd_hijack_clip import FrozenCLIPEmbedderWithCustomWords
class CLIP_SD_15_L(FrozenCLIPEmbedderWithCustomWords):
pass
class CLIP_SD_21_G(FrozenCLIPEmbedderWithCustomWords):
pass
class CLIP_SD_XL_L(FrozenCLIPEmbedderWithCustomWords):
def __init__(self, wrapped, hijack):
super().__init__(wrapped, hijack)
def encode_with_transformers(self, tokens):
outputs = self.wrapped.transformer(input_ids=tokens, output_hidden_states=self.wrapped.layer == "hidden")
if self.wrapped.layer == "last":
z = outputs.last_hidden_state
else:
z = outputs.hidden_states[self.wrapped.layer_idx]
return z
class CLIP_SD_XL_G(FrozenCLIPEmbedderWithCustomWords):
def __init__(self, wrapped, hijack):
super().__init__(wrapped, hijack)
def encode_with_transformers(self, tokens):
outputs = self.wrapped.transformer(input_ids=tokens, output_hidden_states=self.wrapped.layer == "hidden")
if self.wrapped.layer == "last":
z = outputs.last_hidden_state
else:
z = outputs.hidden_states[self.wrapped.layer_idx]
return z