2.3 KiB
2.3 KiB
Documentation
- Class name: InjectNoise
- Category: latent/noise
- Output node: False
- Repo Ref: https://github.com/BlenderNeko/ComfyUI_Noise.git
InjectNoise节点旨在向一组潜在表示中引入噪声,从而模拟噪声对生成过程的影响。它的作用是通过控制的变异性增强数据,这可以提高生成输出的鲁棒性和多样性。
Input types
Required
- latents
- latents参数至关重要,因为它包含将要进行噪声注入的原始潜在表示。它直接影响噪声增强过程的结果。
- Comfy dtype: LATENT
- Python dtype: Dict[str, torch.Tensor]
- strength
- strength参数决定了要注入到latents中的噪声的强度。它对于控制引入数据的变异程度至关重要。
- Comfy dtype: FLOAT
- Python dtype: float
- noise
- 可选的noise参数提供了要应用于latents的噪声源。它很重要,因为它允许定制噪声特性。
- Comfy dtype: LATENT
- Python dtype: Dict[str, torch.Tensor]
- mask
- 当提供mask参数时,它指定latents的哪些区域应该受到噪声的影响。这对于针对性的噪声应用很重要。
- Comfy dtype: MASK
- Python dtype: torch.Tensor
Output types
- latents
- 输出的latents是已经注入了噪声的修改后的潜在表示,准备进行进一步的处理或生成。
- Comfy dtype: LATENT
- Python dtype: Dict[str, torch.Tensor]
Usage tips
- Infra type: CPU
Source code
class InjectNoise:
@classmethod
def INPUT_TYPES(s):
return {'required': {'latents': ('LATENT',), 'strength': ('FLOAT', {'default': 1.0, 'min': 0.0, 'max': 200.0, 'step': 0.01})}, 'optional': {'noise': ('LATENT',), 'mask': ('MASK',)}}
RETURN_TYPES = ('LATENT',)
FUNCTION = 'inject_noise'
CATEGORY = 'latent/noise'
def inject_noise(self, latents, strength, noise=None, mask=None):
s = latents.copy()
if noise is None:
return (s,)
if latents['samples'].shape != noise['samples'].shape:
print('warning, shapes in InjectNoise not the same, ignoring')
return (s,)
noised = s['samples'].clone() + noise['samples'].clone() * strength
if mask is not None:
mask = prepare_mask(mask, noised.shape)
noised = mask * noised + (1 - mask) * latents['samples']
s['samples'] = noised
return (s,)