Spaces:
Running
on
Zero
Running
on
Zero
| from comfy.cldm.control_types import UNION_CONTROLNET_TYPES | |
| import nodes | |
| import comfy.utils | |
| class SetUnionControlNetType: | |
| def INPUT_TYPES(s): | |
| return {"required": {"control_net": ("CONTROL_NET", ), | |
| "type": (["auto"] + list(UNION_CONTROLNET_TYPES.keys()),) | |
| }} | |
| CATEGORY = "conditioning/controlnet" | |
| RETURN_TYPES = ("CONTROL_NET",) | |
| FUNCTION = "set_controlnet_type" | |
| def set_controlnet_type(self, control_net, type): | |
| control_net = control_net.copy() | |
| type_number = UNION_CONTROLNET_TYPES.get(type, -1) | |
| if type_number >= 0: | |
| control_net.set_extra_arg("control_type", [type_number]) | |
| else: | |
| control_net.set_extra_arg("control_type", []) | |
| return (control_net,) | |
| class ControlNetInpaintingAliMamaApply(nodes.ControlNetApplyAdvanced): | |
| def INPUT_TYPES(s): | |
| return {"required": {"positive": ("CONDITIONING", ), | |
| "negative": ("CONDITIONING", ), | |
| "control_net": ("CONTROL_NET", ), | |
| "vae": ("VAE", ), | |
| "image": ("IMAGE", ), | |
| "mask": ("MASK", ), | |
| "strength": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.01}), | |
| "start_percent": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1.0, "step": 0.001}), | |
| "end_percent": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.001}) | |
| }} | |
| FUNCTION = "apply_inpaint_controlnet" | |
| CATEGORY = "conditioning/controlnet" | |
| def apply_inpaint_controlnet(self, positive, negative, control_net, vae, image, mask, strength, start_percent, end_percent): | |
| extra_concat = [] | |
| if control_net.concat_mask: | |
| mask = 1.0 - mask.reshape((-1, 1, mask.shape[-2], mask.shape[-1])) | |
| mask_apply = comfy.utils.common_upscale(mask, image.shape[2], image.shape[1], "bilinear", "center").round() | |
| image = image * mask_apply.movedim(1, -1).repeat(1, 1, 1, image.shape[3]) | |
| extra_concat = [mask] | |
| return self.apply_controlnet(positive, negative, control_net, image, strength, start_percent, end_percent, vae=vae, extra_concat=extra_concat) | |
| NODE_CLASS_MAPPINGS = { | |
| "SetUnionControlNetType": SetUnionControlNetType, | |
| "ControlNetInpaintingAliMamaApply": ControlNetInpaintingAliMamaApply, | |
| } | |