์ด ํ”„๋กœ์ ํŠธ๋Š” ComfyUI(AGPL-3.0)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜์ •๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์›๋ณธ ํ”„๋กœ์ ํŠธ: https://github.com/comfyanonymous/ComfyUI comfy-Custom-mask-nodes ์ด ํ”„๋กœ์ ํŠธ๋Š” ComfyUI์šฉ ํ™•์žฅ ๋งˆ์Šคํฌ ์ฒ˜๋ฆฌ ๋…ธ๋“œ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํฌ ๋ณ€ํ™˜, ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ํ•ฉ์„ฑ ๋“ฑ ๋‹ค์–‘ํ•œ ๋งˆ์Šคํฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ComfyUI ๊ธฐ๋ณธ ๋งˆ์Šคํฌ ๋…ธ๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ, ๋งˆ์Šคํฌ ์—ฐ์‚ฐ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋˜ ์•ŒํŒŒ ์ฑ„๋„ ์˜ค๋ฅ˜๋ฅผ ์ค„์ด๊ณ  ๋ณด๋‹ค ์•ˆ์ •์ ์ธ ๋งˆ์Šคํฌ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋„๋ก ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-Attention-

์ด ํ”„๋กœ์ ํŠธ๋Š” ComfyUI 0.092์ด์ƒ์—์„œ ์ •์ƒ์ž‘๋™ํ•˜๋Š” ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ComfyUI 11.1์—์„œ๋„ ๊ธฐ๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”ฝ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฒ˜๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— CPU๋‚˜ AMD์—์„œ๋„ ๊ธฐ๋™๋  ๊ฒ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ (Features) Safe MaskToImage Node: ๋งˆ์Šคํฌ๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ (์˜ˆ: ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ ์‹œ๊ฐํ™”).

Safe ImageToMask Node: ์ด๋ฏธ์ง€์—์„œ ํŠน์ • ์ฑ„๋„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งˆ์Šคํฌ ์ถ”์ถœ.

Safe ImageColorToMask Node: ์ด๋ฏธ์ง€์˜ ํŠน์ • ์ƒ‰์ƒ ๋ฒ”์œ„๋กœ๋ถ€ํ„ฐ ๋งˆ์Šคํฌ ์ƒ์„ฑ.

Safe SolidMask Node: ๊ท ์ผํ•œ ๊ฐ’์œผ๋กœ ์ฑ„์›Œ์ง„ ๋งˆ์Šคํฌ ์ƒ์„ฑ.

Safe InvertMask Node: ๊ธฐ์กด ๋งˆ์Šคํฌ ๋ฐ˜์ „.

Safe ImageCompositeMasked Node: ๋งˆ์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ํ•ฉ์„ฑ

Safe MaskComposite Node: ์—ฌ๋Ÿฌ ๋งˆ์Šคํฌ๋ฅผ ํ•ฉ์„ฑ.

Safe CropMask Node: ์ง€์ •๋œ ์˜์—ญ์œผ๋กœ ๋งˆ์Šคํฌ ์ž˜๋ผ๋‚ด๊ธฐ.

Safe Select CropMask Node:์•ˆ์ •ํ™”๋…ธ๋“œ. ์ƒํ•˜์ขŒ์šฐ๋กœ ์ง์ ‘ ์ž๋ฅผ ํ”ฝ์…€์„ ์ง€์ •.

**ImagePadding : ์ž…๋ ฅ ์ด๋ฏธ์ง€๋ฅผ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ง€์ •ํ•œ ํ”ฝ์…€๋งŒํผ ํŒจ๋”ฉํ•˜์—ฌ ํ™•์žฅ

**MaskPadding : ์ž…๋ ฅ ๋งˆ์Šคํฌ๋ฅผ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ง€์ •ํ•œ ํ”ฝ์…€๋งŒํผ ํŒจ๋”ฉํ•˜์—ฌ ํ™•์žฅ

Safe FeatherMask Node: ๋งˆ์Šคํฌ์— ํŽ˜๋”๋ง(๋ถ€๋“œ๋Ÿฌ์šด ๊ฐ€์žฅ์ž๋ฆฌ) ์ ์šฉ.

Safe GrowMask Node: ๋งˆ์Šคํฌ ์˜์—ญ์˜ ํ”ฝ์…€ํฌ๊ธฐ๋ฅผ ๋ฐ”๊นฅ์ชฝ์œผ๋กœ ํ™•์žฅ(ํ™•์žฅํ”ฝ์…€๊ธฐ์ค€25[์—ฐ์†์œผ๋กœ ์“ฐ๋ฉด ์ถ”๊ฐ€ํ™•์žฅ๊ฐ€๋Šฅ]).

Safe ShrinkMask Node: ๋งˆ์Šคํฌ ์˜์—ญ์˜ ํ”ฝ์…€ ํฌ๊ธฐ๋ฅผ ์•ˆ์ชฝ์œผ๋กœ ์ถ•์†Œ.

Safe TransformMask Node: ๋งˆ์Šคํฌ ์˜์—ญ์ž์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์ž„์˜ ํ”ฝ์…€๋กœ ์žฌ์กฐ์ •.

Safe ThresholdMask Node: ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ ๋งˆ์Šคํฌ๋ฅผ ์ž„๊ณ„๊ฐ’์œผ๋กœ ์ด์ง„ ๋งˆ์Šคํฌ๋กœ ๋ณ€ํ™˜.

Safe MaskPreview Node: GUI์—์„œ ๋งˆ์Šคํฌ ์ถœ๋ ฅ ๋ฏธ๋ฆฌ๋ณด๊ธฐ.

Safe MaskSaveOnly: ๋งˆ์Šคํฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘๋ฐฑ์ด๋ฏธ์ง€๋กœ ์ €์žฅ.

Safe MaskSaveLink: ๋งˆ์Šคํฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘๋ฐฑ์ด๋ฏธ์ง€๋กœ ์ €์žฅ ํ›„ ๋งˆ์Šคํฌ ์—ฐ๊ฒฐ์„  ์ถœ๋ ฅ.

**SafeMaskChecker : ํŽธ์ง‘ ๋งˆ์Šคํฌ๋ฅผ ์ง€์ • ์ƒ‰์ƒ์œผ๋กœ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ํ™•์ธ

**SafeMaskDiffChecker : ์›๋ณธ๊ณผ ํŽธ์ง‘ ๋งˆ์Šคํฌ์˜ ์ฐจ์ด๋ฅผ ๊ฐ•์กฐํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ์˜์—ญ๋งŒ ์‹œ๊ฐํ™”

์„ค์น˜ ๋ฐฉ๋ฒ• (Getting Started) Installation ZIP ๋‹ค์šด๋กœ๋“œ ์ด ์ €์žฅ์†Œ๋ฅผ .zip ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

custom_nodes ํด๋”์— ๋ฐฐ์น˜ ์••์ถ•์„ ํ•ด์ œํ•œ ํ›„, ComfyUI ์„ค์น˜ ๊ฒฝ๋กœ์˜ custom_nodes ๋””๋ ‰ํ† ๋ฆฌ์— ํด๋”๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.

ComfyUI ์žฌ์‹œ์ž‘ ComfyUI๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด ์ƒˆ๋กœ์šด ์ปค์Šคํ…€ ๋…ธ๋“œ๊ฐ€ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ• (Usage) ์—๋””ํ„ฐ Safe ImageCompositeMasked Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ๋งˆ์Šคํฌ๋ฅผ ์ด์šฉํ•ด ๋‘ ์ด๋ฏธ์ง€๋ฅผ ํ•ฉ์„ฑํ•  ์ˆ˜ ์žˆ์–ด, ๋ถ€๋ถ„ ํ•ฉ์„ฑ์ด๋‚˜ ๋ธ”๋ Œ๋”ฉ ์ž‘์—…์— ์ ํ•ฉ. Inputs: destination: ํ•ฉ์„ฑ ๋Œ€์ƒ ์ด๋ฏธ์ง€ source: ๋ฎ์–ด์”Œ์šธ ์ด๋ฏธ์ง€ x, y: ์œ„์น˜ ์˜คํ”„์…‹ mask: ๋ธ”๋ Œ๋”ฉ์„ ์ œ์–ดํ•˜๋Š” ์„ ํƒ์  ๋งˆ์Šคํฌ Outputs: image: ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€ Safe CropMask Node : ์•ˆ์ •ํ™”๋Š” ํ–ˆ์ง€๋งŒ ์ž˜๋ผ๋‚ด๋Š” ์œ„์น˜๋Š” ์ถ”๊ฐ€์กฐ์ • ํ•„์š”. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ x, y: ์ž˜๋ผ๋‚ผ ์œ„์น˜ width, height: ์ž˜๋ผ๋‚ผ ํฌ๊ธฐ Outputs: mask: ์ž˜๋ผ๋‚ธ ๋งˆ์Šคํฌ Safe Select CropMask Node : ์‹ ๊ทœ๋…ธ๋“œ. ์ƒํ•˜์ขŒ์šฐ๋กœ ์ง์ ‘ ์ž๋ฅผ ํ”ฝ์…€์„ ์ง€์ •. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ L, R, T, B: ์ž˜๋ผ๋‚ผ ์œ„์น˜ ๋ฐ ํฌ๊ธฐ Outputs: mask: ์ž˜๋ผ๋‚ธ ๋งˆ์Šคํฌ Safe MaskComposite Node : ์ถฉ๋Œ ์›์ธ์„ ๊ฐ์†Œ. ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: mask_a: ์ฒซ ๋ฒˆ์งธ ๋งˆ์Šคํฌ mask_b: ๋‘ ๋ฒˆ์งธ ๋งˆ์Šคํฌ blend_mode: ๊ฒฐํ•ฉ ๋ฐฉ์‹ (add, multiply ๋“ฑ) Outputs: mask: ํ•ฉ์„ฑ๋œ ๋งˆ์Šคํฌ Safe FeatherMask Node : ๋งˆ์Šคํฌ ํŽ˜๋”๋ง ๋…ธ๋“œ. ๊ธฐ๋ณธ๋…ธ๋“œ์™€ ํฌ๊ฒŒ ์ฐจ์ด๋Š” ์—†์ง€๋งŒ, ์ถฉ๋Œ ์ž์ฒด๋Š” ์ค„์ž„. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ radius: ํŽ˜๋”๋ง ๋ฐ˜๊ฒฝ Outputs: mask: ํŽ˜๋”๋ง๋œ ๋งˆ์Šคํฌ Safe GrowMask Node : ์‹คํ—˜๋…ธ๋“œ. ์•ˆ์ •ํ™”๋Š” ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ๋ณด์žฅ์•ˆ๋จ. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ amount: ํ™•์žฅํ•  ํ”ฝ์…€ ์ˆ˜ Outputs: mask: ํ™•์žฅ๋œ ๋งˆ์Šคํฌ Safe ThresholdMask Node : ์‹คํ—˜๋…ธ๋“œ. ์•ˆ์ •ํ™”๋Š” ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ๋ณด์žฅ์•ˆ๋จ. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ threshold: ์ž„๊ณ„๊ฐ’ (0โ€“1) Outputs: mask: ์ด์ง„ํ™”๋œ ๋งˆ์Šคํฌ ๊ธฐ๋ณธํ˜• Safe MaskToImage Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: mask: ๋ณ€ํ™˜ํ•  ๋งˆ์Šคํฌ ํ…์„œ Outputs: image: ๋งˆ์Šคํฌ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ ์ด๋ฏธ์ง€ Safe ImageToMask Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: image: ์›๋ณธ ์ด๋ฏธ์ง€ channel: ์ถ”์ถœํ•  ์ฑ„๋„ (red, green, blue, alpha) Outputs: mask: ์ƒ์„ฑ๋œ ๋งˆ์Šคํฌ Safe ImageColorToMask Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ํŠน์ • ์ƒ‰์ƒ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ด ๋งˆ์Šคํฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด, ์ƒ‰์ƒ ๊ธฐ๋ฐ˜ ์„ ํƒ ์ž‘์—…์— ์œ ์šฉ. Inputs: image: ์›๋ณธ ์ด๋ฏธ์ง€ color: ์ง€์ •๋œ ์ƒ‰์ƒ ๋˜๋Š” ๋ฒ”์œ„ Outputs: mask: ์ƒ‰์ƒ ์„ ํƒ์œผ๋กœ ์ƒ์„ฑ๋œ ๋งˆ์Šคํฌ Safe SolidMask Node : ์ถฉ๋Œ ์›์ธ์„ ๊ฐ์†Œ. ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: width: ๋งˆ์Šคํฌ ๋„ˆ๋น„ height: ๋งˆ์Šคํฌ ๋†’์ด value: ์ฑ„์šธ ๊ฐ’ (0โ€“1) Outputs: mask: ๋‹จ์ƒ‰ ๋งˆ์Šคํฌ Safe InvertMask Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: mask: ๋ฐ˜์ „ํ•  ๋งˆ์Šคํฌ ํ…์„œ Outputs: mask: ๋ฐ˜์ „๋œ ๋งˆ์Šคํฌ ๊ธฐ๋ณธํ˜• Safe MaskToImage Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: mask: ๋ณ€ํ™˜ํ•  ๋งˆ์Šคํฌ ํ…์„œ Outputs: image: ๋งˆ์Šคํฌ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ ์ด๋ฏธ์ง€ Safe ImageToMask Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: image: ์›๋ณธ ์ด๋ฏธ์ง€ channel: ์ถ”์ถœํ•  ์ฑ„๋„ (red, green, blue, alpha) Outputs: mask: ์ƒ์„ฑ๋œ ๋งˆ์Šคํฌ Safe ImageColorToMask Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ํŠน์ • ์ƒ‰์ƒ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ด ๋งˆ์Šคํฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด, ์ƒ‰์ƒ ๊ธฐ๋ฐ˜ ์„ ํƒ ์ž‘์—…์— ์œ ์šฉ. Inputs: image: ์›๋ณธ ์ด๋ฏธ์ง€ color: ์ง€์ •๋œ ์ƒ‰์ƒ ๋˜๋Š” ๋ฒ”์œ„ Outputs: mask: ์ƒ‰์ƒ ์„ ํƒ์œผ๋กœ ์ƒ์„ฑ๋œ ๋งˆ์Šคํฌ ์—๋””ํ„ฐ Safe ImageCompositeMasked Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ๋งˆ์Šคํฌ๋ฅผ ์ด์šฉํ•ด ๋‘ ์ด๋ฏธ์ง€๋ฅผ ํ•ฉ์„ฑํ•  ์ˆ˜ ์žˆ์–ด, ๋ถ€๋ถ„ ํ•ฉ์„ฑ์ด๋‚˜ ๋ธ”๋ Œ๋”ฉ ์ž‘์—…์— ์ ํ•ฉ. Inputs: destination: ํ•ฉ์„ฑ ๋Œ€์ƒ ์ด๋ฏธ์ง€ source: ๋ฎ์–ด์”Œ์šธ ์ด๋ฏธ์ง€ x, y: ์œ„์น˜ ์˜คํ”„์…‹ mask: ๋ธ”๋ Œ๋”ฉ์„ ์ œ์–ดํ•˜๋Š” ์„ ํƒ์  ๋งˆ์Šคํฌ Outputs: image: ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€ Safe MaskComposite Node : ์ถฉ๋Œ ์›์ธ์„ ๊ฐ์†Œ. ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: mask_a: ์ฒซ ๋ฒˆ์งธ ๋งˆ์Šคํฌ mask_b: ๋‘ ๋ฒˆ์งธ ๋งˆ์Šคํฌ blend_mode: ๊ฒฐํ•ฉ ๋ฐฉ์‹ (add, multiply ๋“ฑ) Outputs: mask: ํ•ฉ์„ฑ๋œ ๋งˆ์Šคํฌ ๋ณ€ํ˜• Safe SolidMask Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: width: ๋งˆ์Šคํฌ ๋„ˆ๋น„ height: ๋งˆ์Šคํฌ ๋†’์ด value: ์ฑ„์šธ ๊ฐ’ (0โ€“1) Outputs: mask: ๋‹จ์ƒ‰ ๋งˆ์Šคํฌ Safe InvertMask Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: mask: ๋ฐ˜์ „ํ•  ๋งˆ์Šคํฌ ํ…์„œ Outputs: mask: ๋ฐ˜์ „๋œ ๋งˆ์Šคํฌ Safe GrowMask Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ๋งˆ์Šคํฌ์˜ ํ”ฝ์…€ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆผ. ์ตœ๋Œ€์ œํ•œ ํ”ฝ์…€์„ 25๋กœ ๋ณ€๊ฒฝ. ์žฌํ™•์žฅ์‹œ ์ถ”๊ฐ€์—ฐ๊ฒฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ amount: ํ™•์žฅํ•  ํ”ฝ์…€ ์ˆ˜ Outputs: mask: ํ™•์žฅ๋œ ๋งˆ์Šคํฌ Safe ShrinkMask Node : ์‹ ๊ทœ๋…ธ๋“œ. ๋งˆ์Šคํฌ์˜ ํ”ฝ์…€์„ ์ž…๋ ฅ์น˜์— ๋น„๋ก€ํ•ด์„œ ์ถ•์†Œํ•ฉ๋‹ˆ๋‹ค. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ amount: ์ถ•์†Œํ•  ํ”ฝ์…€ ์ˆ˜ Outputs: mask: ํ™•์žฅ๋œ ๋งˆ์Šคํฌ Safe TransformMask Node : ์‹ ๊ทœ๋…ธ๋“œ. ๋งˆ์Šคํฌ๋ฅผ ์ž…๋ ฅ์น˜์— ๋งž์ถฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ •. ํ”ฝ์…€๋‹จ์œ„๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ amount: ์กฐ์ •ํ•  ๊ฐ€๋กœ ํ”ฝ์…€ ์ˆ˜ amount: ์กฐ์ •ํ•  ์„ธ๋กœ ํ”ฝ์…€ ์ˆ˜ Outputs: mask: ๋ณ€ํ˜•๋œ ๋งˆ์Šคํฌ Safe ThresholdMask Node : ์•ˆ์ •ํ™”๋…ธ๋“œ. ์ž„๊ณ„๊ฐ’์— ๋งž์ถฐ ๋งˆ์Šคํฌ๋ฅผ ์ด์ง„ํ™”ํ•ฉ๋‹ˆ๋‹ค. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ threshold: ์ž„๊ณ„๊ฐ’ (0โ€“1) Outputs: mask: ์ด์ง„ํ™”๋œ ๋งˆ์Šคํฌ ImagePadding Node : ์ด๋ฏธ์ง€์˜ ์บ”๋ฒ„์Šค ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋Š˜๋ ค์„œ ์น ํ•จ. ํ‘๋ฐฑ ์ง€์›, ๊ฒฝ๊ณ„ ํŽ˜๋”๋ง ์ง€์›. ์ด๋ฏธ์ง€๊ฐ€ ์›๋ณธ์ด์–ด์„œ ์—๋Ÿฌ์œ„ํ—˜์ด ์žˆ์–ด์–ด๋„ ๋ฆฌํ„ด ํ›„ ๋ณด์ •์ฒ˜๋ฆฌํ•˜์—ฌ ์ ์šฉํ•จ. Inputs: image : ์ž…๋ ฅ ์ด๋ฏธ์ง€(๋ฐฐ์น˜๋ฐ์ดํ„ฐ ์ฒดํ‚น ํ›„ ์•„๋‹Œ๊ฒฝ์šฐ ๋ฐฐ์น˜์ฐจ์› ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฆฌํ„ด ํ›„ ์žฌ์—ฐ๊ฒฐ) pad_top, pad_bottom, pad_left, pad_right : ๊ฐ ๋ฐฉํ–ฅ๋ณ„ ํŒจ๋”ฉ ํฌ๊ธฐ padding_color : ํŒจ๋”ฉ ์˜์—ญ ์ƒ‰์ƒ(black/white) feather_strength : ํŒจ๋”ฉ ๊ฒฝ๊ณ„ ํŽ˜๋”๋ง ๊ฐ•๋„ Outputs: image : ํŒจ๋”ฉ์ด ์ ์šฉ๋œ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๋ฐฉ์‹ ์ž…๋ ฅ ์ด๋ฏธ์ง€๋ฅผ ๋ฐฐ์น˜ ์ฐจ์› ๋ณด์ • ํ›„ ์ง€์ •ํ•œ ํ”ฝ์…€๋งŒํผ ์ƒํ•˜์ขŒ์šฐ์— ํŒจ๋”ฉ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์„ ํƒํ•œ ์ƒ‰์ƒ์œผ๋กœ ์ฑ„์›€ MaskPadding Node : ๋งˆ์Šคํฌ์˜ ์บ”๋ฒ„์Šค ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋Š˜๋ ค์„œ ์น ํ•จ. ํ‘๋ฐฑ ์ง€์›, ๊ฒฝ๊ณ„ ํŽ˜๋”๋ง ์ง€์›. ๋งˆ์Šคํฌ๋ฐ์ดํ„ฐ๊ฐ€ ์›๋ณธ์ด์–ด์„œ ์—๋Ÿฌ์œ„ํ—˜์ด ์žˆ์–ด๋„ ๋ฆฌํ„ด ํ›„ ๋ณด์ •์ฒ˜๋ฆฌํ•˜์—ฌ ์ ์šฉํ•จ. Inputs: mask : ์ž…๋ ฅ ๋งˆ์Šคํฌ(๋ฐฐ์น˜๋ฐ์ดํ„ฐ ์ฒดํ‚น ํ›„ ์•„๋‹Œ๊ฒฝ์šฐ ๋ฐฐ์น˜์ฐจ์› ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฆฌํ„ด ํ›„ ์žฌ์—ฐ๊ฒฐ) pad_top, pad_bottom, pad_left, pad_right : ๊ฐ ๋ฐฉํ–ฅ๋ณ„ ํŒจ๋”ฉ ํฌ๊ธฐ padding_color : ํŒจ๋”ฉ ์˜์—ญ ์ƒ‰์ƒ(black/white) feather_strength : ํŒจ๋”ฉ ๊ฒฝ๊ณ„ ํŽ˜๋”๋ง ๊ฐ•๋„ Outputs: mask : ํŒจ๋”ฉ์ด ์ ์šฉ๋œ ๋งˆ์Šคํฌ ์ฒ˜๋ฆฌ๋ฐฉ์‹ ์ž…๋ ฅ ๋งˆ์Šคํฌ๋ฅผ ๋ฐฐ์น˜ ์ฐจ์› ๋ณด์ • ํ›„ ์ง€์ •ํ•œ ํ”ฝ์…€๋งŒํผ ์ƒํ•˜์ขŒ์šฐ์— ํŒจ๋”ฉ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์„ ํƒํ•œ ์ƒ‰์ƒ์œผ๋กœ ์ฑ„์›€ ์ปทํŒ… Safe CropMask Node : ์•ˆ์ •ํ™”๋Š” ํ–ˆ์ง€๋งŒ ์ž˜๋ผ๋‚ด๋Š” ์œ„์น˜๋Š” ์ถ”๊ฐ€์กฐ์ • ํ•„์š”. ๊ธฐ๋ณธ๊ฐ’์€ ์™ผ์ชฝ ์œ„์ž…๋‹ˆ๋‹ค. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ x, y: ์ž˜๋ผ๋‚ผ ์œ„์น˜ width, height: ์ž˜๋ผ๋‚ผ ํฌ๊ธฐ Outputs: mask: ์ž˜๋ผ๋‚ธ ๋งˆ์Šคํฌ Safe Select CropMask Node : ์•ˆ์ •ํ™”๋…ธ๋“œ. ์ค‘์•™์„ ๊ธฐ์ค€์œผ๋กœ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ง์ ‘ ์ž๋ฅผ ํ”ฝ์…€์„ ์ง€์ •. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ L, R, T, B: ์ž˜๋ผ๋‚ผ ์œ„์น˜ ๋ฐ ํฌ๊ธฐ Outputs: mask: ์ž˜๋ผ๋‚ธ ๋งˆ์Šคํฌ Safe FeatherMask Node : ๋งˆ์Šคํฌ ํŽ˜๋”๋ง ๋…ธ๋“œ. ๊ธฐ๋ณธ๋…ธ๋“œ์™€ ํฌ๊ฒŒ ์ฐจ์ด๋Š” ์—†์ง€๋งŒ, ์ถฉ๋Œ ์ž์ฒด๋Š” ์ค„์ž„. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ radius: ํŽ˜๋”๋ง ๋ฐ˜๊ฒฝ Outputs: mask: ํŽ˜๋”๋ง๋œ ๋งˆ์Šคํฌ ์ฒด์ปค Safe MaskPreview Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. '๊ฐ’์ด ๋‚จ์•„์žˆ๊ธด ํ•˜๋‹ค๋ฉด', ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ.(๊นจ์ง€๋˜ ๋ฒ„๊ทธ ์ˆ˜์ •.) Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ Outputs: image: ๋งˆ์Šคํฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง€ Safe MaskSaveOnly Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ๋งˆ์Šคํฌ๋ฅผ ์ฝ๊ณ  '์ฝคํ”ผUI ์ถœ๋ ฅ ํด๋”์˜ ๋งˆ์Šคํฌํด๋”์— ์ €์žฅ'. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ Safe MaskSaveLink Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ๋งˆ์Šคํฌ๋ฅผ ์ฝ๊ณ  '์ฝคํ”ผUI ์ถœ๋ ฅ ํด๋”์˜ ๋งˆ์Šคํฌํด๋”์— ์ €์žฅ ํ›„' ๋งˆ์Šคํฌ ์ถœ๋ ฅ ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐ. ์˜ค๋ฅ˜๋ฐœ์ƒ์‹œ ๋ฆฌํ„ดํ•˜์—ฌ ์•ˆ์ •ํ™”๋ฅผ ์œ ๋„ํ•ด ์žฌ์ถœ๋ ฅํ•จ. Inputs: mask: ๋งˆ์Šคํฌ ํ…์„œ Outputs: mask: ๋งˆ์Šคํฌ ํ…์„œ SafeMaskChecker Node : ์•ˆ์ •ํ™” ๋…ธ๋“œ. ์›๋ณธ์ด๋ฏธ์ง€์˜ ๋งˆ์Šคํฌ ์œ„์— ์ˆ˜์ •๋งˆ์Šคํฌ๋ฅผ ๋ฎ์–ด์„œ ์ด๋ฏธ์ง€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์— ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์ „ํ™•์ธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ.(๊นจ์ง€๋˜ ๋ฒ„๊ทธ ์ˆ˜์ •.) Inputs: base_mask : ๊ธฐ์ค€ ๋งˆ์Šคํฌ(์›๋ณธ์ด๋ฏธ์ง€๋ฅผ ๋งˆ์Šคํฌ ์ปจ๋ฒ„ํŠธ๋กœ ์ถœ๋ ฅํ›„ ์—ฐ๊ฒฐ) edit_mask : ํŽธ์ง‘ ๋งˆ์Šคํฌ(๋งˆ์Šคํฌ ์—๋””ํ„ฐ๋กœ ์ˆ˜์ •์˜์—ญ ๊ทธ๋ฆฐ ํ›„ ์—ฐ๊ฒฐ) color : ํ‘œ์‹œ ์ƒ‰์ƒ(red/green/blue) Outputs: preview : ํŽธ์ง‘ ๋งˆ์Šคํฌ๋ฅผ ์ƒ‰์ƒ ์˜ค๋ฒ„๋ ˆ์ด๋กœ ํ‘œํ˜„ํ•œ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๋ฐฉ์‹ ํŽธ์ง‘ ๋งˆ์Šคํฌ๋ฅผ ํ‘๋ฐฑ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ ํ›„ ์„ ํƒํ•œ ์ƒ‰์ƒ์œผ๋กœ ์˜ค๋ฒ„๋ ˆ์ดํ•˜์—ฌ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ถœ๋ ฅ SafeMaskDiffChecker Node : ์›๋ณธ์ด๋ฏธ์ง€์˜ ๋งˆ์Šคํฌ์™€ ์ˆ˜์ •๋งˆ์Šคํฌ์˜ ์ฐจ์ด์ ์„ ๋Œ€์กฐ ํ›„ ๋ณ€๊ฒฝ์˜ˆ์ƒ์ ์„ ์ด๋ฏธ์ง€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์— ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์ „ํ™•์ธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ.(๊นจ์ง€๋˜ ๋ฒ„๊ทธ ์ˆ˜์ •.) Inputs: base_mask : ์›๋ณธ ๋งˆ์Šคํฌ(์›๋ณธ์ด๋ฏธ์ง€๋ฅผ ๋งˆ์Šคํฌ ์ปจ๋ฒ„ํŠธ๋กœ ์ถœ๋ ฅํ›„ ์—ฐ๊ฒฐ) edit_mask : ์ˆ˜์ • ๋งˆ์Šคํฌ(๋งˆ์Šคํฌ ์—๋””ํ„ฐ๋กœ ์ˆ˜์ •์˜์—ญ ๊ทธ๋ฆฐ ํ›„ ์—ฐ๊ฒฐ) color : ๊ฐ•์กฐ ์ƒ‰์ƒ(red/green/blue) Outputs: preview : ๋ณ€๊ฒฝ๋œ ์˜์—ญ์„ ์ƒ‰์ƒ์œผ๋กœ ๊ฐ•์กฐํ•œ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๋ฐฉ์‹ ์›๋ณธ๊ณผ ํŽธ์ง‘ ๋งˆ์Šคํฌ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ฐจ์ด ์˜์—ญ๋งŒ ์ถ”์ถœ, ์ „์ฒด ์˜์—ญ์€ ๋ฐ˜ํˆฌ๋ช… ์ฒ˜๋ฆฌํ•˜๊ณ  ์ฐจ์ด ์˜์—ญ์€ ์ง€์ • ์ƒ‰์ƒ์œผ๋กœ ๊ฐ•์กฐ

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support