ํ—ˆ๋‹ˆ ๋ธ”๋ก ๋“œ ๋จธ๋ฆฌ์™€ ์—๋ฉ”๋ž„๋“œ ๋ˆˆ์„ ๊ฐ€์ง„ ์—ฌ์„ฑ์˜ ์‚ฌ์‹ค์ ์ธ ํŒํƒ€์ง€ ์ดˆ์ƒํ™”๋กœ, ๋ˆˆ๊ฐ€์— ๋ˆˆ๋ฌผ์ด ๋งบํžˆ๊ณ  ์€์ƒ‰ ๊ท€๊ฑธ์ด์™€ ๋ชฉ๊ฑธ์ด๋ฅผ ์ฐฉ์šฉํ•œ ์ฑ„ ์œ„๋ฅผ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ์Œ
ํ™ฉ๊ธˆ ์‹œ๊ฐ„๋Œ€ ๋„์‹œ ์ „๊ฒฝ๊ณผ ๋น„ํ–‰์„ ์ด ๋ฐฐ๊ฒฝ์ธ ํ–‡์‚ด ๊ฐ€๋“ํ•œ ๋‹ค๋ฝ ์˜จ์‹ค์—์„œ ๋จธ๋ฆฌ์นด๋ฝ์ด ํœ˜๋‚ ๋ฆฌ๊ณ  ๋งˆ๋ฒ• ๋ถˆ๊ฝƒ์ด ๋ฒˆ์ฉ์ด๋Š” ๋„ค ๋ช…์˜ ๋„ค์˜ค-๋น…ํ† ๋ฆฌ์•ˆ ์˜์›…๋“ค.

์ถ”์ฒœ ๋งค๊ฐœ๋ณ€์ˆ˜

steps

10 - 20

resolution

1024x1024

ํŒ

์ตœ์ƒ์˜ ๊ฒฐ๊ณผ๋ฅผ ์œ„ํ•ด ์ฃผ๋กœ ํŒŒ์ธํŠœ๋‹์ด ์ด๋ฃจ์–ด์ง„ ์Šคํ…Œ์ด์ง€ C์˜ 36์–ต ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์Šคํ…Œ์ด์ง€ B์—์„œ๋Š” ์ž‘์€ ์„ธ๋ถ€ ๋ฌ˜์‚ฌ ๋ณต์›์— ๊ฐ•ํ•œ 15์–ต ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

๋ชจ๋ธ์€ ์ž‘์€ ์ž ์žฌ ๊ณต๊ฐ„ ๋•๋ถ„์— ํšจ์œจ์ ์ธ ํ•™์Šต ๋ฐ ์ถ”๋ก ์— ์ ํ•ฉํ•˜๋ฉฐ, ํŒŒ์ธํŠœ๋‹, LoRA, ControlNet, IP-Adapter, LCM๊ณผ ๊ฐ™์€ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋ธ์€ ์—ฐ๊ตฌ ๋ชฉ์ ์šฉ์ด๋ฉฐ, ์‚ฌ์‹ค์ ์ธ ํ‘œํ˜„ ์ƒ์„ฑ์ด๋‚˜ Stability AI์˜ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ์‚ฌ์šฉ ์ •์ฑ… ์œ„๋ฐ˜์— ์‚ฌ์šฉ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์–ผ๊ตด ๋ฐ ์‚ฌ๋žŒ ์ด๋ฏธ์ง€๊ฐ€ ์ œ๋Œ€๋กœ ์ƒ์„ฑ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ชจ๋ธ์˜ ์ž๋™ ์ธ์ฝ”๋”ฉ์€ ์†์‹ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌ๋ฆฌ์—์ดํ„ฐ ์Šคํฐ์„œ

๋ฐ๋ชจ:

Stable Cascade

์ด ๋ชจ๋ธ์€ Wรผrstchen ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ๋‹ค๋ฅธ Stable Diffusion๊ณผ ๊ฐ™์€ ๋ชจ๋ธ๋“ค๊ณผ์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ํ›จ์”ฌ ๋” ์ž‘์€ ์ž ์žฌ ๊ณต๊ฐ„์—์„œ ์ž‘๋™ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

์™œ ์ค‘์š”ํ• ๊นŒ์š”? ์ž ์žฌ ๊ณต๊ฐ„์ด ์ž‘์„์ˆ˜๋ก ๋” ๋น ๋ฅด๊ฒŒ ์ถ”๋ก ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , ๋” ์ €๋ ดํ•˜๊ฒŒ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์–ผ๋งˆ๋‚˜ ์ž‘์€ ์ž ์žฌ ๊ณต๊ฐ„์ธ๊ฐ€์š”? Stable Diffusion์€ ์••์ถ• ๊ณ„์ˆ˜ 8์„ ์‚ฌ์šฉํ•˜์—ฌ 1024x1024 ์ด๋ฏธ์ง€๋ฅผ 128x128๋กœ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. Stable Cascade๋Š” ์••์ถ• ๊ณ„์ˆ˜ 42๋ฅผ ๋‹ฌ์„ฑํ•˜์—ฌ 1024x1024 ์ด๋ฏธ์ง€๋ฅผ 24x24๋กœ ์ธ์ฝ”๋”ฉํ•˜๋ฉด์„œ๋„ ์„ ๋ช…ํ•œ ๋ณต์›์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ์กฐ๊ฑด ๋ชจ๋ธ์€ ์ด๋ ‡๊ฒŒ ๊ณ ๋„๋กœ ์••์ถ•๋œ ์ž ์žฌ ๊ณต๊ฐ„์—์„œ ํ•™์Šต๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ ์ด ์•„ํ‚คํ…์ฒ˜๋Š” Stable Diffusion 1.5 ๋Œ€๋น„ 16๋ฐฐ์˜ ๋น„์šฉ ์ ˆ๊ฐ์„ ์ด๋ค˜์Šต๋‹ˆ๋‹ค.<br> <br>

๋”ฐ๋ผ์„œ, ํšจ์œจ์„ฑ์ด ์ค‘์š”ํ•œ ์šฉ๋„์— ๋งค์šฐ ์ ํ•ฉํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, ํŒŒ์ธํŠœ๋‹, LoRA, ControlNet, IP-Adapter, LCM ๋“ฑ ์•Œ๋ ค์ง„ ๋ชจ๋“  ํ™•์žฅ ๊ธฐ๋Šฅ๋“ค์ด ์ด ๋ฐฉ๋ฒ•์œผ๋กœ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋ธ ์„ธ๋ถ€ ์ •๋ณด

๋ชจ๋ธ ์„ค๋ช…

Stable Cascade๋Š” ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ ์‹œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ›ˆ๋ จ๋œ ํ™•์‚ฐ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

  • ๊ฐœ๋ฐœ์ž: Stability AI

  • ์ž๊ธˆ ์ง€์›: Stability AI

  • ๋ชจ๋ธ ์œ ํ˜•: ์ƒ์„ฑ ํ…์ŠคํŠธ-์ด๋ฏธ์ง€ ๋ชจ๋ธ

๋ชจ๋ธ ์†Œ์Šค

์—ฐ๊ตฌ ๋ชฉ์ ์„ ์œ„ํ•ด, ์ €ํฌ๋Š” StableCascade ๊นƒํ—ˆ๋ธŒ ์ €์žฅ์†Œ๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค (https://github.com/Stability-AI/StableCascade).

๋ชจ๋ธ ๊ฐœ์š”

Stable Cascade๋Š” ์ด๋ฏธ์ง€ ์ƒ์„ฑ์„ ์œ„ํ•œ ์„ธ ๊ฐœ์˜ ๋ชจ๋ธ, ์ฆ‰ ์Šคํ…Œ์ด์ง€ A, B, C๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด, ์ด๋ฆ„์ฒ˜๋Ÿผ '์•ˆ์ •์ ์ธ ๋‹จ๊ณ„์ ' ์ƒ์„ฑ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ…Œ์ด์ง€ A์™€ B๋Š” ์ด๋ฏธ์ง€๋ฅผ ์••์ถ•ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ, ์ด๋Š” Stable Diffusion์˜ VAE์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด ์„ค์ •์„ ํ†ตํ•ด ๋” ๋†’์€ ์••์ถ•๋ฅ ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Stable Diffusion ๋ชจ๋ธ์ด 8๋ฐฐ ๊ณต๊ฐ„ ์••์ถ•์„ ์‚ฌ์šฉํ•ด 1024 x 1024 ์ด๋ฏธ์ง€๋ฅผ 128 x 128๋กœ ์ธ์ฝ”๋”ฉํ•˜๋Š” ๋ฐ˜๋ฉด, Stable Cascade๋Š” 42๋ฐฐ ์••์ถ•์„ ๋‹ฌ์„ฑํ•˜์—ฌ 1024 x 1024 ์ด๋ฏธ์ง€๋ฅผ 24 x 24๋กœ ์ธ์ฝ”๋”ฉํ•˜๋ฉด์„œ ์ •ํ™•ํ•œ ๋ณต์›์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด ํ•™์Šต๊ณผ ์ถ”๋ก  ๋น„์šฉ์ด ํฌ๊ฒŒ ์ ˆ๊ฐ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์Šคํ…Œ์ด์ง€ C๋Š” ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ฐ›์•„ 24 x 24 ํฌ๊ธฐ์˜ ์ž ์žฌ ํ‘œํ˜„์„ ์ƒ์„ฑํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€๋Š” ์ด๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ด๋ฒˆ ๋ฆด๋ฆฌ์ฆˆ์—์„œ๋Š” ์Šคํ…Œ์ด์ง€ C์šฉ ์ฒดํฌํฌ์ธํŠธ 2๊ฐœ, ์Šคํ…Œ์ด์ง€ B์šฉ 2๊ฐœ, ์Šคํ…Œ์ด์ง€ A์šฉ 1๊ฐœ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์Šคํ…Œ์ด์ง€ C๋Š” 10์–ต๊ณผ 36์–ต ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฒ„์ „์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ํŒŒ์ธํŠœ๋‹์ด 36์–ต ๋ฒ„์ „์— ์ด๋ฃจ์–ด์ ธ ์žˆ์–ด ์ด ๋ฒ„์ „ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์Šคํ…Œ์ด์ง€ B์˜ ๋‘ ๋ฒ„์ „์€ ๊ฐ๊ฐ 7์–ต๊ณผ 15์–ต ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋ฉฐ, ๋‘˜ ๋‹ค ํ›Œ๋ฅญํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด์ง€๋งŒ 15์–ต ๋ฒ„์ „์ด ์ž‘์€ ์„ธ๋ถ€ ๋ฌ˜์‚ฌ ๋ณต์›์— ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ๋” ํฐ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ๋•Œ ์ตœ์ƒ์˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์Šคํ…Œ์ด์ง€ A๋Š” 2000๋งŒ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„ ๊ณ ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‰๊ฐ€

์ €ํฌ ํ‰๊ฐ€์— ๋”ฐ๋ฅด๋ฉด, Stable Cascade๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๋น„๊ต์—์„œ ํ”„๋กฌํ”„ํŠธ ์ •๋ ฌ๊ณผ ๋ฏธ์  ํ’ˆ์งˆ ๋ฉด์—์„œ ์ตœ๊ณ  ์„ฑ๋Šฅ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์œ„ ์ด๋ฏธ์ง€๋Š” parti-prompts(๋งํฌ)์™€ ๋ฏธ์  ํ”„๋กฌํ”„ํŠธ ํ˜ผํ•ฉ์„ ์‚ฌ์šฉํ•œ ์ธ๊ฐ„ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ํŠนํžˆ Stable Cascade(30 ์ถ”๋ก  ๋‹จ๊ณ„)๋Š” Playground v2(50 ์ถ”๋ก  ๋‹จ๊ณ„), SDXL(50 ์ถ”๋ก  ๋‹จ๊ณ„), SDXL Turbo(1 ์ถ”๋ก  ๋‹จ๊ณ„), ๊ทธ๋ฆฌ๊ณ  Wรผrstchen v2(30 ์ถ”๋ก  ๋‹จ๊ณ„)์™€ ๋น„๊ต๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ ์˜ˆ์ œ

โš ๏ธ ์ค‘์š”: ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด diffusers์˜ PR์ด ์ง„ํ–‰ ์ค‘์ธ ์ด ๋ธŒ๋žœ์น˜์—์„œ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

pip install git+https://github.com/kashif/diffusers.git@wuerstchen-v3

import torch

from diffusers import StableCascadeDecoderPipeline, StableCascadePriorPipeline

device = "cuda"

num_images_per_prompt = 2

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", torch_dtype=torch.bfloat16).to(device)

decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", torch_dtype=torch.float16).to(device)

prompt = "Anthropomorphic cat dressed as a pilot"

negative_prompt = ""

prior_output = prior(

prompt=prompt,

height=1024,

width=1024,

negative_prompt=negative_prompt,

guidance_scale=4.0,

num_images_per_prompt=num_images_per_prompt,

num_inference_steps=20

)

decoder_output = decoder(

image_embeddings=prior_output.image_embeddings.half(),

prompt=prompt,

negative_prompt=negative_prompt,

guidance_scale=0.0,

output_type="pil",

num_inference_steps=10

).images

#์ด์ œ decoder_output์€ PIL ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค

ํ™œ์šฉ๋ฒ•

์ง์ ‘ ์‚ฌ์šฉ

์ด ๋ชจ๋ธ์€ ํ˜„์žฌ ์—ฐ๊ตฌ ๋ชฉ์ ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ์—ฐ๊ตฌ ์˜์—ญ ๋ฐ ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ƒ์„ฑ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์—ฐ๊ตฌ.

  • ์œ ํ•ด ์ฝ˜ํ…์ธ  ์ƒ์„ฑ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ชจ๋ธ์˜ ์•ˆ์ „ํ•œ ๋ฐฐํฌ.

  • ์ƒ์„ฑ ๋ชจ๋ธ์˜ ํ•œ๊ณ„ ๋ฐ ํŽธํ–ฅ์„ฑ ์กฐ์‚ฌ ๋ฐ ์ดํ•ด.

  • ์˜ˆ์ˆ  ์ž‘ํ’ˆ ์ƒ์„ฑ ๋ฐ ๋””์ž์ธ ๋“ฑ ์˜ˆ์ˆ ์  ๊ณผ์ •์— ํ™œ์šฉ.

  • ๊ต์œก์  ๋˜๋Š” ์ฐฝ์ž‘ ๋„๊ตฌ๋กœ์˜ ์‘์šฉ.

์ œ์™ธ๋˜๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์•„๋ž˜์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ ์šฉ ๋ฒ”์œ„ ์™ธ ์‚ฌ์šฉ

์ด ๋ชจ๋ธ์€ ์‚ฌ๋žŒ์ด๋‚˜ ์‚ฌ๊ฑด์— ๋Œ€ํ•œ ์‚ฌ์‹ค์  ๋˜๋Š” ์ง„์‹คํ•œ ํ‘œํ˜„์„ ์œ„ํ•ด ํ›ˆ๋ จ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ, ๊ทธ๋Ÿฌํ•œ ์ฝ˜ํ…์ธ  ์ƒ์„ฑ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์‚ฌ์šฉ์€ ๋ชจ๋ธ ๋Šฅ๋ ฅ์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ชจ๋ธ์€ Stability AI์˜ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ์‚ฌ์šฉ ์ •์ฑ…๋ฅผ ์œ„๋ฐ˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ ๋ฐ ํŽธํ–ฅ

์ œํ•œ ์‚ฌํ•ญ

  • ์–ผ๊ตด๊ณผ ์ผ๋ฐ˜์ ์ธ ์‚ฌ๋žŒ ์ธ์‹์ด ์ œ๋Œ€๋กœ ์ƒ์„ฑ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ์˜ ์ž๋™ ์ธ์ฝ”๋”ฉ ๋ถ€๋ถ„์€ ์†์‹ค์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ถŒ์žฅ ์‚ฌํ•ญ

์ด ๋ชจ๋ธ์€ ์—ฐ๊ตฌ ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ ์‹œ์ž‘ ๊ฐ€์ด๋“œ

์ž์„ธํ•œ ๋‚ด์šฉ์€ https://github.com/Stability-AI/StableCascade ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์ด์ „
Midnight - v5.0
๋‹ค์Œ
ํ•„๋ฆ„ ์—๋ฎฌ๋ ˆ์ด์…˜ - ํ• ๋ ˆ์ด์…˜ 35mm (๋ฏธ๋ฌ˜ํ•œ)

๋ชจ๋ธ ์„ธ๋ถ€์‚ฌํ•ญ

๋ชจ๋ธ ์œ ํ˜•

Checkpoint

๊ธฐ๋ณธ ๋ชจ๋ธ

Stable Cascade

๋ชจ๋ธ ๋ฒ„์ „

base

๋ชจ๋ธ ํ•ด์‹œ

0d28c8562d

์ œ์ž‘์ž

ํ† ๋ก 

๋Œ“๊ธ€์„ ๋‚จ๊ธฐ๋ ค๋ฉด log inํ•˜์„ธ์š”.

Stable Cascade - ๊ธฐ๋ณธ ์ œ์ž‘ ์ด๋ฏธ์ง€

์• ๋‹ˆ๋ฉ” ์ด๋ฏธ์ง€

์˜ˆ์ˆ  ์ด๋ฏธ์ง€

๊ธฐ๋ณธ ๋ชจ๋ธ ์ด๋ฏธ์ง€

logo ์ด๋ฏธ์ง€

๋ฆฌ์–ผ๋ฆฌ์ฆ˜ ์ด๋ฏธ์ง€