Add ComfyUI wikified docs and youtube extracts; tidy raw→Topics
- 10_Wiki/Comfyui/: ComfyUI docs generated via /wikify - 00_Raw/_youtube/: /youtube extraction outputs - Move some 00_Raw originals into 10_Wiki/Topics_meeting; remove empty canvases and stray files Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
---
|
||||
id: working-with-torchtensor---comfyui
|
||||
title: "Working with torch.Tensor - ComfyUI"
|
||||
category: "10_Wiki/Topics"
|
||||
status: "draft"
|
||||
verification_status: "conceptual"
|
||||
canonical_id: ""
|
||||
aliases: []
|
||||
duplicate_of: ""
|
||||
source_trust_level: "B"
|
||||
confidence_score: 0.8
|
||||
created_at: 2026-05-20
|
||||
updated_at: 2026-05-20
|
||||
review_reason: ""
|
||||
merge_history: []
|
||||
tags: ["web", "wikify"]
|
||||
raw_sources: ["https://docs.comfy.org/custom-nodes/backend/tensors"]
|
||||
applied_in: []
|
||||
github_commit: ""
|
||||
---
|
||||
|
||||
# [[Working with torch.Tensor - ComfyUI]]
|
||||
|
||||
## 🎯 한 줄 통찰 (One-line insight)
|
||||
ComfyUI의 핵심 연산은 [[pytorch]]를 기반으로 하며, 이미지, Latent, Mask 데이터는 모두 [[torch.Tensor]] 형태로 내부적으로 처리됩니다.
|
||||
|
||||
## 🧠 핵심 개념 (Core concepts)
|
||||
* **[[torch.Tensor]]의 정의**: 벡터나 행렬을 임의의 차원으로 일반화한 수학적 구조체로, Rank(차원 수)와 Shape(크기)를 가집니다.
|
||||
* **텐서 조작(Tensor Manipulation)**: 차원을 축소하는 [[squeeze]], 차원을 확장하는 [[unsqueeze]], 그리고 데이터 구조를 재구성하는 [[reshape]] 기법이 포함됩니다.
|
||||
* **Elementwise Operations**: 텐서 간의 연산(+, -, *, /, ==)은 각 요소별로 독립적으로 적용됩니다.
|
||||
* **Tensor Truthiness**: 다중 요소를 가진 텐서는 Python 리스트와 달리 직접적인 Boolean 평가가 불가능하며, [[all()]] 또는 [[any()]] 메서드를 사용해야 합니다.
|
||||
|
||||
## 🧩 추출된 패턴 (Extracted patterns)
|
||||
* **차원 관리 전략**: 1의 크기를 가진 차원을 제거하거나(Squeezing) 삽입하는(Unsqueezing) 패턴을 통해 데이터 구조를 제어합니다.
|
||||
* **슬라이싱 관례**: `None`을 사용한 차원 삽입, `:`를 사용한 전체 범위 유지, `...`(Ellipsis)를 사용한 미지정 차원 처리 등의 표준화된 표기법을 따릅니다 Pol.
|
||||
* **연산 제약 조건**: 이항 연산 시 피연산자들은 동일한 Shape을 갖거나, 하나는 스칼라(Scalar)여야 한다는 규칙이 존재합니다.
|
||||
|
||||
## 📖 세부 내용 (Details)
|
||||
|
||||
### 1. Tensor의 구조와 ComfyUI에서의 활용
|
||||
* **기본 정의**: [[torch.Tensor]]는 벡터나 행렬을 임의의 차원으로 일반화한 것입니다.
|
||||
* **Rank**: 텐서가 가진 차원의 수 (예: 벡터는 Rank 1, 행렬은 Rank 2).
|
||||
* **Shape**: 각 차원의 크기를 나타냅니다.
|
||||
* **ComfyUI 이미지 데이터 구조**:
|
||||
* RGB 이미지는 기본적으로 `[H, W, 3]` 형태를 가질 수 있으나, ComfyUI에서는 배치(Batch) 차원을 포함합니다.
|
||||
* 최종 형태: `[B, H, W, C]` (B: Batch, H: Height, W: Width, C: Channels).
|
||||
|
||||
### 2. 차원 조작 및 변형
|
||||
* **Squeezing**: 크기가 1인 차원(collapsed dimension)을 제거하는 작업입니다.
|
||||
* **Unsqueezing**: 새로운 차원을 삽입하는 작업입니다.
|
||||
* **Reshaping**: 데이터 구조를 유지하며 다른 형태로 재표현하는 것으로, 하부 데이터 구조에 대한 주의가 필요합니다.
|
||||
|
||||
### 3. 주요 표기법 (Important Notation)
|
||||
* **`.shape` 속성**: `torch.Size`를 반환하며, 이는 튜플(tuple)의 서브클래스입니다.
|
||||
* **슬라이싱 도구**:
|
||||
* `None`: 슬라이스 내에서 크기가 1인 차원을 삽입할 때 사용합니다.
|
||||
* `:`: 해당 차원의 전체 범위를 유지합니다.
|
||||
* `...` (Ellipsis): 지정되지 않은 나머지 모든 차원을 나타냅니다.
|
||||
* **`-1` 파라미터**: Shape을 전달받는 메서드에서, 전체 데이터 크기를 기반으로 해당 차원의 크기를 자동 계산하도록 지정할 때 사용합니다.
|
||||
|
||||
### 4. 연산 및 논리값 (Operations & Truthiness)
|
||||
* **Elementwise Operations**: `+`, `-`, `*`, `/`, `==` 등의 연산은 요소별로 독립적으로 수행됩니다. 단, 피연산자의 Shape이 동일하거나 하나가 스칼라여야 합니다.
|
||||
* **Truthiness (논리값 판단)**:
|
||||
* 다중 요소를 가진 텐서는 Python의 기본 Boolean 평가 시 `RuntimeError`를 발생시킵니다(Ambiguous 오류).
|
||||
* 따라서 요소 전체의 논리값을 확인하려면 `.all()` 또는 `.any()`를 명시적으로 사용해야 합니다.
|
||||
|
||||
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
|
||||
* **주의사항**: 일부 커스텀 노드 작성자가 차원이 축소된(squeezed) 텐서를 반환하는 경우가 있으며, 이는 버그의 주요 원인이 될 수 있습니다.
|
||||
|
||||
## 🛠️ 적용 사례 (Applied in summary)
|
||||
* **이미지 처리**: `[B, H, W, 3]` 형태의 텐서 구조를 사용하여 배치 단위로 이미지를 처리합니다.
|
||||
* **코드 예시**:
|
||||
* `a = torch.Tensor((1,2))` $\rightarrow$ `a.shape` 결과: `torch.Size([2])` (본문 내 예시 기준)
|
||||
* `a[:, None].shape` $\rightarrow$ 차원 확장 사례.
|
||||
* `a.reshape((1, -1))` $\rightarrow$ 자동 크기 계산 활용 사례.
|
||||
|
||||
## ✅ 검증 상태 및 신뢰도
|
||||
- **상태:** draft
|
||||
- **검증 단계:** conceptual
|
||||
- **출처 신뢰도:** B (Primary Source — 웹사이트 본문 직접 추출)
|
||||
- **중복 검사 결과:** 신규 생성 (New discovery)
|
||||
|
||||
## 🔗 관련 문서 링크 (Related document links)
|
||||
* [[pytorch]]: ComfyUI의 핵심 수치 연산을 담당하는 라이브러리입니다.
|
||||
* [[torch.Tensor]]: 이미지, Latent, Mask를 표현하는 기본 데이터 구조입니다.
|
||||
* [[squeeze]], [[unsqueeze]], [[reshape]]: 텐서의 차원을 제어하는 주요 기법들입니다.
|
||||
* [[all()]] / [[any()]]: 텐서의 논리적 참/거짓을 판별하기 위해 필요한 메서드입니다.
|
||||
|
||||
## 📝 변경 이력 (Change history)
|
||||
- 2026-05-20: Astra /wikify 로 https://docs.comfy.org/custom-nodes/backend/tensors 본문에서 초안 생성.
|
||||
Reference in New Issue
Block a user