+2707
-319
lines changedFilter options
+2707
-319
lines changed Original file line number Diff line number Diff line change
@@ -36,6 +36,10 @@
36
36
import comfy.ldm.hydit.controlnet
37
37
import comfy.ldm.flux.controlnet
38
38
import comfy.cldm.dit_embedder
39
+
from typing import TYPE_CHECKING
40
+
if TYPE_CHECKING:
41
+
from comfy.hooks import HookGroup
42
+
39
43
40
44
def broadcast_image_to(tensor, target_batch_size, batched_number):
41
45
current_batch_size = tensor.shape[0]
@@ -78,6 +82,7 @@ def __init__(self):
78
82
self.concat_mask = False
79
83
self.extra_concat_orig = []
80
84
self.extra_concat = None
85
+
self.extra_hooks: HookGroup = None
81
86
self.preprocess_image = lambda a: a
82
87
83
88
def set_cond_hint(self, cond_hint, strength=1.0, timestep_percent_range=(0.0, 1.0), vae=None, extra_concat=[]):
@@ -115,6 +120,14 @@ def get_models(self):
115
120
if self.previous_controlnet is not None:
116
121
out += self.previous_controlnet.get_models()
117
122
return out
123
+
124
+
def get_extra_hooks(self):
125
+
out = []
126
+
if self.extra_hooks is not None:
127
+
out.append(self.extra_hooks)
128
+
if self.previous_controlnet is not None:
129
+
out += self.previous_controlnet.get_extra_hooks()
130
+
return out
118
131
119
132
def copy_to(self, c):
120
133
c.cond_hint_original = self.cond_hint_original
@@ -130,6 +143,7 @@ def copy_to(self, c):
130
143
c.strength_type = self.strength_type
131
144
c.concat_mask = self.concat_mask
132
145
c.extra_concat_orig = self.extra_concat_orig.copy()
146
+
c.extra_hooks = self.extra_hooks.clone() if self.extra_hooks else None
133
147
c.preprocess_image = self.preprocess_image
134
148
135
149
def inference_memory_requirements(self, dtype):
@@ -200,10 +214,10 @@ def __init__(self, control_model=None, global_average_pooling=False, compression
200
214
self.concat_mask = concat_mask
201
215
self.preprocess_image = preprocess_image
202
216
203
-
def get_control(self, x_noisy, t, cond, batched_number):
217
+
def get_control(self, x_noisy, t, cond, batched_number, transformer_options):
204
218
control_prev = None
205
219
if self.previous_controlnet is not None:
206
-
control_prev = self.previous_controlnet.get_control(x_noisy, t, cond, batched_number)
220
+
control_prev = self.previous_controlnet.get_control(x_noisy, t, cond, batched_number, transformer_options)
207
221
208
222
if self.timestep_range is not None:
209
223
if t[0] > self.timestep_range[0] or t[0] < self.timestep_range[1]:
@@ -758,10 +772,10 @@ def scale_image_to(self, width, height):
758
772
height = math.ceil(height / unshuffle_amount) * unshuffle_amount
759
773
return width, height
760
774
761
-
def get_control(self, x_noisy, t, cond, batched_number):
775
+
def get_control(self, x_noisy, t, cond, batched_number, transformer_options):
762
776
control_prev = None
763
777
if self.previous_controlnet is not None:
764
-
control_prev = self.previous_controlnet.get_control(x_noisy, t, cond, batched_number)
778
+
control_prev = self.previous_controlnet.get_control(x_noisy, t, cond, batched_number, transformer_options)
765
779
766
780
if self.timestep_range is not None:
767
781
if t[0] > self.timestep_range[0] or t[0] < self.timestep_range[1]:
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4