From 73175cf58c0371903bf9bec107f0e82c5c4363d0 Mon Sep 17 00:00:00 2001 From: BlenderNeko <126974546+BlenderNeko@users.noreply.github.com> Date: Thu, 13 Apr 2023 22:06:50 +0200 Subject: [PATCH] split tokenizer from encoder --- comfy/sd.py | 6 ++++-- nodes.py | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/comfy/sd.py b/comfy/sd.py index 2d7ff5a..6bd30da 100644 --- a/comfy/sd.py +++ b/comfy/sd.py @@ -372,10 +372,12 @@ class CLIP: def clip_layer(self, layer_idx): self.layer_idx = layer_idx - def encode(self, text): + def tokenize(self, text): + return self.tokenizer.tokenize_with_weights(text) + + def encode(self, tokens): if self.layer_idx is not None: self.cond_stage_model.clip_layer(self.layer_idx) - tokens = self.tokenizer.tokenize_with_weights(text) try: self.patcher.patch_model() cond = self.cond_stage_model.encode_token_weights(tokens) diff --git a/nodes.py b/nodes.py index 946c668..b81d160 100644 --- a/nodes.py +++ b/nodes.py @@ -44,7 +44,8 @@ class CLIPTextEncode: CATEGORY = "conditioning" def encode(self, clip, text): - return ([[clip.encode(text), {}]], ) + tokens = clip.tokenize(text) + return ([[clip.encode(tokens), {}]], ) class ConditioningCombine: @classmethod