| 226 | class FrozenCLIPEmbedderWrapper(AbstractEncoder): |
| 227 | """Uses the CLIP transformer encoder for text (from Hugging Face)""" |
| 228 | def __init__(self, modifier_token, version="openai/clip-vit-large-patch14", device="cuda", max_length=77): |
| 229 | super().__init__() |
| 230 | self.tokenizer = CLIPTokenizer.from_pretrained(version) |
| 231 | self.transformer = CLIPTextModel.from_pretrained(version) |
| 232 | self.device = device |
| 233 | self.max_length = max_length |
| 234 | self.modifier_token = modifier_token |
| 235 | if '+' in self.modifier_token: |
| 236 | self.modifier_token = self.modifier_token.split('+') |
| 237 | else: |
| 238 | self.modifier_token = [self.modifier_token] |
| 239 | |
| 240 | self.add_token() |
| 241 | self.freeze() |
| 242 | |
| 243 | def add_token(self): |
| 244 | self.modifier_token_id = [] |