Files
2024-05-15 08:09:49 +08:00

63 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Documentation
- Class name: ControlNetApply
- Category: conditioning
- Output node: False
- Repo Ref: https://github.com/comfyanonymous/ComfyUI
ControlNetApply 类中的 'apply_controlnet' 方法旨在将控制信号集成到神经网络的处理流程中。它接收条件数据、控制网络、图像和一个强度参数,以调节控制网络对图像的影响。该方法的目的是使用控制网络的指导增强图像,确保输出的条件反映了基于指定强度的预期调整。
# Input types
## Required
- conditioning
- ‘conditioning’参数对于节点的操作至关重要,因为它为控制网络提供了应用其修改的初始状态或上下文。这是一个关键的输入,它直接影响图像处理的结果。
- Comfy dtype: CONDITIONING
- Python dtype: torch.Tensor
- control_net
- ‘control_net’参数定义了将用于指导对图像进行修改的网络。它是一个必需的输入,在形成节点处理的最终输出中起着核心作用。
- Comfy dtype: CONTROL_NET
- Python dtype: torch.nn.Module
- image
- ‘image’参数是控制网络修改的对象。它代表了将根据提供的控制信号进行增强或更改的数据。
- Comfy dtype: IMAGE
- Python dtype: torch.Tensor
## Optional
- strength
- ‘strength’参数调整控制网络对图像影响的强度。它是一个可选输入,允许微调应用于图像的修改程度。
- Comfy dtype: FLOAT
- Python dtype: float
# Output types
- conditioning
- 输出 'conditioning' 表示在应用控制网络的影响后的修改状态。它很重要,因为它携带了对原始图像数据所做的最终调整。
- Comfy dtype: CONDITIONING
- Python dtype: torch.Tensor
# Usage tips
- Infra type: GPU
# Source code
```
class ControlNetApply:
@classmethod
def INPUT_TYPES(s):
return {'required': {'conditioning': ('CONDITIONING',), 'control_net': ('CONTROL_NET',), 'image': ('IMAGE',), 'strength': ('FLOAT', {'default': 1.0, 'min': 0.0, 'max': 10.0, 'step': 0.01})}}
RETURN_TYPES = ('CONDITIONING',)
FUNCTION = 'apply_controlnet'
CATEGORY = 'conditioning'
def apply_controlnet(self, conditioning, control_net, image, strength):
if strength == 0:
return (conditioning,)
c = []
control_hint = image.movedim(-1, 1)
for t in conditioning:
n = [t[0], t[1].copy()]
c_net = control_net.copy().set_cond_hint(control_hint, strength)
if 'control' in t[1]:
c_net.set_previous_controlnet(t[1]['control'])
n[1]['control'] = c_net
n[1]['control_apply_to_uncond'] = True
c.append(n)
return (c,)
```