From 8565fde6f5ecb00a41c4630d5e4483567b263ccc Mon Sep 17 00:00:00 2001 From: WildAi <2853742+wildminder@users.noreply.github.com> Date: Wed, 2 Sep 2026 14:01:32 +0300 Subject: [PATCH] pixelrush: README + changelog for 2.9.0 corrected-theory release Document the refiner_model input (paper SDXL + SDXL-Turbo setup), noise_injection modes, sigma=24 default and the gaussian_kernel_size removal (migration note for old workflows), plus the 2.9.0 changelog: corrected SLERP, adapter space fix (SDXL 7.7x under-noising root cause), generic DDIM, analytic Gaussian mask, empty-negative CFG fix. Version bumped 2.8.3 -> 2.9.0. Full repo suite green (1146 passed). --- README.md | 15 ++++++++++++++- pyproject.toml | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ec16a43..4763897 100644 --- a/README.md +++ b/README.md @@ -233,13 +233,19 @@ Cascade-based refinement node. Generates at native resolution first, then progre | Parameter | Description | |:---|:---| | `num_cascade_stages` | Number of cascade stages — each doubles the resolution. | -| `noise_lambda` | Noise injection strength per cascade stage. | +| `refiner_model` | **Optional** separate refiner model (paper setup: SDXL base + SDXL-Turbo). When not connected, the base model refines too. | +| `noise_lambda` | Noise injection strength per cascade stage (paper default 0.95 — result sits close to the random vector by the paper's stated convention). | +| `noise_injection` | `slerp` (paper default) or `additive` (legacy pre-2.9 behavior, kept for workflows tuned against it). | | `overlap` | Overlap between adjacent patches (blends seams). | +| `gaussian_sigma` | Analytic Gaussian feather sigma (paper default 24; rule of thumb: σ ≈ patch_size / 5). | | `patch_h` / `patch_w` | Latent patch size (~native spatial size keeps VRAM flat). | > [!NOTE] > PixelRush calls the diffusion model directly (not through ComfyUI's sampler), performing its own CFG and prediction-type handling for EPS, flow, V-prediction and X0 models. +> [!IMPORTANT] +> **2.9 migration notes:** the noise injection now uses the paper's SLERP by default (set `noise_injection` to `additive` for the previous behavior); `gaussian_sigma` default moved 8 → 24 and its range extends to 128; the `gaussian_kernel_size` input was removed (the mask is now the paper's analytic Gaussian — old workflows simply ignore the stale value). +

⟔ ▲ ⟓

@@ -309,6 +315,13 @@ Restart ComfyUI. No further dependency installation is required. ## ▓ Changelog +### v2.9.0 — 2026-09-02 +- **PixelRush realigned with the corrected theory** (plan 2026-09-02): standard raw-vector SLERP (with collinear lerp fallback) for the noise injection — the paper's `slerp(eps_pred, eps_random, λ)` is now the default, with the 2026-08-13 additive injection kept as an opt-in (`noise_injection`). +- **Fixed the VAE/model space mixing** in the forward/reverse steps: adapters now convert via `process_latent_in/out`, so the model sees noise at the scale its timestep claims. For SDXL the previous code under-noised 7.7× — the root cause behind the "compressed look" that the additive hack had papered over. +- Generic DDIM transitions (`ddim_deterministic_step` between arbitrary timesteps, `predict_x0_from_epsilon`); analytic Gaussian feather mask (σ default 24, `gaussian_kernel_size` input removed). +- **Optional `refiner_model` input** — use a separate distilled refiner (e.g. SDXL-Turbo) as in the paper; the base model drives the partial inversion. +- **Bug fixes:** empty-negative conditioning no longer amplifies eps by `cfg_scale` (CFG is skipped); `alpha_k` NameError with partially-provided adapters; empty positive now raises a clear error. + ### v2.8.3 — 2026-08-31 - **Qwen2D VAE support disabled by default.** User reports showed that with the Qwen2D VAE interception installed, loading certain non-Qwen2D (video-style) VAE checkpoints crashed with a size-mismatch error whose traceback passed through this pack's delegation frame — breaking workflows that never used the Qwen2D VAE. The patch now installs only when the environment variable `DYPE_ENABLE_QWEN2D_VAE=1` is set. If you relied on the Qwen2D VAE (Anzhc/Qwen2D-VAE checkpoint with FreeScale/PixelRush on Krea-2/Qwen/Anima), set that variable in your ComfyUI environment to restore the previous behavior. diff --git a/pyproject.toml b/pyproject.toml index aea96c5..c32db4a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "ComfyUI-DyPE" description = "DyPE & SEGA & PixelRush & HRDiT. Artifact-free 4K+ image generation. Flux, Nunchaku, Qwen, Z-Image, Anima, Krea-2, SDXL, SD1.5" -version = "2.8.3" +version = "2.9.0" requires-python = ">=3.10" license = {file = "LICENSE"} dependencies = ["torch", "numpy"]