--- id: images-latents-and-masks---comfyui title: "Images, Latents, and Masks - ComtyUI" 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/images_and_masks"] applied_in: [] github_commit: "" --- # [[Images, Latents, and Masks - ComfyUI]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) ComfyUI λ°±μ—”λ“œ κ°œλ°œμ„ μœ„ν•œ 핡심 데이터 νƒ€μž…μΈ [[IMAGE]], [[MASK]], [[LATENT]]의 ꡬ쑰적 차이와 [[torch.Tensor]] μ‘°μž‘λ²•μ— λŒ€ν•œ 기술 λͺ…μ„Έ. ## 🧠 핡심 κ°œλ… (Core concepts) - **[[IMAGE]] ꡬ쑰**: $[B, H, W, C]$ ν˜•νƒœλ₯Ό κ°€μ§€λ©° $C=3$인 채널 λ§ˆμ§€λ§‰(channel last) λ°©μ‹μ˜ [[torch.Tensor]] 데이터 νƒ€μž…. - **[[MASK]] ꡬ쑰**: $[B, H, W]$ ν˜•νƒœλ₯Ό κ°€μ§€λ©°, 0 λ˜λŠ” 1의 값을 톡해 νŠΉμ • μ—°μ‚° λ²”μœ„λ₯Ό μ§€μ •ν•˜λŠ” 데이터 νƒ€μž…. - **[[LATENT]] ꡬ쑰**: `samples` 킀에 $[B, C, H, W]$ ($C=4$) ν˜•νƒœμ˜ 데이터λ₯Ό λ‹΄κ³  μžˆλŠ” [[dict]] νƒ€μž…. - **데이터 λ³€ν™˜**: [[PIL.Image]]와 [[torch.Tensor]] κ°„μ˜ 포맷 μ „ν™˜ 및 채널 μˆœμ„œ(channel first vs last) κ΄€λ¦¬μ˜ μ€‘μš”μ„±. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **차원 ν™•μž₯ μ „λž΅**: [[MASK]] μ‚¬μš© μ‹œ $[B, H, W, C]$ ν˜•νƒœλ₯Ό λ§žμΆ”κΈ° μœ„ν•΄ `unsqueeze(-1)`(C 차원) 및 `unsqueeze(0)`(B 차원)을 μ‚¬μš©ν•˜λŠ” νŒ¨ν„΄. - **데이터 μ •κ·œν™”**: [[LoadImage]] λ…Έλ“œμ—μ„œ μ•ŒνŒŒ 채널을 ν™œμš©ν•˜μ—¬ [[MASK]]λ₯Ό 생성할 λ•Œ $[0, 1]$ λ²”μœ„λ‘œ μ •κ·œν™”ν•˜κ³  λ°˜μ „μ‹œν‚€λŠ” ν”„λ‘œμ„ΈμŠ€. - **채널 μš°μ„ μˆœμœ„μ˜ 상이성**: [[LATENT]]λŠ” channel first($[B, C, H, W]$) ν˜•μ‹μ„ λ”°λ₯΄μ§€λ§Œ, [[IMAGE]]λŠ” channel last($[B, H, W, C]$) ν˜•μ‹μ„ 따름. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) ### πŸ–ΌοΈ Images - **데이터 ꡬ쑰**: `torch.Tensor` ν˜•νƒœμ΄λ©°, shape은 $[B, H, W, C]$ ($C=3$)μž…λ‹ˆλ‹€. - **주의 사항**: μ—°μ‚° νš¨μœ¨μ„ μœ„ν•΄ 일뢀 PyTorch 연산은 $[B, C, H, W]$ (channel first) ν˜•μ‹μ„ κΈ°λŒ€ν•  수 μžˆμœΌλ―€λ‘œ μ£Όμ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€. - **포맷 λ³€ν™˜**: 이미지λ₯Ό μ €μž₯ν•˜κ±°λ‚˜ 뢈러올 λ•Œ [[PIL.Image]] 포맷으둜의 λ³€ν™˜μ΄ ν•„μš”ν•©λ‹ˆλ‹€. ### πŸ–ΌοΈ Working with PIL.Image - 이미지 λ‘œλ“œ 및 μ €μž₯을 μœ„ν•΄ `from PIL import Image, ImageOps`λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. ### 🎭 Masks - **데이터 ꡬ쑰**: `torch.Tensor` ν˜•νƒœμ΄λ©°, shape은 $[B, H, W]$μž…λ‹ˆλ‹€. - **κ°’μ˜ 의미**: - 이진 κ°’(0 λ˜λŠ” 1): νŠΉμ • 픽셀이 μ—°μ‚° λŒ€μƒμΈμ§€ μ§€μ •. - 0κ³Ό 1 μ‚¬μ΄μ˜ κ°’: 투λͺ…도 쑰절, ν•„ν„° μ‘°μ •, λ ˆμ΄μ–΄ ν•©μ„± 등을 μœ„ν•œ λ§ˆμŠ€ν‚Ή λ²”μœ„(extent)λ₯Ό λ‚˜νƒ€λƒ„. #### [[Masks from the Load Image Node]] - **생성 원리**: `LoadImage` λ…Έλ“œλŠ” μ΄λ―Έμ§€μ˜ μ•ŒνŒŒ 채널(RGBA의 'A')을 μ‚¬μš©ν•˜μ—¬ [[MASK]]λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. - **μ •κ·œν™” κ³Όμ •**: μ•ŒνŒŒ 채널 값을 $[0, 1]$ λ²”μœ„(`torch.float32`)둜 μ •κ·œν™”ν•œ ν›„ λ°˜μ „μ‹œν‚΅λ‹ˆλ‹€. - **μ˜ˆμ™Έ μΌ€μ΄μŠ€**: JPEG와 같이 μ•ŒνŒŒ 채널이 μ—†λŠ” 경우, `LoadImage`λŠ” $[1, 64, 64]$ 크기의 κΈ°λ³Έ 마슀크λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. #### [[Understanding Mask Shapes]] - **차원 νŠΉμ„±**: [[numpy]]λ‚˜ [[PIL]]κ³Ό 달리, λ§ˆμŠ€ν¬λŠ” 채널 차원이 μƒλž΅λœ 2D λ°°μ—΄($[H, W]$)둜 ν‘œν˜„λ˜λŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 배치 λ‹¨μœ„μ˜ λ§ˆμŠ€ν¬λŠ” $[B, H, W]$의 3차원을 κ°€μ§‘λ‹ˆλ‹€. - **Shape λ§€μΉ­ 기법**: - $C$ 차원 ν™•μž₯: `unsqueeze(-1)`λ₯Ό μ‚¬μš©ν•˜μ—¬ $[B, H, W, 1]$ 생성. - $B$ 차원 ν™•μž₯: `unsqueeze(0)`λ₯Ό μ‚¬μš©ν•˜μ—¬ 배치 차원 μΆ”κ°€. - **ꢌμž₯ 사항**: λ…Έλ“œκ°€ 마슀크λ₯Ό μž…λ ₯받을 λ•Œ `len(mask.shape)`λ₯Ό ν™•μΈν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. ### 🧬 Latents - **데이터 ꡬ쑰**: `dict` ν˜•νƒœμ΄λ©°, `samples` 킀에 데이터가 μ €μž₯λ©λ‹ˆλ‹€. - **ν˜•νƒœ**: $[B, C, H, W]$ (μ—¬κΈ°μ„œ $C=4$)의 shape을 κ°€μ§‘λ‹ˆλ‹€. - **νŠΉμ§•**: [[LATENT]]λŠ” channel first ν˜•μ‹μ„ λ”°λ¦…λ‹ˆλ‹€. ## βš–οΈ λͺ¨λ™ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **상좩 정보**: [[IMAGE]]λŠ” channel last($[B, H, W, C]$)이고, [[LATENT]]λŠ” channel first($[B, C, H, W]$)μž„μ΄ λͺ…μ‹œλ˜μ–΄ μžˆμ–΄ 두 νƒ€μž… κ°„μ˜ ꡬ쑰적 차이λ₯Ό μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **λ…Έλ“œ 좜λ ₯ κ΅¬ν˜„**: λ…Έλ“œμ˜ 좜λ ₯이 단일 ν…μ„œμΈ 경우, λ°˜λ“œμ‹œ `(image,)` ν˜•νƒœλ‘œ λ°˜ν™˜ν•΄μ•Ό 함을 λͺ…μ‹œν•¨. - **데이터 처리**: [[LoadImage]] λ…Έλ“œλ₯Ό ν†΅ν•œ μ•ŒνŒŒ 채널 기반 마슀크 생성 및 μ •κ·œν™” ν”„λ‘œμ„ΈμŠ€. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual - **좜처 신뒰도:** B (Primary Source β€” μ›Ήμ‚¬μ΄νŠΈ λ³Έλ¬Έ 직접 μΆ”μΆœ) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ”— κ΄€λ ¨ λ¬Έμ„œ 링크 (Related document links) - [[torch.Tensor]] : λͺ¨λ“  데이터 νƒ€μž…μ˜ κΈ°μ΄ˆκ°€ λ˜λŠ” 클래슀. - [[PIL.Image]] : 이미지 λ‘œλ“œ 및 μ €μž₯에 μ‚¬μš©λ˜λŠ” 라이mer리. - [[LoadImage]] : μ•ŒνŒŒ 채널을 톡해 마슀크λ₯Ό μƒμ„±ν•˜λŠ” μ†ŒμŠ€ λ…Έλ“œ. - [[RGBA]] : 마슀크 μƒμ„±μ˜ κ·Όκ±°κ°€ λ˜λŠ” μ•ŒνŒŒ 채널 포함 색상 λͺ¨λΈ. ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-20: Astra /wikify 둜 https://docs.comfy.org/custom-nodes/backend/images_and_masks λ³Έλ¬Έμ—μ„œ μ΄ˆμ•ˆ 생성.