Browse Source

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

pull/2761/head
comfyanonymous 9 months ago
parent
commit
20e3da6b31
  1. 25
      comfy_extras/nodes_cond.py
  2. 1
      nodes.py

25
comfy_extras/nodes_cond.py

@ -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
}

1
nodes.py

@ -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