You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ERNIE-Image with the Heun scheduler refuses every partial denoise. Any img2img, inpaint or Canvas pass with a denoising strength below 1 fails before the first step:
ValueError: FlowMatchHeunDiscreteScheduler does not accept an explicit sigma schedule, so it cannot honor denoising_start/denoising_end. Use the euler or lcm scheduler for partial denoising.
The check is in invokeai/backend/ernie_image/denoise.py (around line 88). Euler and LCM pass the clipped sigmas through set_timesteps(sigmas=...). FlowMatchHeunDiscreteScheduler.set_timesteps takes only a step count, so the node refuses any schedule that does not run from 1 to 0.
Generate offers Heun for ERNIE-Image (scheduler_set="flow" in invokeai/backend/architectures/defs/ernie_image.py), so a user can select it and only finds out when the Canvas pass fails.
What you expected to happen
Heun starts at denoising_start and stops at denoising_end, as it does for FLUX.1 and Z-Image since #9851.
How to reproduce the problem
Select an ERNIE-Image model and the Heun scheduler.
Run img2img or a Canvas pass with denoising strength below 1.
The queue item fails with the ValueError above.
Without a model, the backend call reproduces it directly:
FLUX.1 and FLUX.2 already drive Heun on a clipped schedule with set_heun_timesteps_from_sigmas in invokeai/backend/flux/schedulers.py. ERNIE-Image could use the same helper. One difference to account for: ERNIE passes raw timesteps and lets the scheduler apply its own shift inside set_timesteps, while the helper expects the sigmas the model runs on.
Activity