fix(comfyui): 4 ComfyUI integration gaps blocking 0.0.12 ship goals
#397 QwenImageLayered RGBA ref + multi-layer output:
- Generate stages an RGBA ref as a real PNG (not the RGB-only QFRAW01
blob) for QwenImageLayered, whose VAE encoder loads at channels=4 →
engine takes cv::imread(IMREAD_UNCHANGED); a raw QFRAW blob there
failed "Failed to load image: /dev/shm/*.qfraw".
- worker reads N RGBA layers via quantfunc_image_count/_channels/
_float_data (hasattr-guarded for older .so), emits layers_f32; node
_read_image splits [N,H,W,C] → IMAGE [N,H,W,3] + MASK [N,H,W].
- new nodes QuantFuncLayeredConfig (per-gen layer count) +
QuantFuncLayerViewer (web/qf_layer_viewer.js) + MASK output port.
#398 text_precision dropdown: add "bf16" (Klein-base text encoder is
BF16; node rejected it with HTTP 400 value_not_in_list).
#399 vae_precision dropdown: add "bf16" (same, Klein-base VAE).
#408 SVDQ staging VAE "post_quant_conv.bias not found":
- nunchaku_svdq: detect ZImage arch (was hardcoded QwenImage even for
ZImageTransformer2DModel → wrong VAE/TE/tokenizer config).
- only set vae_comfyui_alias for an actually ComfyUI-FLAT VAE; a
diffusers-native VAE (diffusion_pytorch_model.safetensors with
post_quant_conv.*) is read directly — aliasing it remapped
post_quant_conv.bias → conv2.bias → not found.
- bundle the per-arch text_encoder/transformer/scheduler configs the
staging path reads (parallel to the already-tracked vae_configs).
Engine .so (0.0.12) unchanged.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Y
yejianhui committed
049c5dc2ad4c001349a25e3e332d74840d6f0dd5
Parent: c46476d