|
import os |
|
|
|
from iopaint.schema import InpaintRequest |
|
|
|
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1" |
|
|
|
import torch |
|
|
|
from iopaint.model_manager import ModelManager |
|
|
|
|
|
def test_model_switch(): |
|
model = ModelManager( |
|
name="runwayml/stable-diffusion-inpainting", |
|
enable_controlnet=True, |
|
controlnet_method="lllyasviel/control_v11p_sd15_canny", |
|
device=torch.device("mps"), |
|
disable_nsfw=True, |
|
sd_cpu_textencoder=True, |
|
cpu_offload=False, |
|
) |
|
|
|
model.switch("lama") |
|
|
|
|
|
def test_controlnet_switch_onoff(caplog): |
|
name = "runwayml/stable-diffusion-inpainting" |
|
model = ModelManager( |
|
name=name, |
|
enable_controlnet=True, |
|
controlnet_method="lllyasviel/control_v11p_sd15_canny", |
|
device=torch.device("mps"), |
|
disable_nsfw=True, |
|
sd_cpu_textencoder=True, |
|
cpu_offload=False, |
|
) |
|
|
|
model.switch_controlnet_method( |
|
InpaintRequest( |
|
name=name, |
|
enable_controlnet=False, |
|
) |
|
) |
|
|
|
assert "Disable controlnet" in caplog.text |
|
|
|
|
|
def test_switch_controlnet_method(caplog): |
|
name = "runwayml/stable-diffusion-inpainting" |
|
old_method = "lllyasviel/control_v11p_sd15_canny" |
|
new_method = "lllyasviel/control_v11p_sd15_openpose" |
|
model = ModelManager( |
|
name=name, |
|
enable_controlnet=True, |
|
controlnet_method=old_method, |
|
device=torch.device("mps"), |
|
disable_nsfw=True, |
|
sd_cpu_textencoder=True, |
|
cpu_offload=False, |
|
) |
|
|
|
model.switch_controlnet_method( |
|
InpaintRequest( |
|
name=name, |
|
enable_controlnet=True, |
|
controlnet_method=new_method, |
|
) |
|
) |
|
|
|
assert f"Switch Controlnet method from {old_method} to {new_method}" in caplog.text |
|
|