diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a245c68a..d39729e6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ - control: controlnet with *init image same as control* uses the unit's processed image - control: multiple units on controlnet-union - control: t2i-adapter, controlnet-xs and controllite model lists follow the loaded model type + - control: live preview and interrupt for sd and sdxl controlnet without an init image ## Update for 2026-10-01 diff --git a/modules/processing_callbacks.py b/modules/processing_callbacks.py index 0f36e0c8f..fa65f581a 100644 --- a/modules/processing_callbacks.py +++ b/modules/processing_callbacks.py @@ -2,6 +2,7 @@ import os import time import torch import numpy as np +from PIL import Image from modules import shared, devices, processing_correction, timer, prompt_parser_diffusers from modules.logger import log from modules.attention import context as attention_context @@ -83,7 +84,7 @@ def diffusers_callback(pipe, step: int = 0, timestep: int = 0, kwargs: dict | No time.sleep(0.1) image = kwargs.get('image', None) - if image is not None: + if isinstance(image, Image.Image): # decoded preview; controlnet pipelines pass control tensors as image shared.state.current_image = image shared.state.current_latent = None shared.state.step() # increase step