Mikubill / sd-webui-controlnet

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

[Bug]: Multi-ControlNet XYZ plot support is broken #1271

Open SLAPaper opened 1 year ago

SLAPaper commented 1 year ago

Is there an existing issue for this?

What happened?

Now the ControlNet XYZ options have force type checking, which brakes the support of list notation style merged in #407

Steps to reproduce the problem

  1. Go to XYZ plot
  2. Select ControlNet Enable
  3. It is forced to enter true or false, not the list notation

What should have happened?

Should be able to enter the list notation

Commit where the problem happens

webui: v1.2.1-3-g6c996583 controlnet: 356fd3c0 (Sun May 14 02:47:11 2023)

What browsers do you use to access the UI ?

Microsoft Edge

Command Line Arguments

--skip-version-check --opt-sdp-attention --api --theme=light

Console logs

No, It's block by the frontend

Additional information

No response

KimMatt commented 1 year ago

Also experiencing this

lllyasviel commented 1 year ago

I am not familiar with this part. contribution is welcome and help is needed

KimMatt commented 1 year ago

It seems in general multi controlnet is not supported for xyz plotter, no?

SLAPaper commented 1 year ago

In my testing, remove the choices from "Enabled" is enough to work

see commit: https://github.com/SLAPaper/sd-webui-controlnet/commit/d93c7599ae7ff652740bd4946e792283ad16e343

huchenlei commented 1 year ago

I think this part of the code needs more documentation / guidance. It is such a hidden feature that no-body will instantly know how it works without looking into code / original PR.

poipoi300 commented 1 year ago

I think the current list notation in X/Y/Z plots for multi-controlnet should be dropped in favor of a system more like "CNIDX:VAL".

First, the current implementation does not seem to work fully. I don't know how any of this works on the inside, but it seems that new axis entries reset controlnet values given in a prior axis, even when the new axis has "None" where the prior axis had a value specified. Only one axis at a time seems to be handled. This results in the same image sequence being repeated per row/column(Z) and that currently you have to have all permutations on a single axis.

Second, it's way too complicated for something that feels unintended to me. Why change more than 1 controlnet value per axis? This is not what 3-axis plots like these are good at visualizing. I mean it's neat that it's possible, but the extra syntax required to make it work is not worth it imo.

Finally, the original author seems absent and has never given examples of inputs/outputs for his system. This suggests to me that it has never been fully functional on more than one axis. It's probably salvageable keeping this system, but I don't think it's worth it.