The current implementation conflict with the original extension of ControlNet, as reported by @mykeehu, here.
This is caused by the same argument defined in preload.py in the extension.
def preload(parser):
parser.add_argument("--controlnet-dir", type=str, help="Path to directory with ControlNet models", default=None)
parser.add_argument("--no-half-controlnet", action='store_true', help="do not switch the ControlNet models to 16-bit floats (only needed without --no-half)", default=None)
I'm trying to fix this bug, and open this issue for further discussion if there is any.