--- id: annotated-examples---comfyui title: "Annotated Examples - 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/snippets"] applied_in: [] github_commit: "" --- # [[Annotated Examples - ComfyUI]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) [[ComfyUI]]의 κΈ°λŠ₯ κ΅¬ν˜„μ„ μœ„ν•œ 이미지, 마슀크, λ…Έμ΄μ¦ˆ 처리 κ΄€λ ¨ μ½”λ“œ 예제 및 κ΅¬ν˜„ 방법둠을 μ œκ³΅ν•œλ‹€. ## 🧠 핡심 κ°œλ… (Core concepts) - **Images and Masks**: [[Load an image]], [[Save an image batch]], [[Invert a mask]] λ“± 이미지와 마슀크 λ°μ΄ν„°μ˜ μ‘°μž‘ 기법. - **Mask Transformation**: 마슀크λ₯Ό νŠΉμ • ν˜•νƒœ(`[B,H,W,C]`)둜 λ³€ν™˜ν•˜κ±°λ‚˜ 투λͺ…도 λ ˆμ΄μ–΄(Transparency Layers)둜 ν™œμš©ν•˜λŠ” 방법. λ‚˜λ¨Έμ§€ κ°œλ…μ€ μ½”λ“œ κ΅¬ν˜„μ„ μœ„ν•œ ꡬ체적인 둜직과 [[Noise]] 생성 μ „λž΅μ„ 포함함. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **데이터 μ •κ·œν™” 및 λ³€ν™˜**: 이미지λ₯Ό μ²˜λ¦¬ν•  λ•Œ `exif_transpose`λ₯Ό μ μš©ν•˜κ±°λ‚˜, 마슀크의 λ²”μœ„λ₯Ό `[0,1]`둜 μ •κ·œν™”ν•˜μ—¬ μ—°μ‚°ν•˜λŠ” νŒ¨ν„΄. - **차원 ν™•μž₯(Dimension Expansion)**: 마슀크 λ°μ΄ν„°μ˜ ν˜•νƒœκ°€ λΆˆμΌμΉ˜ν•  경우 `None` λ˜λŠ” `unsqueeze`λ₯Ό μ‚¬μš©ν•˜μ—¬ 채널(`C`)μ΄λ‚˜ 배치(`B`) 차원을 λ§žμΆ”λŠ” ꡬ쑰적 μ ‘κ·Ό. - **κ°€μ€‘μΉ˜ 기반 ν˜Όν•©**: 두 개의 λ…Έμ΄μ¦ˆ μ†ŒμŠ€λ₯Ό `weight2` 값을 톡해 μ„ ν˜• κ²°ν•©ν•˜μ—¬ 변동성을 μƒμ„±ν•˜λŠ” 방식. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) ### πŸ–ΌοΈ Images and Masks κ΅¬ν˜„ 예제 #### [[Load an image]] [[LoadImage]]의 μ†ŒμŠ€ μ½”λ“œλ₯Ό 기반으둜, 이미지λ₯Ό 배치 크기 1둜 λ‘œλ“œν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€. - `Image.open`을 톡해 κ²½λ‘œμ—μ„œ 이미지λ₯Ό 뢈러온 ν›„ `exif_transpose`λ₯Ό μ μš©ν•©λ‹ˆλ‹€. - λͺ¨λ“œκ°€ `'I'`인 경우 값을 `1/255`둜 μŠ€μΌ€μΌλ§ν•©λ‹ˆλ‹€. - μ΅œμ’…μ μœΌλ‘œ `torch.from_numpy`λ₯Ό μ‚¬μš©ν•˜μ—¬ `float32` νƒ€μž…μ˜ ν…μ„œλ‘œ λ³€ν™˜ν•˜λ©°, 배치 차원을 μΆ”κ°€ν•©λ‹ˆλ‹€. #### [[Save an image batch]] [[SaveImage]] μ†ŒμŠ€ μ½”λ“œλ₯Ό 기반으둜, 이미지 배치λ₯Ό μ €μž₯ν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€. - 각 이미지에 λŒ€ν•΄ `cpu().numpy()`λ₯Ό 톡해 λ„˜νŒŒμ΄ λ°°μ—΄λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. - `np.clip`을 μ‚¬μš©ν•˜μ—¬ 값을 `[0, 255]` λ²”μœ„λ‘œ μ œν•œν•˜κ³  `uint8` νƒ€μž…μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. - μ§€μ •λœ 경둜(`filepath`)에 μ €μž₯ν•©λ‹ˆλ‹€. #### [[Invert a mask]] 마슀크λ₯Ό λ°˜μ „μ‹œν‚€λŠ” λ‹¨μˆœ ν”„λ‘œμ„ΈμŠ€μž…λ‹ˆλ‹€. λ§ˆμŠ€ν¬λŠ” `[0,1]` λ²”μœ„λ‘œ μ •κ·œν™”λ˜μ–΄ μžˆμœΌλ―€λ‘œ λ‹€μŒκ³Ό 같이 κ³„μ‚°ν•©λ‹ˆλ‹€. - `mask = 1.0 - mask` #### [[Convert a mask to Image shape]] 마슀크의 ν˜•νƒœλ₯Ό `[B, H, W, C]` ꡬ쑰(C=1)둜 λ§žμΆ”κΈ° μœ„ν•œ 쑰건뢀 차원 ν™•μž₯ λ‘œμ§μž…λ‹ˆλ‹€. - `len(mask.shape)==2` (H,W): `[None, :, :, None]` 적용. - `len(mask.shape)==3` 및 `C=1` (H,W,C): `[None, :, :, :]` 적용. - `len(mask.shape)==3` (B,H,W): `[:, :, :, None]` 적용. #### [[Using Masks as Transparency Layers]] 마슀크λ₯Ό μΈνŽ˜μΈνŒ…μ΄λ‚˜ μ„Έκ·Έλ©˜ν…Œμ΄μ…˜μ˜ 투λͺ… λ ˆμ΄μ–΄λ‘œ ν™œμš©ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. - 마슀크 값을 λ°˜μ „μ‹œμΌœ μ›λž˜μ˜ 투λͺ…도 λ ˆμ΄μ–΄λ‘œ λ³΅κ΅¬ν•˜κ±°λ‚˜, 채널(`C`) 차원을 `unsqueeze(-1)`둜 ν™•μž₯ν•©λ‹ˆλ‹€. - `torch.cat`을 μ‚¬μš©ν•˜μ—¬ RGB 이미지와 마슀크λ₯Ό 채널 μΆ•(`dim=-1`)을 따라 κ²°ν•©ν•˜μ—¬ RGBA 이미지λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. ### πŸ”Š Noise Generation #### [[Creating noise variations]] 두 κ°€μ§€ λ…Έμ΄μ¦ˆ μ†ŒμŠ€λ₯Ό ν˜Όν•©ν•˜μ—¬ μƒˆλ‘œμš΄ λ…Έμ΄μ¦ˆ 객체λ₯Ό μƒμ„±ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. - `Noise_MixedNoise` ν΄λž˜μŠ€λŠ” `noise1`, `noise2`, 그리고 κ°€μ€‘μΉ˜ `weight2`λ₯Ό μ†μ„±μœΌλ‘œ κ°€μ§‘λ‹ˆλ‹€. - `generate_noise` λ©”μ„œλ“œλŠ” `noise1 * (1.0 - self.weight2) + noise2 * self.weight2` 곡식을 톡해 ν˜Όν•©λœ λ…Έμ΄μ¦ˆλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. ## βš–οΈ λͺ¨μ˜ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) λ³Έλ¬Έμ—μ„œ ν™•μΈλ˜μ§€ μ•ŠμŒ ## πŸ› οΈ 적용 사둀 (Applied in summary) - **이미지 처리 νŒŒμ΄ν”„λΌμΈ**: `torch.Tensor` 기반의 이미지 λ‘œλ“œ, λ³€ν™˜, μ €μž₯ 둜직 κ΅¬ν˜„ μ‹œ ν™œμš© κ°€λŠ₯. - **마슀크 μ‘°μž‘**: μΈνŽ˜μΈνŒ…(Inpainting)을 μœ„ν•œ 마슀크 투λͺ…도 λ ˆμ΄μ–΄ 생성 및 차원 μž¬κ΅¬μ„± μž‘μ—…. - **λ…Έμ΄μ¦ˆ μ œμ–΄**: κ°€μ€‘μΉ˜ μ‘°μ ˆμ„ ν†΅ν•œ λ…Έμ΄μ¦ˆ 변동성(Noise variations) 생성 μ‹€ν—˜. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual - **좜처 신뒰도:** B (Primary Source β€” μ›Ήμ‚¬μ΄νŠΈ λ³Έλ¬Έ 직접 μΆ”μΆœ) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ”— κ΄€λ ¨ λ¬Έμ„œ 링크 (Related document links) - [[ComfyUI]] : 이 λ¬Έμ„œμ˜ 기반이 λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. - [[LoadImage]] : 이미지 λ‘œλ“œ 둜직의 핡심 λ…Έλ“œ κ΅¬ν˜„μ²΄μž…λ‹ˆλ‹€. - [[SaveImage]] : 이미지 μ €μž₯ 둜직의 핡심 λ…Έλ“œ κ΅¬ν˜„μ²΄μž…λ‹ˆλ‹€. - [[torch.Tensor]] : 데이터 μ²˜λ¦¬μ— μ‚¬μš©λ˜λŠ” μ£Όμš” ν…μ„œ κ΅¬μ‘°μž…λ‹ˆλ‹€. - [[Inpainting]] : 마슀크λ₯Ό ν™œμš©ν•˜λŠ” ꡬ체적인 μž‘μ—… μ‚¬λ‘€μž…λ‹ˆλ‹€. ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-20: Astra /wikify 둜 https://docs.comfy.org/custom-nodes/backend/snippets λ³Έλ¬Έμ—μ„œ μ΄ˆμ•ˆ 생성.