This commit is contained in:
lllyasviel 2024-01-27 22:44:49 -08:00
parent 424b225fb3
commit b45c68fe3e
3 changed files with 8 additions and 3 deletions

View File

@ -81,7 +81,7 @@ class ControlNetExampleForge(scripts.Script):
unet = p.sd_model.forge_objects.unet
unet = apply_controlnet_advanced(unet=unet, controlnet=self.model, cond_hint=control_image,
unet = apply_controlnet_advanced(unet=unet, controlnet=self.model, image_bhwc=control_image,
strength=1.0, start_percent=0.0, end_percent=1.0,
positive_advanced_weighting=None, negative_advanced_weighting=None)

View File

@ -1,14 +1,14 @@
def apply_controlnet_advanced(
unet,
controlnet,
cond_hint,
image_bhwc,
strength,
start_percent,
end_percent,
positive_advanced_weighting=None,
negative_advanced_weighting=None):
cnet = controlnet.copy().set_cond_hint(cond_hint, strength, (start_percent, end_percent))
cnet = controlnet.copy().set_cond_hint(image_bhwc.movedim(-1, 1), strength, (start_percent, end_percent))
cnet.positive_advanced_weighting = positive_advanced_weighting
cnet.negative_advanced_weighting = negative_advanced_weighting

View File

@ -54,6 +54,7 @@ def cond_from_a1111_to_patched_ldm_weighted(cond, weights):
def forge_sample(self, denoiser_params, cond_scale, cond_composition):
model = self.inner_model.inner_model.forge_objects.unet.model
control = self.inner_model.inner_model.forge_objects.unet.controlnet_linked_list
x = denoiser_params.x
timestep = denoiser_params.sigma
uncond = cond_from_a1111_to_patched_ldm(denoiser_params.text_uncond)
@ -69,6 +70,10 @@ def forge_sample(self, denoiser_params, cond_scale, cond_composition):
uncond[0]['model_conds']['c_concat'] = CONDRegular(image_cond_in)
cond[0]['model_conds']['c_concat'] = CONDRegular(image_cond_in)
if control is not None:
for h in cond + uncond:
h['control'] = control
denoised = sampling_function(model, x, timestep, uncond, cond, cond_scale, model_options, seed)
return denoised