> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# 이미지, 랜트, 마스크

이 데이터 유형을 다룰 때는 `torch.Tensor` 클래스에 대해 알아야 합니다.
자세한 문서는 [여기](https://pytorch.org/docs/stable/tensors.html)에서 확인할 수 있으며,\
Comfy에 필요한 핵심 개념에 대한 소개는 [여기](./tensors)에서 확인할 수 있습니다.

<Warning>노드의 출력이 단일 텐서인 경우, `(image)`가 아니라 `(image,)`를 반환해야 합니다.</Warning>

아래의 대부분의 개념은 [예제 코드 스니펫](./snippets)에서 설명되어 있습니다.

## 이미지

IMAGE는 `[B,H,W,C]` 형태의 `torch.Tensor`로, `C=3`입니다. 이미지를 저장하거나 불러올 때는 `PIL.Image` 형식으로 변환하거나 그 반대로 변환해야 합니다. 아래 코드 스니펫을 참고하세요! 일부 `pytorch` 연산에서는 계산 효율성을 위해 `[B,C,H,W]`, 즉 '채널 우선' 형식을 제공하거나 요구합니다. 주의하시기 바랍니다.

### PIL.Image 다루기

이미지를 불러오고 저장하려면 PIL을 사용하는 것이 좋습니다:

```python theme={null}
from PIL import Image, ImageOps
```

## 마스크

MASK는 `[B,H,W]` 형태의 `torch.Tensor`입니다.
많은 상황에서 마스크는 이진 값(0 또는 1)을 가지며, 특정 픽셀이 어떤 작업을 수행해야 하는지를 나타냅니다. 경우에 따라 0과 1 사이의 값을 사용해 마스크의 정도를 나타내기도 합니다(예를 들어, 투명도를 조정하거나 필터를 적용하거나 레이어를 합성할 때).

### 이미지 로드 노드에서 마스크 생성하기

`LoadImage` 노드는 이미지의 알파 채널(즉, 'RGBA'의 'A')을 사용해 마스크를 생성합니다.\
알파 채널의 값은 \[0,1] 범위로 정규화된 후(토치.float32) 반전됩니다.\
`LoadImage` 노드는 이미지를 로드할 때 항상 마스크 출력을 생성합니다. 많은 이미지(예를 들어 JPEG)에는 알파 채널이 없습니다. 이런 경우 `LoadImage`는 기본 마스크를 `[1, 64, 64]` 형태로 생성합니다.

### 마스크 형태 이해하기

`numpy`, `PIL` 등 여러 라이브러리에서는 단일 채널 이미지(마스크와 같은)를 보통 2D 배열로 표현하며, 형태는 `[H,W]`입니다.\
이는 채널 차원(`C`)이 암묵적으로 포함된다는 것을 의미하며, 따라서 IMAGE 유형과 달리 마스크의 배치는 `[B, H, W]` 세 차원만 갖습니다.\
종종 `B` 차원이 암묵적으로 축소되어 `[H,W]` 형태의 텐서를 만나게 되는 경우가 있습니다.

마스크를 사용하려면 종종 `unsqueeze`를 통해 `[B,H,W,C]` 형태로 맞춰야 합니다. 여기서 `C=1`입니다.\
`C` 차원을 확장하려면 `unsqueeze(-1)`을, `B` 차원을 확장하려면 `unsqueeze(0)`을 사용하세요.\
노드에서 마스크를 입력으로 받는다면, 항상 `mask.shape`의 길이를 확인하는 것이 좋습니다.

## 랜트

LATENT는 `dict`이며, 랜트 샘플은 키 `samples`로 참조되며, 형태는 `[B,C,H,W]`이고 `C=4`입니다.

<Tip> LATENT는 채널 우선이며, IMAGE는 채널 마지막입니다</Tip>
