Comfy 데이터 타입
COMBO
-
INPUT_TYPES에 추가적인 파라미터 없음 -
Python 데이터 타입:
list[str]로 정의되며, 출력 값은str입니다.
COMBO는 INPUT_TYPES에서 str로 지정되지 않고 드롭다운 목록의 옵션에 해당하는 list[str]로 지정되며, 기본적으로 첫 번째 옵션이 선택됩니다.
COMBO 입력은 종종 런타임에 동적으로 생성됩니다. 예를 들어 내장된 CheckpointLoaderSimple 노드에서는 다음과 같이 찾을 수 있습니다:
프리미티브 및 리루트
프리미티브 및 리루트 노드는 클라이언트 측에만 존재합니다. 이들은 본질적인 데이터 타입을 갖지 않지만, 연결될 때 연결된 입력이나 출력의 데이터 타입을 따릅니다(그래서* 입력에 연결할 수 없는 것입니다…).
Python 데이터 타입
INT
-
INPUT_TYPES에 추가적인 파라미터:-
default는 필수입니다. -
min과max는 선택적입니다.
-
-
Python 데이터 타입
int
FLOAT
-
INPUT_TYPES에 추가적인 파라미터:-
default는 필수입니다. -
min,max,step는 선택적입니다.
-
-
Python 데이터 타입
float
STRING
-
INPUT_TYPES에 추가적인 파라미터:default는 필수입니다.
-
Python 데이터 타입
str
BOOLEAN
-
INPUT_TYPES에 추가적인 파라미터:default는 필수입니다.
-
Python 데이터 타입
bool
텐서 데이터 타입
IMAGE
-
INPUT_TYPES에 추가적인 파라미터 없음 -
Python 데이터 타입
torch.Tensor이며, shape는 [B,H,W,C]입니다.
B개의 이미지, 높이 H, 너비 W, 채널 수 C(일반적으로 RGB의 경우 C=3)의 배치입니다.
LATENT
-
INPUT_TYPES에 추가적인 파라미터 없음 -
Python 데이터 타입
dict이며, shape는 [B,C,H,W]인torch.Tensor를 포함합니다.
dict에는 samples라는 키가 있으며, 이는 shape [B,C,H,W]인 torch.Tensor로, B개의 잠재 변수 배치를 나타내며, 채널 수는 C(일반적으로 기존 안정적 확산 모델의 경우 C=4), 높이 H, 너비 W입니다.
높이와 너비는 해당 이미지 크기의 1/8입니다(이는 Empty Latent Image 노드에서 설정한 값입니다).
dict의 다른 항목에는 잠재 마스크 같은 것이 포함됩니다.
MASK
-
INPUT_TYPES에 추가적인 파라미터 없음 -
Python 데이터 타입
torch.Tensor이며, shape는 [H,W] 또는 [B,C,H,W]입니다.
AUDIO
-
INPUT_TYPES에 추가적인 파라미터 없음 -
Python 데이터 타입
dict이며, shape는 [B, C, T]인torch.Tensor와 샘플 속도를 포함합니다.
dict에는 waveform이라는 키가 있으며, 이는 shape [B, C, T]인 torch.Tensor로, B개의 오디오 샘플 배치를 나타내며, 채널 수는 C(C=2 스테레오, C=1 모노), 시간 단계 수는 T입니다(즉, 오디오 샘플의 개수).
dict에는 또 다른 키인 sample_rate가 있으며, 이는 오디오의 샘플링 속도를 나타냅니다.
맞춤형 샘플링 데이터 타입
Noise
NOISE 데이터 타입은 노이즈의 소스를 나타냅니다(실제 노이즈 자체가 아님). 이는 generate_noise(self, input_latent:Tensor) -> Tensor 시그니처를 가진 노이즈 생성 메서드와 seed:Optional[int] 속성을 제공하는 모든 Python 객체로 표현될 수 있습니다.
노이즈를 추가할 때, 잠재 변수가 이 메서드에 전달되며, 이는 동일한 shape의 노이즈를 포함한 Tensor를 반환해야 합니다.
노이즈 혼합 예시 참조
Sampler
SAMPLER 데이터 타입은 샘플러를 나타내며, 이는 sample 메서드를 제공하는 Python 객체로 표현됩니다. 안정적 확산 샘플링은 이 가이드의 범위를 벗어납니다; 이 코드 부분을 자세히 살펴보려면 comfy/samplers.py를 참고하세요.
Sigmas
SIGMAS 데이터 타입은 스케줄러가 생성한 샘플링 과정의 각 단계 전후의 시그마 값을 나타냅니다. 이는 길이가 steps+1인 1차원 텐서로, 각 요소는 해당 단계 전에 존재할 것으로 예상되는 노이즈를 나타내며, 마지막 값은 최종 단계 이후의 노이즈를 나타냅니다.
20단계와 1의 디노이즈를 가진 normal 스케줄러는 SDXL 모델에서 다음과 같은 값을 생성합니다:
Guider
GUIDER는 ‘안내’된 프롬프트나 기타 조건부 형태에 의해 ‘유도’된 디노이징 과정의 일반화입니다. Comfy에서 가이더는 callable Python 객체로 표현되며, __call__(*args, **kwargs) 메서드를 제공하고 이 메서드는 샘플에 의해 호출됩니다.
__call__ 메서드는 (args[0]에) 노이즈가 있는 잠재 변수 배치(tensor [B,C,H,W])를 받아들여, 동일한 shape의 노이즈 예측값(Tensor`)을 반환합니다.
모델 데이터 타입
안정적 확산 모델을 위한 더 많은 기술적 데이터 타입이 있습니다. 가장 중요한 것은MODEL, CLIP, VAE, 그리고 CONDITIONING입니다. 이들과 함께 작업하는 것은 (당분간) 이 가이드의 범위를 벗어납니다!
추가 파라미터
아래는 입력 정의의 ‘추가 옵션’ 부분에서 사용할 수 있는 공식 지원 키들의 목록입니다.| 키 | 설명 |
|---|---|
default | 위젯의 기본값 |
min | 숫자(FLOAT 또는 INT)의 최소값 |
max | 숫자(FLOAT 또는 INT)의 최대값 |
step | 위젯을 증가하거나 감소시키는 양 |
label_on | bool이 True일 때 UI에 사용할 라벨(BOOL) |
label_off | bool이 False일 때 UI에 사용할 라벨(BOOL) |
defaultInput | 지원되는 위젯 대신 입력 소켓을 기본값으로 사용합니다 |
forceInput | defaultInput와 동시에 위젯으로 변환하는 것을 허용하지 않습니다 |
multiline | 다중행 텍스트 박스(STRING)를 사용합니다 |
placeholder | 비어 있을 때 UI에 표시할 자리표시 텍스트(STRING) |
dynamicPrompts | 프론트엔드가 동적 프롬프트를 평가하도록 만듭니다 |
lazy | 이 입력이 지연 평가를 사용한다고 선언합니다 |
rawLink | 링크가 존재할 때, 평가된 값을 받는 대신 링크를 받게 됩니다(예: ["nodeId", <outputIndex>]). 주로 노드가 노드 확장을 사용할 때 유용합니다. |