๐Ÿ“˜ SLM ๊ธฐ๋ฐ˜ ์ƒ์„ฑํ˜• ์ด๋ฏธ์ง€ ๋ชจ๋ธ ๊ตฌ์ถ• ์ „๋žต ๋…ธํŠธ

๐ŸŽฏ ์ตœ์ข… ๋ชฉํ‘œ

  • ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๊ฐ ์„ธ๋ถ€ ์˜์—ญ์— ํŠนํ™”๋œ SLM(Small Language Model) ๊ธฐ๋ฐ˜ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ชจ๋ธ์„ ํ•™์Šตํ•˜๊ณ ,
  • ํƒœ๊ทธ ๊ธฐ๋ฐ˜ ์ปจํŠธ๋กค๋Ÿฌ ๋˜๋Š” ์•™์ƒ๋ธ” ๊ตฌ์กฐ๋กœ ํ†ตํ•ฉํ•˜์—ฌ ๊ณ ์„ฑ๋Šฅ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

1๏ธโƒฃ ๋ฐ์ดํ„ฐ ๋ถ„๋ฅ˜ ๋ฐ ์‚ฌ์ „ ์ค€๋น„

โœ… ์™œ ๋ถ„๋ฅ˜๊ฐ€ ํ•„์š”ํ•œ๊ฐ€?

  • ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€ ์œ ํ˜•์ด ํ˜ผํ•ฉ๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ ํ•™์Šต ๋น„ํšจ์œจ ์ดˆ๋ž˜
  • ์Šคํƒ€์ผ, ์ฃผ์ œ, ํ•ด์ƒ๋„ ๋“ฑ ๊ธฐ์ค€์— ๋”ฐ๋ผ SLM์„ ๋‚˜๋ˆ„๋ฉด ํ•™์Šต ์†๋„/์ •ํ™•๋„ ๊ฐœ์„ 

โœ… ๊ทธ๋ฃนํ•‘ ๊ธฐ์ค€ ์˜ˆ์‹œ

๊ธฐ์ค€์˜ˆ์‹œ
subjectcat, landscape, human, food
stylewatercolor, anime, 3D, pixel
tonepastel, dark, monochrome
sourceweb, user-upload, dataset

groupby() ๋“ฑ pandas ์—ฐ์‚ฐ์œผ๋กœ ๋ถ„๋ฅ˜ ๋ฐ ํ†ต๊ณ„ ๊ฐ€๋Šฅ


2๏ธโƒฃ ์ปจํŠธ๋กค๋Ÿฌ + SLM ๊ตฌ์กฐ ์„ค๊ณ„

โœ… ๋ฐฉ์‹ A: LLM ๊ธฐ๋ฐ˜ ์ปจํŠธ๋กค๋Ÿฌ (ํƒœ๊ทธ โ†’ SLM ์„ ํƒ)

  • ์‚ฌ์šฉ์ž ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ถ„์„ํ•˜์—ฌ style/subject/mood ๋“ฑ ํƒœ๊ทธ ์ถ”์ถœ
  • ํƒœ๊ทธ์— ๋งž๋Š” SLM์„ ์ž๋™ ์„ ํƒ ๋ฐ ํ˜ธ์ถœ

โœ… ๋ฐฉ์‹ B: ์•™์ƒ๋ธ” ๊ตฌ์กฐ

  • style SLM, subject SLM ๊ฐ๊ฐ ํ˜ธ์ถœ ํ›„ latent-space์—์„œ ๊ฒฐํ•ฉ ๋˜๋Š” ์Šคํƒ€์ผ ์ „์ด
  • ControlNet ๋“ฑ์œผ๋กœ attention ๊ธฐ๋ฐ˜ ๋ถ€๋ถ„์  ์กฐํ•ฉ ๊ฐ€๋Šฅ

3๏ธโƒฃ ํ”„๋กฌํ”„ํŠธ ๋ถ„ํ•ด ์ „๋žต

โœ… ๋ฐฉ์‹

  • Rule-based: ํ‚ค์›Œ๋“œ ๋งค์นญ
  • LLM-based: LLM์„ ์‚ฌ์šฉํ•˜์—ฌ ํƒœ๊ทธ ์ถ”์ถœ (์˜ˆ: style, subject, mood, tone)
  • CLIP embedding ๋“ฑ๊ณผ ๋ณ‘ํ–‰ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

โœ… ํƒœ๊ทธ ์˜ˆ์‹œ JSON

{
  "style": "watercolor",
  "subject": "flower_field",
  "mood": "warm",
  "tone": "pastel",
  "season": "spring"
}

4๏ธโƒฃ SLM ์„ ํƒ ๋ฐ ์กฐํ•ฉ ๊ตฌ์กฐ

โœ… ๋‹จ์ผ ์„ ํƒ ๋ฐฉ์‹

  • (style, subject) ์Œ์œผ๋กœ SLM ๋”•์…”๋„ˆ๋ฆฌ ๋งคํ•‘

โœ… ๋‹ค์ค‘ ์กฐํ•ฉ ๋ฐฉ์‹

  • subject ๋ชจ๋ธ + ์Šคํƒ€์ผ ์ „์ด ๋ชจ๋ธ (2๋‹จ๊ณ„ ์ฒ˜๋ฆฌ)
  • latent space blending (ex. Stable Diffusion ๊ธฐ๋ฐ˜)
  • ControlNet์œผ๋กœ attention masked ์กฐํ•ฉ

5๏ธโƒฃ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ํ›„์ฒ˜๋ฆฌ ๋ฐ ์ €์žฅ

โœ… ํ’ˆ์งˆ ๋ณด์ •

  • Real-ESRGAN, SwinIR ์—…์Šค์ผ€์ผ๋ง
  • denoising, color correction

โœ… ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ €์žฅ ๊ตฌ์กฐ ์˜ˆ์‹œ

{
  "filename": "img_001.png",
  "prompt": "์ˆ˜์ฑ„ํ™” ๋А๋‚Œ์˜ ๋“คํŒ",
  "tags": {"style": "watercolor", "subject": "field"},
  "model_used": "watercolor_field_v1",
  "timestamp": "2025-08-19"
}

โœ… UI/UX ๊ตฌ์กฐ

  • Gradio / Streamlit๋กœ ํ…Œ์ŠคํŠธ UI
  • React + FastAPI๋กœ ์„œ๋น„์Šค ํ™•์žฅ
  • API ์‘๋‹ต ํ˜•์‹ ์ •์˜

6๏ธโƒฃ ๋ฐฉ์–ด ์ „๋žต (SLM ๋ถ„๋ฅ˜ ์‹ ๋ขฐ์„ฑ ํ™•๋ณด)

์ „๋žต์„ค๋ช…
Top-k ํƒœ๊ทธ + confidence ์ ์ˆ˜ํƒœ๊ทธ ์‹ ๋ขฐ๋„ ๊ธฐ๋ฐ˜ SLM ์„ ํƒ ์กฐ์ ˆ
CLIP ์œ ์‚ฌ๋„ ๊ฒ€์ฆ์ƒ์„ฑ ๊ฒฐ๊ณผ์™€ ํ”„๋กฌํ”„ํŠธ ์˜๋ฏธ ์ผ์น˜ ๊ฒ€์ฆ
fallback ๋ชจ๋ธ์‹คํŒจ ์‹œ ๋‹ค์šฉ๋„ SLM ์‚ฌ์šฉ
์œ ์ € ์ˆ˜๋™ ํƒœ๊ทธ ์กฐ์ • UI์ž๋™ ์ถ”์ถœ์ด ๋ถ€์ •ํ™•ํ•  ๊ฒฝ์šฐ ์ˆ˜๋™ ์ˆ˜์ •
ํƒœ๊ทธ ๋ถˆ์ผ์น˜ ํƒ์ง€style vs tone ๊ฐ„ ์ถฉ๋Œ ๋“ฑ ์ด์ƒ ์ƒํ™ฉ ํƒ์ง€
human QA loop์ฃผ๊ธฐ์  ์ˆ˜์ž‘์—… ๊ฒ€์ˆ˜ ๋˜๋Š” ๊ฒ€ํ†  ๋„๊ตฌ ๊ตฌ์ถ•

๐Ÿ”„ ์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ ์š”์•ฝ

[User Prompt ์ž…๋ ฅ]
   โ†“
[ํ”„๋กฌํ”„ํŠธ ๋ถ„์„ (LLM or Rule)]
   โ†“
[Top-k ํƒœ๊ทธ + confidence ์ถ”์ถœ]
   โ†“
[SLM ์„ ํƒ or ์กฐํ•ฉ ๊ฒฐ์ •]
   โ†“
[์ด๋ฏธ์ง€ ์ƒ์„ฑ (๋‹จ์ผ/์กฐํ•ฉ)]
   โ†“
[CLIP ์œ ์‚ฌ๋„ ๊ฒ€์ฆ + ๋ณด์ •]
   โ†“
[์ตœ์ข… ์ €์žฅ + ๋ฉ”ํƒ€ ๊ธฐ๋ก + ์‘๋‹ต ์ „์†ก]

์ด ๋…ธํŠธ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ์ถ”ํ›„ ์„ค๊ณ„์„œ / ์ œ์•ˆ์„œ / ์‹คํ—˜ ํ™˜๊ฒฝ ๋ฌธ์„œ๋กœ ๋ฐœ์ „ ๊ฐ€๋Šฅํ•จ.

์ฝ”๋ฉ˜ํŠธ

๋‹ต๊ธ€ ๋‚จ๊ธฐ๊ธฐ

์ด๋ฉ”์ผ ์ฃผ์†Œ๋Š” ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•„๋“œ๋Š” *๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค