Add a node to give the controlnet a prompt different from the unet.

main
comfyanonymous 1 year ago
parent f44225fd5f
commit 20e3da6b31

@ -0,0 +1,25 @@
class CLIPTextEncodeControlnet:
@classmethod
def INPUT_TYPES(s):
return {"required": {"clip": ("CLIP", ), "conditioning": ("CONDITIONING", ), "text": ("STRING", {"multiline": 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, )
NODE_CLASS_MAPPINGS = {
"CLIPTextEncodeControlnet": CLIPTextEncodeControlnet
}

@ -1965,6 +1965,7 @@ def init_custom_nodes():
"nodes_stable3d.py", "nodes_stable3d.py",
"nodes_sdupscale.py", "nodes_sdupscale.py",
"nodes_photomaker.py", "nodes_photomaker.py",
"nodes_cond.py",
] ]
for node_file in extras_files: for node_file in extras_files:

Loading…
Cancel
Save