# from modules import sd_hijack_clip # from modules import shared # # # def process_text_old(self: sd_hijack_clip.FrozenCLIPEmbedderWithCustomWordsBase, texts): # id_start = self.id_start # id_end = self.id_end # maxlen = self.wrapped.max_length # you get to stay at 77 # used_custom_terms = [] # remade_batch_tokens = [] # hijack_comments = [] # hijack_fixes = [] # token_count = 0 # # cache = {} # batch_tokens = self.tokenize(texts) # batch_multipliers = [] # for tokens in batch_tokens: # tuple_tokens = tuple(tokens) # # if tuple_tokens in cache: # remade_tokens, fixes, multipliers = cache[tuple_tokens] # else: # fixes = [] # remade_tokens = [] # multipliers = [] # mult = 1.0 # # i = 0 # while i < len(tokens): # token = tokens[i] # # embedding, embedding_length_in_tokens = self.hijack.embedding_db.find_embedding_at_position(tokens, i) # # mult_change = self.token_mults.get(token) if shared.opts.emphasis != "None" else None # if mult_change is not None: # mult *= mult_change # i += 1 # elif embedding is None: # remade_tokens.append(token) # multipliers.append(mult) # i += 1 # else: # emb_len = int(embedding.vec.shape[0]) # fixes.append((len(remade_tokens), embedding)) # remade_tokens += [0] * emb_len # multipliers += [mult] * emb_len # used_custom_terms.append((embedding.name, embedding.checksum())) # i += embedding_length_in_tokens # # if len(remade_tokens) > maxlen - 2: # vocab = {v: k for k, v in self.wrapped.tokenizer.get_vocab().items()} # ovf = remade_tokens[maxlen - 2:] # overflowing_words = [vocab.get(int(x), "") for x in ovf] # overflowing_text = self.wrapped.tokenizer.convert_tokens_to_string(''.join(overflowing_words)) # hijack_comments.append(f"Warning: too many input tokens; some ({len(overflowing_words)}) have been truncated:\n{overflowing_text}\n") # # token_count = len(remade_tokens) # remade_tokens = remade_tokens + [id_end] * (maxlen - 2 - len(remade_tokens)) # remade_tokens = [id_start] + remade_tokens[0:maxlen - 2] + [id_end] # cache[tuple_tokens] = (remade_tokens, fixes, multipliers) # # multipliers = multipliers + [1.0] * (maxlen - 2 - len(multipliers)) # multipliers = [1.0] + multipliers[0:maxlen - 2] + [1.0] # # remade_batch_tokens.append(remade_tokens) # hijack_fixes.append(fixes) # batch_multipliers.append(multipliers) # return batch_multipliers, remade_batch_tokens, used_custom_terms, hijack_comments, hijack_fixes, token_count # # # def forward_old(self: sd_hijack_clip.FrozenCLIPEmbedderWithCustomWordsBase, texts): # batch_multipliers, remade_batch_tokens, used_custom_terms, hijack_comments, hijack_fixes, token_count = process_text_old(self, texts) # # self.hijack.comments += hijack_comments # # if used_custom_terms: # embedding_names = ", ".join(f"{word} [{checksum}]" for word, checksum in used_custom_terms) # self.hijack.comments.append(f"Used embeddings: {embedding_names}") # # self.hijack.fixes = hijack_fixes # return self.process_tokens(remade_batch_tokens, batch_multipliers)