Skip to content

Commit cf49a2c

Browse files
Dual cfg node optimizations when cfg is 1.0 (comfyanonymous#8747)
1 parent 170c7bb commit cf49a2c

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

comfy_extras/nodes_custom_sampler.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -609,8 +609,14 @@ def set_conds(self, positive, middle, negative):
609609
def predict_noise(self, x, timestep, model_options={}, seed=None):
610610
negative_cond = self.conds.get("negative", None)
611611
middle_cond = self.conds.get("middle", None)
612-
613-
out = comfy.samplers.calc_cond_batch(self.inner_model, [negative_cond, middle_cond, self.conds.get("positive", None)], x, timestep, model_options)
612+
positive_cond = self.conds.get("positive", None)
613+
if model_options.get("disable_cfg1_optimization", False) == False:
614+
if math.isclose(self.cfg2, 1.0):
615+
negative_cond = None
616+
if math.isclose(self.cfg1, 1.0):
617+
middle_cond = None
618+
619+
out = comfy.samplers.calc_cond_batch(self.inner_model, [negative_cond, middle_cond, positive_cond], x, timestep, model_options)
614620
return comfy.samplers.cfg_function(self.inner_model, out[1], out[0], self.cfg2, x, timestep, model_options=model_options, cond=middle_cond, uncond=negative_cond) + (out[2] - out[1]) * self.cfg1
615621

616622
class DualCFGGuider:

0 commit comments

Comments
 (0)