ComfyUI Extension
hy_omniweaving_comfyui_unofficial
Custom-node extraction lane for HY-OmniWeaving support on top of stock ComfyUI. (Description by CC)
Shiba-2-shiba/hy_omniweaving_comfyui_unofficial
Nodes—
On cloudLocal install
Stars1
Updated4 months ago
Readme
hy-omniweaving-comfyui
Custom-node extraction lane for HY-OmniWeaving support on top of stock ComfyUI.
Scope
- dedicated dual text-encoder loader for the OmniWeaving-tuned Qwen2.5-VL checkpoint plus ByT5
- dedicated VAE path for OmniWeaving-style
AutoencoderKLConv3Dcheckpoints - dedicated Redux-backed vision encode path for local SigLIP image encoder + Redux image embedder checkpoints
i2v/t2vworkflow support- HY-OmniWeaving-oriented text encoding and conditioning
- optional think modes:
legacy_rewrite,merge_hidden - deepstack / setclip compatibility
- Omni-style image preparation and i2v semantic-image roundtrip
Boundary
- Keep sampling / scheduler / CFG / steps / model loading / VRAM management on stock ComfyUI nodes.
- Keep only OmniWeaving-specific text semantics, image preparation, task conditioning, and compatibility hooks in this package.
- Set
HY_OMNIWEAVING_DEBUG=1only when you need loader / text-encoder / mask / UNet diagnostics.
Current status
i2vandt2vboth run end-to-end in the current validated workflow.- The earlier
i2vcrashes from invalidref_latentpayloads and text-mask-length mismatches are gone in the current path. HY OmniWeaving Text Encoder Loadermirrors the intended dual-loader flow: OmniWeaving Qwen + ByT5 as one CLIP output.HY OmniWeaving VAE Loaderdetects OmniWeaving-styledecoder.conv_in.conv.weightlayouts and instantiates the localAutoencoderKLConv3D-equivalent model from tracked config.HY OmniWeaving Image Prepremains the blessed image-entry point for parity-sensitivei2v/reference2vstyle runs.HY OmniWeaving I2V Semantic Imagesreproduces the VAE roundtrip used to derive the semantic first frame for text-side multimodal input.HY OmniWeaving Redux Vision Encodepopulatesmm_projectedand exposes the local SigLIP + Redux path throughclip_vision_output.
Required inference files
Place the required model files under your own ComfyUI installation.
The exact ComfyUI root directory differs by environment, so the paths below use
<ComfyUI root> as a placeholder.
Expected local layout:
<ComfyUI root>/models/diffusion_models/hy_omniweaving_hunyuanvideo15_transformer_fp8_e4m3fn_patched.safetensors<ComfyUI root>/models/text_encoders/qwen_2.5_vl_7b_finetuned_model.safetensors<ComfyUI root>/models/text_encoders/byt5_small_glyphxl_fp16.safetensors<ComfyUI root>/models/clip_vision/image_encoder.safetensors<ComfyUI root>/models/clip_vision/image_embedder.safetensors<ComfyUI root>/models/vae/hunyuanvideo15_vae_fp32.safetensors
Reference download mapping:
https://huggingface.co/Shiba-2-shiba/HY-OmniWeaving_HunyuanVideo_1.5_FP8_Patched/resolve/main/hy_omniweaving_hunyuanvideo15_transformer_fp8_e4m3fn_patched.safetensors?download=true
-> <ComfyUI root>/models/diffusion_models/hy_omniweaving_hunyuanvideo15_transformer_fp8_e4m3fn_patched.safetensors
https://huggingface.co/tencent/HY-OmniWeaving/resolve/main/text_encoder/ckpt/text_encoder_model.safetensors?download=true
-> <ComfyUI root>/models/text_encoders/qwen_2.5_vl_7b_finetuned_model.safetensors
https://huggingface.co/Comfy-Org/HunyuanVideo_1.5_repackaged/resolve/main/split_files/text_encoders/byt5_small_glyphxl_fp16.safetensors?download=true
-> <ComfyUI root>/models/text_encoders/byt5_small_glyphxl_fp16.safetensors
https://huggingface.co/Runware/Flex-Redux/resolve/main/image_encoder/model.safetensors?download=true
-> <ComfyUI root>/models/clip_vision/image_encoder.safetensors
https://huggingface.co/Runware/Flex-Redux/resolve/main/image_embedder/diffusion_pytorch_model.safetensors?download=true
-> <ComfyUI root>/models/clip_vision/image_embedder.safetensors
https://huggingface.co/vafipas663/HY-OmniWeaving_repackaged/resolve/main/split_files/vae/hunyuanvideo15_vae_fp32.safetensors?download=true
-> <ComfyUI root>/models/vae/hunyuanvideo15_vae_fp32.safetensors
Notes:
- The filenames above match the names used in the currently validated workflow.
- The text-encoder loader expects the OmniWeaving-tuned Qwen checkpoint plus
the ByT5 checkpoint to both be present under
models/text_encoders. - The Redux vision node expects both
image_encoder.safetensorsandimage_embedder.safetensorsundermodels/clip_vision. - If your local filenames differ, ComfyUI can still list them, but the validated workflow and project notes assume the filenames shown above.
Runtime patch status
- deepstack
mm_inis attached loader-side after model load all_stack_text_statesis injected through instance-localextra_conds- text-encoder deepstack / setclip support is applied per loaded clip instance
- early-block deepstack injection is attached through a per-model
DIFFUSION_MODELwrapper setcliptext-mask handling now works in the current validatedi2vpath:- the integrated text encoder still returns no
attention_mask - the runtime patch reconstructs it from the processed Qwen branch
- the final mask is expanded for
clip_vision_outputprefix tokens - oversized expanded masks are trimmed back to the active text length before
txt_in
- the integrated text encoder still returns no
- ByT5 prefix expansion is supported in the final mask path, but the latest
validated
i2vlogs still showconditioning_byt5small_shape=Nonebecause no quoted-text ByT5 route was active in that run
Deepstack note
- The currently tested checkpoints are no longer showing the earlier
mm_in.linear_2 == 0situation. - Recent debug logs show non-zero
source_linear2_norm,attached_linear2_norm, andprojected_norm. - In practice, the connector path is now numerically active in the tested run.
- Remaining divergence from the original runtime should currently be treated first as prompting / branch-content / implementation-style issues, not as proof that deepstack is inactive.
Think-mode notes
legacy_rewrite- closest to public-repo behavior
- rewrites the prompt and re-encodes it once
- currently the safer path when public-repo-style behavior matters more than hidden-state experimentation
merge_hidden- keeps the original prompt branch
- encodes the AR-generated continuation as the auxiliary branch
- with
think_keep_tokens=0, keeps the full generated branch by default - when an explicit cap is used, the retained segment is taken from the front of the generated branch, not the tail
- remains a research path focused on motion gain vs prompt drift tradeoffs
Current limitations
merge_hiddenis still the main quality-risk area:- the AR branch can over-describe static appearance or background
- it can still weaken prompt fidelity even though the runtime is now stable
- exact processor/tokenization parity with the original repo is still not claimed
- the latest validated
i2vlogs do not show the earliercond_tokensvsdeepstack_tokenswarning, but crop/setclip parity should still be treated as a refinement target - ByT5 prefix behavior is now instrumented in the final mask path, but a real
run with active
conditioning_byt5smallstill needs explicit validation
Recommended blessed paths
-
i2v- reference image
HY OmniWeaving Image PrepHY OmniWeaving I2V Semantic ImagesHY OmniWeaving Redux Vision EncodeHY OmniWeaving Text EncodeHY OmniWeaving Conditioning- stock ComfyUI sampler / scheduler / CFG
-
t2vHY OmniWeaving Text Encodewithtask=t2vHY OmniWeaving Conditioningwithtask=t2v- stock ComfyUI sampler / scheduler / CFG
Project notes
Detailed notes now live under doc/:
Debugging notes
- In the current validated
i2vpath, text-side multimodal input still prefers explicitsemantic_imageswhen they are connected, even if Redux-backedclip_vision_outputis also present. mm_projectedbeingNoneis no longer expected in the Redux-backed path, but it can still appear in fallback / legacy CLIP-Vision routes.unet unexpected: ['mm_in...']is still a diagnostic signal only; the stock loader ignoresmm_in.*and the custom loader re-attaches it.- If you want to confirm the current mask path, inspect:
attention_mask reconstructed ... source=qwen_branchtext encode final attention_mask expansion ...txt_in mask alignment ... effective_mask_shape=...
- If you want to confirm that deepstack is active, inspect:
unet loader detected mm_in tensors ... source_linear2_norm=...mm_in source_vs_attach ... attached_linear2_norm=...diffusion wrapper fired ... projected_norm=...