Commit Graph
575 Commits
Author SHA1 Message Date
ussoewwin cd3ff69a14 fix(cache): read precompiled cache as bytes, not mmap (Windows page error)
load_file() is mmap-based; a cache file with a readable header but damaged
data region crashes the whole process with a Windows fatal 'page error'
(uncatchable). Read the file as plain bytes and parse with safetensors.torch.load
so the same damage surfaces as OSError -> existing except returns {} -> caller
falls back to re-fuse. Verified: broken cache returns empty dict (no crash),
good cache still loads fully.
2026-08-26 11:40:30 +09:00
ussoewwin 6efac00e9f docs: update header title to ComfyUI-Nunchaku QwenImage/ZImageTurboLoraStack&Multi ControlNet Loader v2.5.7 2026-08-17 01:20:58 +09:00
ussoewwin 9a15c294b6 chore: bump version to 2.5.7 and update description in pyproject.toml 2026-08-17 01:18:56 +09:00
ussoewwin e040e9a7c3 docs: add v2.5.7 technical documentation (Legacy node removal) EN + ZH 2026-08-17 01:14:24 +09:00
ussoewwin 7ae12b723f Update changelog and version to v2.5.7 2026-08-17 01:08:43 +09:00
ussoewwin 88ed1a336a Remove NunchakuQwenImageLoraStack (Legacy) from registered nodes and documentation 2026-08-17 01:06:13 +09:00
ussoewwin a3c2ed160c docs: update latest release reference to v2.5.6 2026-08-13 16:36:41 +09:00
ussoewwin 6cc8259301 chore: bump version to 2.5.6 v2.5.6 2026-08-13 16:21:41 +09:00
ussoewwin b3ce2bcfa0 docs: add v2.5.6 technical documentation (AMD/ROCm compatibility) EN + ZH
Four-part technical write-up of the AMD/ROCm compatibility release:
purpose, modified files, full code, and detailed explanation with the
virtual AMD test suite results (50/50 checks).
2026-08-13 16:16:16 +09:00
ussoewwin ed78766b83 docs: add v2.5.6 changelog entry (AMD/ROCm compatibility) with release note link 2026-08-13 16:08:05 +09:00
ussoewwin 21f49a8dc5 docs: mention Krea2 depth/openpose ControlNet LoRA loader in README intro 2026-08-13 16:03:08 +09:00
ussoewwin a484710742 docs: add AMD/ROCm compatibility section to README (EN + ZH)
Documents the automatic behavior on systems where nunchaku is unavailable:
nunchaku-dependent nodes are not registered, while the Krea2 ControlNet
nodes (Krea2ControlNetLoraLoader, NunchakuQwenImageDiffsynthControlnet)
remain fully functional.
2026-08-13 15:59:19 +09:00
ussoewwin 6f1c2ff762 fix: gate hardcoded nunchaku display names on _NUNCHAKU_AVAILABLE
NODE_DISPLAY_NAME_MAPPINGS still contained the two hardcoded
NunchakuQwenImageLoraLoader/Stack entries on AMD systems, so display names
referenced nodes that were not registered. Gate them on _NUNCHAKU_AVAILABLE
(mirrors reference repo 6608421 pattern).
2026-08-13 15:52:36 +09:00
ussoewwin 80582bb944 feat: disable nunchaku nodes on AMD/ROCm (no nunchaku) and keep Krea2/ControlNet available
Mirrors the AMD compatibility approach from ComfyUI-NunchakuFluxLoraStacker
(PR #6 + follow-up): probe nunchaku availability, gate registration of all
nunchaku-dependent nodes (QwenImage/Z-ImageTurbo LoRA), and guard runtime
nunchaku imports so they raise a clear RuntimeError instead of ImportError.
The nunchaku-independent Krea2 ControlNet LoRA loader and the ControlNet node
stay registered on every platform.
2026-08-13 15:48:30 +09:00
ussoewwin cb2ce574a8 Update README.md 2026-08-12 20:41:59 +09:00
ussoewwin 836b488fa0 chore: bump __version__ to 2.5.5 v2.5.5 2026-08-12 20:38:01 +09:00
ussoewwin 7798e3e72c chore: update pyproject description with Krea2 ControlNet loader and bump version to 2.5.5 2026-08-12 20:37:12 +09:00
ussoewwin 36aa90a6f6 docs: update latest release reference to v2.5.5 and archive release body 2026-08-12 20:29:55 +09:00
ussoewwin c44184e348 docs: add language switcher to v2.5.5 release note and add Chinese version 2026-08-12 20:25:26 +09:00
ussoewwin aaec404cf9 docs: translate v2.5.5 technical documentation to English 2026-08-12 19:01:54 +09:00
ussoewwin 6791edf402 docs: add v2.5.5 technical documentation for Krea2 openpose control LoRA 2026-08-12 18:13:35 +09:00
ussoewwin 5797d06875 docs: add v2.5.5 changelog entry for Krea2 openpose control LoRA support (EN/ZH) 2026-08-12 18:00:37 +09:00
ussoewwin 67f84e6c65 docs: expand Krea2 control docs with dedicated Depth and OpenPose sections (EN/ZH) 2026-08-12 17:58:17 +09:00
ussoewwin 533495fa42 docs(zh): document Krea2 openpose control LoRA support in Chinese README 2026-08-12 17:56:47 +09:00
ussoewwin 999bac6397 docs: document Krea2 openpose control LoRA support in README 2026-08-12 17:54:30 +09:00
ussoewwin 07ef7ec07e feat(krea2): isolated kv_cache reference mode for openpose control LoRA
Replicates the krea2_controlnet_pose.json reference workflow inside this node
(ostris nodes are no longer required):

- _krea2_make_ref_kv_forward: replaces diffusion_model.forward so reference
  latents run in isolated kv_cache mode — one t=0 ref-only pass precomputes
  every block's K/V (refs attend only to each other), reused as extra
  attention keys each denoising step. This matches the ai-toolkit kv_cache
  training convention the openpose control LoRA was trained with
- New helpers: _krea2_patchify, _krea2_ref_pack (RoPE axis-0 index i+1),
  _krea2_ref_attn_kv (K/V capture/inject), _krea2_ref_block_forward,
  _krea2_ref_precompute_kv, _krea2_forward_with_cached_refs,
  _krea2_ref_fingerprint (content-keyed cache)
- New optional node input use_kv_cache (default True); when False the stock
  joint-mode ref path is used instead
- extra_conds ref injection retained: skipped when conditioning already
  carries reference_latents (TextEncodeKrea2OstrisEdit compat), so the VLM
  vision path can still be combined without double injection
- depth / zimage / nunchaku_qwenimage / qwenimage_standard routes unchanged
2026-08-12 16:58:05 +09:00
ussoewwin 042fe16229 fix(krea2): inject openpose control image as native Krea2 reference latent
The openpose control LoRA is a Kontext-style conditioning LoRA (blocks +
txtfusion, no expanded first projection). The previous openpose path only
applied the LoRA patches and never injected the pose image, so generation had
no pose control at all.

- _apply_krea2_openpose_control now VAE-encodes the control image (fit ~1MP,
  snapped /16, ai-toolkit convention) and injects it as a reference latent
  via patched extra_conds / extra_conds_shapes with
  ref_latents_method=index_timestep_zero (native Krea2 ref pathway)
- Injection is skipped when the conditioning already carries
  reference_latents (e.g. TextEncodeKrea2OstrisEdit), so the VLM vision path
  wins and no double injection occurs
- depth / zimage / nunchaku_qwenimage / qwenimage_standard routes unchanged
2026-08-12 16:51:42 +09:00
ussoewwin b7cbf1176d feat: add Krea2 openpose control LoRA support (depth/openpose exclusive routing)
- Add _classify_krea2_control_type() to detect depth vs openpose by first.weight presence
- Add _apply_krea2_openpose_control() for pure block LoRA (no first projection, no control latent)
- Route txtfusion.* keys in _krea2_target_key for layerwise/refiner blocks
- Split krea2 route into depth (unchanged) / openpose (new) exclusive branches
- No changes to zimage/nunchaku/qwenimage_standard routes or loader node
2026-08-12 16:35:09 +09:00
ussoewwin 75f99be161 Fix formatting of license statement in README 2026-07-29 05:11:11 +09:00
ussoewwin 5882889f69 \ chore: delete unused Z-Image-Turbo V2 node and JS\ v2.5.4 2026-07-27 03:47:12 +09:00
ussoewwin 409e24059b docs: add v2.5.4 release notes (EN body and Chinese mirror) 2026-07-27 03:41:37 +09:00
ussoewwin e2aa5e06a3 chore: bump version to 2.5.4 and add changelog entry 2026-07-27 03:40:08 +09:00
ussoewwin b4fd22a6e5 Remove NunchakuZImageTurboLoraStackV2 from docs and node registration 2026-07-27 03:36:34 +09:00
ussoewwin a172bc533f Update README.md 2026-07-24 02:31:21 +09:00
ussoewwin bfde8d508f docs: trim v2.5.3 release notes to adopted changes only 2026-07-23 17:13:51 +09:00
ussoewwin 7ffa94c049 docs: fix v2.5.3 release notes cross-reference numbering 2026-07-23 17:10:33 +09:00
ussoewwin 9c56ec1794 docs: add v2.5.3 release notes (EN body and Chinese mirror) 2026-07-23 17:06:46 +09:00
ussoewwin 74552a8796 chore: bump version to 2.5.3 and add changelog entry v2.5.3 2026-07-23 17:00:02 +09:00
ussoewwin 38b6491ad2 docs: translate PR #52 merge plan to English 2026-07-23 16:53:38 +09:00
ussoewwin b683f8a2bd fix(lora): restore first-LoRA state-dict cache and fix v2 IS_CHANGED
Post-merge additional fixes for PR #52 (per md/PR52_MERGE_PLAN.md):

- compose_loras_v2: restore _cached_first_lora_state_dict so the first
  LoRA state dict loaded during section-3 debug inspection is reused in
  the section-4 main loop. Without this the first LoRA is read from disk
  twice whenever the precompiled cache is disabled (default).
- qwenimage_v2.py IS_CHANGED: drop the `model` arg (ComfyUI never passes
  MODEL inputs to IS_CHANGED; the TypeError -> NaN path forced re-compose
  every run) and remove str(model) from the hash (object repr changes
  every run, which also forced constant re-execution).
2026-07-23 14:25:17 +09:00
ussoewwin 2e1539030c Merge PR #52: GPU compile acceleration, atomic LoRA cache, bypass-path fix
Adopted from PR #52 (author: Sniper199999, head 601c79d):
- _has_ever_had_loras bypass-path corruption fix (wrappers/qwenimage.py)
- IS_CHANGED model-arg removal: qwenimage.py, qwenimage_v3.py (v2 follows separately)
- LoRA precompiled cache: nunchaku_code/lora_cache.py (atomic writes, mtime invalidation)
- GPU pack/unpack optimization in nunchaku_code/lora_qwen.py
- set_lora_strength_v2 base_rank guard for AWQ modulation slots
- save_precompiled_lora widget handling in dynamic UI JS

Conflict resolutions (kept main v2.5.2):
- __init__.py: keep 2.5.2, Krea2/Diffsynth registrations; TE V2 loader registration rejected
- patches/nunchaku_patch.py: keep rotary compat + suppress_torch_preimport_warning
- nodes/lora/qwenimage_v3.py: synthesized PR functional changes with main's 33ba82e log unification
- .gitignore: restored to v2.5.2 (kept .cursor/, backups/, scripts/ entries)
- nodes/te_offload/ excluded (Adoption 4 rejected: referenced loader classes do not exist)
2026-07-23 14:25:17 +09:00
ussoewwin 930fd82157 Update README.md 2026-07-21 12:47:43 +09:00
ussoewwin f82ccd18d3 docs: point v2.5.2 changelog link to Chinese release notes page 2026-07-21 12:41:59 +09:00
ussoewwin be4378b8e3 chore: remove leftover temp GitHub notes file 2026-07-21 12:34:16 +09:00
ussoewwin b1f03cf9a0 docs: add v2.5.2 release notes with EN switcher body and Chinese mirror 2026-07-21 12:24:19 +09:00
ussoewwin c8087e09ec docs: add Chinese language switchers and update latest release links to v2.5.2 2026-07-21 12:16:35 +09:00
ussoewwin 4d24732f0d release: v2.5.2 suppress cosmetic torch pre-import warning v2.5.2 2026-07-21 12:06:01 +09:00
ussoewwin 3136c83563 docs: explain torch pre-import warning suppression fix 2026-07-21 11:57:37 +09:00
ussoewwin 9e30661bf0 fix: suppress cosmetic Torch already imported warning in prestartup 2026-07-21 11:50:29 +09:00
ussoewwin 0458640134 docs: replace third-party owner wording with component in public docs 2026-07-17 08:20:53 +09:00