Mikubill / sd-webui-controlnet

WebUI extension for ControlNet
GNU General Public License v3.0
16.41k stars 1.9k forks source link

[Bug]: args.py "accepts_multiple_inputs" function returns true for "ip-adapter_sd15" and "ip-adapter_sdxl" but not "ip-adapter_clip_g" and "ip-adapter_clip_h" #2934

Closed tyDiffusion closed 1 month ago

tyDiffusion commented 1 month ago

Is there an existing issue for this?

What happened?

As per title, the "accepts_multiple_inputs" function returns true for the aliases of the clip preprocessors, but not the clip preprocessor names themselves.

Steps to reproduce the problem

Add multiple input images in IP-adapter and specify preprocessor as "ip-adapter_clip_g" in API, and generation will fail with an assertion that the unit doesn't accept multiple inputs

What should have happened?

Multiple inputs should be accepted when specifying "ip-adapter_clip_g/h" as preprocessors in API

Commit where the problem happens

Latest

What browsers do you use to access the UI ?

No response

Command Line Arguments

N/A

List of enabled extensions

N/A

Console logs

N/A

Additional information

Change function in args.py to following to fix error:

@property
def accepts_multiple_inputs(self) -> bool:
    """This unit can accept multiple input images."""
    return self.module in (
        "ip-adapter-auto",
        "ip-adapter_clip_h",
        "ip-adapter_clip_g",
        "ip-adapter_clip_sdxl",
        "ip-adapter_clip_sdxl_plus_vith",
        "ip-adapter_clip_sd15",
        "ip-adapter_face_id",
        "ip-adapter_face_id_plus",
        "ip-adapter_pulid",
        "instant_id_face_embedding",
    )