fix image str decode and update requirements

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-09-29 10:56:03 -04:00
parent 5d1bfc2bfc
commit 93bdca0670
5 changed files with 35 additions and 16 deletions
+2 -1
View File
@@ -1,6 +1,6 @@
# Change Log for SD.Next
## Update for 2025-09-28
## Update for 2025-09-29
- **Models**
- [WAN 2.2 14B VACE](https://huggingface.co/alibaba-pai/Wan2.2-VACE-Fun-A14B)
@@ -83,6 +83,7 @@
- benchmark: remove forced sampler from system info benchmark
- xyz-grid: fix xyz grid with random seeds
- reference: fix download for sd15/sdxl reference models
- fix checks in init/mask image decode
## Update for 2025-09-15
+1 -1
View File
@@ -608,7 +608,7 @@ def check_diffusers():
if args.skip_git:
install('diffusers')
return
sha = '1448b035859dd57bbb565239dcdd79a025a85422' # diffusers commit hash
sha = '64a5187d96f9376c7cf5123db810f2d2da79d7d0' # diffusers commit hash
pkg = pkg_resources.working_set.by_key.get('diffusers', None)
minor = int(pkg.version.split('.')[1] if pkg is not None else -1)
cur = opts.get('diffusers_version', '') if minor > -1 else ''
+30 -8
View File
@@ -280,13 +280,38 @@ def validate_sample(tensor):
return cast
def decode_images(image):
if isinstance(image, list):
decoded = []
for i, img in enumerate(image):
if isinstance(img, str):
try:
decoded.append(helpers.decode_base64_to_image(img, quiet=True))
except Exception as e:
shared.log.error(f'Decode image[{i}]: {e}')
elif isinstance(img, Image.Image):
decoded.append(img)
else:
shared.log.error(f'Decode image[{i}]: {type(img)} unknown type')
return decoded
elif isinstance(image, str):
try:
return helpers.decode_base64_to_image(image, quiet=True)
except Exception as e:
shared.log.error(f'Decode image: {e}')
elif isinstance(image, Image.Image):
return image
else:
shared.log.error(f'Decode image: {type(image)} unknown type')
return None
def resize_init_images(p):
if getattr(p, 'image', None) is not None and getattr(p, 'init_images', None) is None:
p.init_images = [p.image]
if getattr(p, 'init_images', None) is not None and len(p.init_images) > 0:
if isinstance(p.init_images[0], str):
p.init_images = [helpers.decode_base64_to_image(i, quiet=True) for i in p.init_images]
p.init_images = decode_images(p.init_images)
vae_scale_factor = sd_vae.get_vae_scale_factor()
tgt_width, tgt_height = vae_scale_factor * math.ceil(p.init_images[0].width / vae_scale_factor), vae_scale_factor * math.ceil(p.init_images[0].height / vae_scale_factor)
if p.init_images[0].size != (tgt_width, tgt_height):
@@ -296,16 +321,13 @@ def resize_init_images(p):
p.width = tgt_width
sd_hijack_hypertile.hypertile_set(p)
if getattr(p, 'mask', None) is not None and p.mask is not None and p.mask.size != (tgt_width, tgt_height):
if isinstance(p.mask[0], str):
p.mask = [helpers.decode_base64_to_image(i, quiet=True) for i in p.mask]
p.mask = decode_images(p.mask)
p.mask = images.resize_image(1, p.mask, tgt_width, tgt_height, upscaler_name=None)
if getattr(p, 'init_mask', None) is not None and p.init_mask is not None and p.init_mask.size != (tgt_width, tgt_height):
if isinstance(p.init_mask[0], str):
p.init_mask = [helpers.decode_base64_to_image(i, quiet=True) for i in p.init_mask]
p.init_mask = decode_images(p.init_mask)
p.init_mask = images.resize_image(1, p.init_mask, tgt_width, tgt_height, upscaler_name=None)
if getattr(p, 'mask_for_overlay', None) is not None and p.mask_for_overlay is not None and p.mask_for_overlay.size != (tgt_width, tgt_height):
if isinstance(p.mask_for_overlay, str):
p.mask_for_overlay = helpers.decode_base64_to_image(p.mask_for_overlay, quiet=True)
p.mask_for_overlay = decode_images(p.mask_for_overlay)
p.mask_for_overlay = images.resize_image(1, p.mask_for_overlay, tgt_width, tgt_height, upscaler_name=None)
return tgt_width, tgt_height
return p.width, p.height
+1 -5
View File
@@ -44,7 +44,7 @@ tqdm==4.67.1
accelerate==1.10.1
opencv-contrib-python-headless==4.11.0.86
einops==0.8.1
huggingface_hub==0.35.0
huggingface_hub==0.35.3
numexpr==2.11.0
numpy==2.1.2
pandas==2.3.1
@@ -69,7 +69,3 @@ seam-carving
ruff
pylint
pre-commit
# block
torch!=2.5.0
torchvision!=0.20.0