76 lines
2.4 KiB
Markdown
76 lines
2.4 KiB
Markdown
|
|
# Documentation
|
|
- Class name: ImageApplyChannel
|
|
- Category: Art Venture/Utils
|
|
- Output node: False
|
|
|
|
ImageApplyChannel节点旨在通过将给定的通道数据应用到图像集合的特定颜色通道(红色、绿色、蓝色、Alpha)来修改它们。这一功能允许精确控制图像的颜色组成和透明度,从而实现自定义的图像处理和操作。
|
|
|
|
# Input types
|
|
## Required
|
|
- images
|
|
- 待修改的图像集合。这个参数至关重要,因为它决定了将要进行通道修改的基础图像。
|
|
- Comfy dtype: IMAGE
|
|
- Python dtype: torch.Tensor
|
|
- channel_data
|
|
- 要应用到每个图像指定通道的数据。这个参数直接影响输出结果,通过改变所有图像中指定通道的值来实现。
|
|
- Comfy dtype: MASK
|
|
- Python dtype: torch.Tensor
|
|
- channel
|
|
- 指定要在图像中修改的颜色通道(红色、绿色、蓝色、Alpha)。这个选择决定了将要改变的图像方面。
|
|
- Comfy dtype: COMBO[STRING]
|
|
- Python dtype: str
|
|
|
|
# Output types
|
|
- image
|
|
- 应用了指定通道数据的修改后图像。这个输出反映了对原始图像指定通道所做的更改。
|
|
- Comfy dtype: IMAGE
|
|
- Python dtype: torch.Tensor
|
|
|
|
|
|
## Usage tips
|
|
- Infra type: `GPU`
|
|
- Common nodes: unknown
|
|
|
|
|
|
## Source code
|
|
```python
|
|
class UtilImageApplyChannel:
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {
|
|
"required": {
|
|
"images": ("IMAGE",),
|
|
"channel_data": ("MASK",),
|
|
"channel": (["R", "G", "B", "A"],),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("IMAGE",)
|
|
CATEGORY = "Art Venture/Utils"
|
|
FUNCTION = "image_apply_channel"
|
|
|
|
def image_apply_channel(self, images: torch.Tensor, channel_data: torch.Tensor, channel):
|
|
merged_images = []
|
|
|
|
for image in images:
|
|
image = image.cpu().clone()
|
|
|
|
if channel == "A":
|
|
if image.shape[2] < 4:
|
|
image = torch.cat([image, torch.ones((image.shape[0], image.shape[1], 1))], dim=2)
|
|
|
|
image[:, :, 3] = channel_data
|
|
elif channel == "R":
|
|
image[:, :, 0] = channel_data
|
|
elif channel == "G":
|
|
image[:, :, 1] = channel_data
|
|
else:
|
|
image[:, :, 2] = channel_data
|
|
|
|
merged_images.append(image)
|
|
|
|
return (torch.stack(merged_images),)
|
|
|
|
```
|