ZML_噪波脚本
Inject extra noise mid-sampling — but only inside ZML's own samplers
- 上一个脚本
- 脚本
A node that doesn't output pixels - it outputs a script that tells a sampler what to do partway through. ZML_NoiseScriptNode says: "when the sampling progress hits this point, inject a burst of extra Gaussian noise." It's one of a family the author built (dynamic CFG, blur/sharpen, brightness/contrast - all sharing the same ZML_SCRIPT type), inspired by SMZ's GPU-noise sampler tricks.
The idea is genuinely useful. Sampling doesn't have to be a flat ride from noise to image; you can deliberately rattle it mid-course to break out of a composition, reintroduce texture at a late stage, or add grain in a targeted band of the denoise schedule. Think of it as a poor-man's scheduled noise injection - you pick when and how much.
The inputs
- 触发时机 (0–1, default 0.6) - when it fires, as a fraction of sampling progress. 0.0 is the start, 1.0 is the end. The tooltip says it plainly: "at what percent of progress to trigger." 0.6 means just past the middle, when the coarse structure is set but fine detail is still being drawn.
- 噪波强度 (0–10, default 0.4) - how much Gaussian noise to inject. This is a strength, not a probability: 0.4 is a visible but tasteful burst; 10 is chaos.
- 上一个脚本 (optional,
ZML_SCRIPT) - chain scripts. Connect the previous script node here and both get merged, sorted by timing. This is how you build a multi-effect schedule (noise at 0.3, then a sharpen at 0.8) from individual single-purpose nodes.
One output, 脚本 (ZML_SCRIPT), which plugs into a ZML sampler.
The trap: it only works with ZML's samplers
Read the output type again: ZML_SCRIPT. That's a custom type that stock ComfyUI doesn't know anything about. If you try to feed this into the built-in KSampler, you'll get a type mismatch - this node is only meaningful in the ZML sampling family (the "采样器相关" category), where the author's custom samplers accept a script input and execute it mid-denoise. The README's 2025.12 update introduced the whole script series together, so if you're not using ZML's sampler nodes, this one has nothing to plug into.
That's the thing to keep in mind before you get excited about the feature: it's a package deal. You adopt the script family and the ZML sampler together, or not at all.
Install
One node in ComfyUI-ZML-Image:
cd ComfyUI/custom_nodes
git clone https://github.com/zml-w/ComfyUI-ZML-Image
# restart ComfyUI
or ComfyUI Manager → search "ComfyUI-ZML-Image". No special dependencies. Chinese-first UI - 触发时机 is "trigger timing," 噪波强度 is "noise strength," 上一个脚本 is "previous script" - translation patch at https://github.com/zml-w/ZZZ_ZML_English_Patch.
Honest guidance: this is the least battle-tested corner of the pack. The script nodes are newer and niche, and the author borrowed the noise approach from SMZ with the expectation that sampler-adjacent tricks need tuning per model. Start with 噪波强度 near 0.3–0.5 and 触发时机 around 0.5–0.7, and treat anything above 2 as "probably looks broken on purpose."
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| 触发时机 | FLOAT | 0.60–1 | 在进度的百分之多少时触发 (0.0=开始, 1.0=结束) |
| 噪波强度 | FLOAT | 0.400–10 | 注入的额外高斯噪波强度 (0-10) |
| 上一个脚本opt | ZML_SCRIPT | 连接上一个脚本节点以串联多个操作 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| 脚本 | ZML_SCRIPT | — |