Spaces:
Running
on
Zero
Running
on
Zero
class CLIPTextEncodeControlnet: | |
def INPUT_TYPES(s): | |
return {"required": {"clip": ("CLIP", ), "conditioning": ("CONDITIONING", ), "text": ("STRING", {"multiline": True, "dynamicPrompts": True})}} | |
RETURN_TYPES = ("CONDITIONING",) | |
FUNCTION = "encode" | |
CATEGORY = "_for_testing/conditioning" | |
def encode(self, clip, conditioning, text): | |
tokens = clip.tokenize(text) | |
cond, pooled = clip.encode_from_tokens(tokens, return_pooled=True) | |
c = [] | |
for t in conditioning: | |
n = [t[0], t[1].copy()] | |
n[1]['cross_attn_controlnet'] = cond | |
n[1]['pooled_output_controlnet'] = pooled | |
c.append(n) | |
return (c, ) | |
class T5TokenizerOptions: | |
def INPUT_TYPES(s): | |
return { | |
"required": { | |
"clip": ("CLIP", ), | |
"min_padding": ("INT", {"default": 0, "min": 0, "max": 10000, "step": 1}), | |
"min_length": ("INT", {"default": 0, "min": 0, "max": 10000, "step": 1}), | |
} | |
} | |
CATEGORY = "_for_testing/conditioning" | |
RETURN_TYPES = ("CLIP",) | |
FUNCTION = "set_options" | |
def set_options(self, clip, min_padding, min_length): | |
clip = clip.clone() | |
for t5_type in ["t5xxl", "pile_t5xl", "t5base", "mt5xl", "umt5xxl"]: | |
clip.set_tokenizer_option("{}_min_padding".format(t5_type), min_padding) | |
clip.set_tokenizer_option("{}_min_length".format(t5_type), min_length) | |
return (clip, ) | |
NODE_CLASS_MAPPINGS = { | |
"CLIPTextEncodeControlnet": CLIPTextEncodeControlnet, | |
"T5TokenizerOptions": T5TokenizerOptions, | |
} | |