ClownGuide_StyleNorm_Advanced_HiDream
Scattersort with per-component targeting
- guide
- mask
- weights
- guides
- guides
This is the deep-control version of RES4LYF's style transfer for HiDream. Where the basic AdaIN and scattersort guides give you a handful of dials, StyleNorm Advanced opens up the model's internals - dozens of toggles for exactly which parts of each transformer block the style operation touches. It's a lot. Most people should treat it as "expert mode" and only come here when the simpler guides can't reach a specific layer they need.
The core operation is scattersort (the default) or AdaIN. Scattersort is the author's own style mode, built to transfer a reference's look while keeping source color and lighting from bleeding into the result. What "Advanced" adds is granularity: instead of applying the style normalization across whole blocks, you can enable it on individual sub-components - feed-forward layers, mixture-of-experts gates, image and text attention paths, per-projection norms, and so on. That's a scalpel for people who know HiDream's architecture and want to shape where the style lands.
How it works
Same guide framework as the rest of the pack: it builds a GUIDES bundle for the sampler's guides input and steers denoising toward your reference latent. The difference is the sheer number of boolean switches, each turning the style normalization on for one specific piece of the network. There's also a noise_mode (smart by default, plus direct, update, recon, bonanza) that changes how the styled signal is reconciled with the ongoing denoise. You still set an overall weight, weight_scheduler, and step window on top.
The inputs and outputs that matter
You will not flip most of the toggles. The load-bearing controls:
guide(LATENT, optional) - the style reference.mode(enum:scattersort,AdaIN; defaultscattersort) - the style operation. Scattersort for fidelity-preserving transfer, AdaIN for plain statistic matching.weight(FLOAT, default1) - overall strength.noise_mode(enum, defaultsmart) - how the style is blended into sampling;smartis the sane default.double_blocks/single_blocks(STRING, defaultall) - which blocks participate.- The long list of
ff_*,moe_*,double_img_*,single_img_*,attn_*,proj_outbooleans - per-component targeting, all off by default. Enable deliberately. weight_scheduler,start_step/end_step,mask- the shared controls.
Output is a guides (GUIDES) bundle for the sampler.
How to install it
ComfyUI Manager: search RES4LYF, install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/ClownsharkBatwing/RES4LYF/, pip install -r requirements.txt in your venv (portable ComfyUI: embedded python's pip), restart, hard-refresh with F5. This node is HiDream-specific; have a HiDream checkpoint loaded, since style transfer works best on HiDream or Chroma per the docs. Nested sampler menu: rgthree-comfy with "Auto Nest Subdirectories" on.
Common issues
The trap is the toggle wall. With this many per-component switches and near-zero official documentation on what each one does to the image, it's very easy to enable a combination that produces artifacts or just noise, then have no idea which switch did it. The discipline is boring and mandatory: start from the defaults (which is essentially plain scattersort across all blocks), enable one component group at a time, fixed seed, and note what changed. If you find yourself flipping switches at random, stop and go back to the basic scattersort or AdaIN guide - for most style transfer, those are enough, and this node's extra reach is only worth it when you're chasing a specific, identifiable failure in where the style is landing.
Two more. noise_mode is not cosmetic - bonanza and recon behave very differently from smart, so change it only when you understand why. And the pack-wide scheduler caveat holds: bong_tangent ignores the workflow's shift, so if weight_scheduler acts up, try beta57 or constant.
Inputs (60)
| Name | Type | Default | Description |
|---|---|---|---|
| weight | FLOAT | 1.00-100–100 | Set the strength of the guide by multiplying all other weights by this value. |
| weight_scheduler | COMBO | constant | 12 options: constant, simple, sgm_uniform, karras, exponential, ddim_uniform, +6 |
| double_blocks | STRING | all | — |
| double_weights | STRING | 1.0 | — |
| single_blocks | STRING | all | — |
| single_weights | STRING | 1.0 | — |
| mode | COMBO | scattersort | 2 options: scattersort, AdaIN |
| noise_mode | COMBO | smart | 5 options: direct, update, smart, recon, bonanza |
| ff_1 | BOOLEAN | false | — |
| ff_1_silu | BOOLEAN | false | — |
| ff_3 | BOOLEAN | false | — |
| ff_13 | BOOLEAN | false | — |
| ff_2 | BOOLEAN | false | — |
| moe_gate | BOOLEAN | false | — |
| topk_weight | BOOLEAN | false | — |
| moe_ff_1 | BOOLEAN | false | — |
| moe_ff_1_silu | BOOLEAN | false | — |
| moe_ff_3 | BOOLEAN | false | — |
| moe_ff_13 | BOOLEAN | false | — |
| moe_ff_2 | BOOLEAN | false | — |
| moe_sum | BOOLEAN | false | — |
| moe_out | BOOLEAN | false | — |
| double_img_io | BOOLEAN | false | — |
| double_img_norm0 | BOOLEAN | false | — |
| double_img_attn | BOOLEAN | false | — |
| double_img_attn_gated | BOOLEAN | false | — |
| double_img | BOOLEAN | false | — |
| double_img_norm1 | BOOLEAN | false | — |
| double_img_ff_i | BOOLEAN | false | — |
| double_txt_io | BOOLEAN | false | — |
| double_txt_norm0 | BOOLEAN | false | — |
| double_txt_attn | BOOLEAN | false | — |
| double_txt_attn_gated | BOOLEAN | false | — |
| double_txt | BOOLEAN | false | — |
| double_txt_norm1 | BOOLEAN | false | — |
| double_txt_ff_t | BOOLEAN | false | — |
| single_img_io | BOOLEAN | false | — |
| single_img_norm0 | BOOLEAN | false | — |
| single_img_attn | BOOLEAN | false | — |
| single_img_attn_gated | BOOLEAN | false | — |
| single_img | BOOLEAN | false | — |
| single_img_norm1 | BOOLEAN | false | — |
| single_img_ff_i | BOOLEAN | false | — |
| attn_img_q_norm | BOOLEAN | false | — |
| attn_img_k_norm | BOOLEAN | false | — |
| attn_img_v_norm | BOOLEAN | false | — |
| attn_txt_q_norm | BOOLEAN | false | — |
| attn_txt_k_norm | BOOLEAN | false | — |
| attn_txt_v_norm | BOOLEAN | false | — |
| attn_img_double | BOOLEAN | false | — |
| attn_txt_double | BOOLEAN | false | — |
| attn_img_single | BOOLEAN | false | — |
| proj_out | BOOLEAN | false | — |
| start_step | INT | 00–10000 | — |
| end_step | INT | 15-1–10000 | — |
| invert_mask | BOOLEAN | false | — |
| guideopt | LATENT | — | |
| maskopt | MASK | — | |
| weightsopt | SIGMAS | — | |
| guidesopt | GUIDES | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| guides | GUIDES | — |