17 Commits
Author SHA1 Message Date
WildAi 609385892a chore: drop imax-flux example workflow 2026-10-09 21:53:01 +03:00
WildAi 28bfaca275 docs: imax v2.18.0 + workflow 2026-10-06 20:34:36 +03:00
WildAi fb00378c2d update 2026-10-06 17:49:08 +03:00
WildAi 0784f0ec44 feat: Qwen-Image-2.1 cascade RGBA VAE channels + 2.1 empty latent node
Qwen-Image 2.1's VAE is a Wan-2.2-layout VAE with a 16x spatial downscale
and FOUR output channels (comfy/sd.py:841-847 — output_channels read from
the checkpoint tensor decoder.head.2.weight, pad_channel_value 1.0 for
opaque alpha). VAE.decode therefore returns [B, H, W, 4].

Every cascade node in this pack speaks the 3-channel convention, and the
damage is concrete rather than aesthetic: PixelRush's and FreeScale's
layout probes match on exactly 3 channels, so a 4-channel decode slips
through them channels-LAST into a channels-FIRST pipeline; HiFlow's
_sharpen probes shape[-1] == 3 for the same reason.

src/vae_channels.py adds the two pure helpers that normalize the boundary
— strip_alpha_channel on decode, pad_to_vae_channels on encode — wired
into all three adapters. Both gate on getattr(vae, "output_channels", 3),
so the other six architectures take a byte-identical path (pinned). The
encode side deliberately mirrors ComfyUI's own vae_encode_crop_pixels
(pad with pad_channel_value / truncate / leave alone when unset), which
makes it idempotent with core: it can never change what a real VAE
receives, it exists so three adapters share one decision. Alpha is not
preserved end to end — every consumer here is RGB — but the drop is
logged once per session, naming the node, rather than happening silently.

New node EmptyQwenImage21LatentImage: core ships no 2.1 t2i empty latent
(EmptyQwenImageLayeredLatentImage is the layered/edit latent — 16ch, //8,
5-D — and EmptyLatentImage is 4ch at //8), so the pack provides the 64ch
//16 counterpart TextEncodeQwenImage21 only emits as a by-product of
encoding a prompt. Width/height are first-class inputs, snapped to
multiples of 16 with a graph-time validate_inputs message.

Also shipped: example_workflows/DyPE-Qwen21-workflow.json (loaders ->
DyPE_FLUX with model_type qwen21 -> TextEncodeQwenImage21 ->
EmptyQwenImage21LatentImage -> KSampler -> decode), TextEncodeQwenImage21
and QwenImage21Cache added to the workflow validator's core allowlist,
and the structure guard's node-class/module lists extended (their two
tests were named "8_classes"/"8_node_extension" and are now named for
what they assert, since the literal count was the only thing keeping them
from breaking on every node addition).

Tests: tests/test_vae_channels.py (pure helpers, CPU, no ComfyUI) and
tests/test_cascade_qwen21.py (the three adapters end to end against a
fake RGBA VAE, the latent node's shape/validation/round-trip, plus pins
that read ComfyUI's real sd.py and latent_formats.py when COMFYUI_ROOT is
set — the 16x/RGBA/latent_dim==2 facts the whole design rests on).
2026-10-05 12:51:37 +03:00
WildAi fb8fef8910 chore: remove HiFlow FLUX example workflow + its test 2026-09-17 22:31:17 +03:00
WildAi 04a97d91a9 feat(hiflow): scale_factor replaces target_resolution
User: absolute pixel target unintuitive and vague. New param is
relative to the input latent: 2 = double each side, 1 = unchanged,
0.5 = half. Semantics:

- scale applies PER SIDE (old absolute form over-upscaled the short
  side of non-square inputs — both sides doubled until the smaller
  hit the pixel target)
- up >1 keeps paper 2x-stage quantization: 1.2-2.0 -> one 2x stage,
  4 -> two; final may land above exact scale
- scale <1 (0.25-1): single guided refinement stage at the smaller
  size; reference trajectory bicubic-resized down, walk unchanged
- range [0.25, 8] validated at node + core

_stage_latent_sizes rewritten (nearest-snap helper split out);
cascade + node params renamed; workflow JSON updated; 158 hiflow
tests (new: downscale stage, per-side non-square, range, scale-2
single stage); suite 1310 passed / 4 skipped; ruff F,E9 green;
v2.13.0.
2026-09-04 01:18:19 +03:00
WildAi 279b5f0a19 feat(hiflow): register node, docs, workflow, v2.10.0
Step 8 of plan 2026-09-03. Workflow uses core nodes only;
version-sync, workflow-claims and code-quality guards pass.
2026-09-03 11:32:30 +03:00
WildAi 33368d674d chore: add DyPE SDXL example workflow
User-contributed example workflow for DyPE on SDXL models, with
preview images (png/jpg). Uses the core ImageCompare node.
2026-09-02 23:05:12 +03:00
WildAi 900ceda564 fix: resolve review issues W1-W9; suite green (1107 passed) 2026-08-25 16:09:05 +03:00
WildAi 1bcb040dec feat: add SEGA (Spectral-Energy Guided Attention) node 2026-08-05 18:50:23 +03:00
WildAi 2b1d23320a feat: Anima support
Add Anima model support and fix state pollution in patch utilities.
2026-08-04 12:30:21 +03:00
WildAi 0507f557ab v2.3.0. zit fix 2025-12-09 15:51:30 +03:00
WildAi 97ef4057d7 v2.2.0. zit examples 2025-12-03 15:43:41 +03:00
WildAi 7dbea3b189 v2.1.0. Qwen examples 2025-11-29 00:45:34 +03:00
WildAi 208bf96780 v2.1.0. refactor. Examples 2025-11-28 23:37:12 +03:00
WildAi f6f20d6b47 v2.0.0 examples 2025-11-26 20:30:52 +03:00
WildAi c60e4f1937 init 2025-10-28 00:36:04 +03:00