Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Me-in-U/Clifa

Repository files navigation

๐Ÿ“ธ Clifa

CLIP + FAISS ๊ธฐ๋ฐ˜ ๋กœ์ปฌ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰๊ธฐ
์›ํ•˜๋Š” ๋ฌธ์žฅ์„ ์ž…๋ ฅํ•˜๋ฉด, ์ด๋ฏธ์ง€ ํด๋”๋ฅผ ์ธ๋ฑ์‹ฑํ•ด ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„์ค๋‹ˆ๋‹ค.

Clifa๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ์‹œ๋งจํ‹ฑ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰ ๋ฐ์Šคํฌํ†ฑ ์•ฑ์ž…๋‹ˆ๋‹ค.
๋‹ค๊ตญ์–ด CLIP ์ž„๋ฒ ๋”ฉ๊ณผ FAISS ๋ฒกํ„ฐ ์ธ๋ฑ์Šค๋ฅผ ๊ฒฐํ•ฉํ•ด, ํŒŒ์ผ๋ช… ๊ธฐ๋ฐ˜ ํƒ์ƒ‰๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽฏ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  • ๋ฌธ์ œ: ์ด๋ฏธ์ง€๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ํด๋”/ํŒŒ์ผ๋ช… ๊ธฐ๋ฐ˜ ํƒ์ƒ‰์˜ ํšจ์œจ์ด ๊ธ‰๊ฒฉํžˆ ๋–จ์–ด์ง
  • ํ•ด๊ฒฐ: ํ…์ŠคํŠธ-์ด๋ฏธ์ง€ ์ž„๋ฒ ๋”ฉ ๊ฒ€์ƒ‰์œผ๋กœ "์„ค๋ช…์œผ๋กœ ์ฐพ๋Š”" ์›Œํฌํ”Œ๋กœ์šฐ ์ œ๊ณต
  • ํ•ต์‹ฌ ๊ฐ€์น˜: ๋กœ์ปฌ ์ฒ˜๋ฆฌ ๊ธฐ๋ฐ˜ ์†๋„/ํ”„๋ผ์ด๋ฒ„์‹œ, ๋‹ค๊ตญ์–ด ๊ฒ€์ƒ‰, ์‹ค์‚ฌ์šฉ ์ค‘์‹ฌ UI/UX
image image

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๐Ÿ“‚ ์ด๋ฏธ์ง€ ํด๋” ์ธ๋ฑ์‹ฑ

    • CLIP ์ž„๋ฒ ๋”ฉ + FAISS ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ณ ์† ๊ฒ€์ƒ‰
    • ์ตœ์ดˆ ์ „์ฒด ์ธ๋ฑ์‹ฑ ๋ฐ ๋ณ€๊ฒฝ ๊ฐ์ง€ ๊ธฐ๋ฐ˜ ์ž๋™ ์ธ๋ฑ์‹ฑ ์ง€์›
    • ์ง„ํ–‰ ์ƒํ™ฉ ํ‘œ์‹œ (ํผ์„ผํŠธ %, ํ˜„์žฌ/์ „์ฒด ๊ฐœ์ˆ˜)
    • ์ธ๋ฑ์‹ฑ ์ž‘์—… ์ค‘ ์ทจ์†Œ ๊ฐ€๋Šฅ
  • ๐Ÿ” ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰

    • ์ž์—ฐ์–ด ์ฟผ๋ฆฌ๋กœ ์ด๋ฏธ์ง€ ์ฐพ๊ธฐ (์˜ˆ: "๋ฒค์น˜์— ์•‰์•„์žˆ๋Š” ๊ฐ•์•„์ง€", "a dog sitting on a bench")
    • 50๊ฐœ ์ด์ƒ ์–ธ์–ด ์ง€์›: ํ•œ๊ตญ์–ด, ์˜์–ด, ์ผ๋ณธ์–ด, ์ค‘๊ตญ์–ด ๋“ฑ ๋‹ค๊ตญ์–ด ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ
    • Sentence-Transformers Multilingual CLIP ๋ชจ๋ธ ์‚ฌ์šฉ
    • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ธ๋„ค์ผ + ํŒŒ์ผ๋ช… ๊ทธ๋ฆฌ๋“œ ํ‘œ์‹œ
    • ๋”๋ธ”ํด๋ฆญ ์‹œ ์›๋ณธ ์ด๋ฏธ์ง€ ์—ด๊ธฐ
  • ๐ŸŽจ UI/UX

    • PySide6 ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„๋ฆฌ์Šค GUI
    • Windows 10+ Acrylic Blur ํšจ๊ณผ ์ง€์›
    • ์šฐํ•˜๋‹จ ํŒ์—… ์ฐฝ + ๋“œ๋ž˜๊ทธ ์ด๋™ ๊ฐ€๋Šฅ
    • ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜ (์—ด๊ธฐ/์ˆจ๊ธฐ๊ธฐ, ์ฆ‰์‹œ ์ธ๋ฑ์‹ฑ, ์ข…๋ฃŒ)
  • โš™๏ธ ์„ค์ • & ์•ˆ์ •์„ฑ

    • ์ด๋ฏธ์ง€ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์ง€์ • (QSettings ์ €์žฅ)
    • ์ž˜๋ชป๋œ ๊ฒฝ๋กœ๋‚˜ ์ด๋ฏธ์ง€ ์—†์Œ ๊ฐ์ง€ ์‹œ ์•ˆ๋‚ด
    • ๋กœ๊น… ์ง€์› (LOCALAPPDATA\Clifa\logs)

๐Ÿš€ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰

.exe ๋นŒ๋“œ(ํŒŒ์ด์ฌ ์„ค์น˜๋œ ํ™˜๊ฒฝ)

  • C:\Users\[User]\AppData\Local\Clifa ๊ฒฝ๋กœ์— ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ ๋ฐ ์˜์กด ํŒจํ‚ค์ง€ ์ž๋™ ์„ค์น˜๋œ ํ›„ ์ž๋™ ์‹คํ–‰

์ฒ˜์Œ ์‹คํ–‰ ์‹œ ์•ˆ๋‚ด

  • ์„ค์น˜/์ดˆ๊ธฐํ™” ๋™์•ˆ ์ฝ˜์†” ์ฐฝ ๋Œ€์‹  ์ž‘์€ ์„ค์น˜ ์ฐฝ(์Šคํ”Œ๋ž˜์‹œ)์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹จ๊ณ„: 1) ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ โ†’ 2) ์•ฑ ํŒŒ์ผ ์ค€๋น„ โ†’ 3) PyTorch ์„ค์น˜(CUDA/CPU) โ†’ 4) ๊ธฐํƒ€ ํŒจํ‚ค์ง€ โ†’ 5) CLIP ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ โ†’ 6) ์•ฑ ์‹œ์ž‘
  • CLIP ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ: ์„ค์น˜ ๋‹จ๊ณ„์—์„œ ์ด๋ฏธ์ง€ ์ธ์ฝ”๋”(clip-ViT-B-32)์™€ ๋‹ค๊ตญ์–ด ํ…์ŠคํŠธ ์ธ์ฝ”๋”(clip-ViT-B-32-multilingual-v1)๋ฅผ ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์†๋„์— ๋”ฐ๋ผ ์ˆ˜ ๋ถ„ ์†Œ์š”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ค์น˜ ์ง„ํ–‰ ์ƒํ™ฉ์€ ์ฒดํฌ๋ฆฌ์ŠคํŠธ(โณ โ†’ ๐Ÿ”„ โ†’ โœ…)๋กœ ์‹ค์‹œ๊ฐ„ ํ‘œ์‹œ๋˜๋ฉฐ, ๋กœ๊ทธ๋Š” ํŒŒ์ผ๋กœ๋„ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ์„ค์น˜๊ฐ€ ๋๋‚˜๋ฉด ์•ฑ์ด ํŠธ๋ ˆ์ด๋กœ ์ตœ์†Œํ™”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜์„ ๋”๋ธ”ํด๋ฆญํ•˜๋ฉด ์ฐฝ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค๊ตญ์–ด ๊ฒ€์ƒ‰ ์ง€์›

  • Multilingual CLIP ๋ชจ๋ธ ์‚ฌ์šฉ: Sentence-Transformers์˜ clip-ViT-B-32-multilingual-v1 ๋ชจ๋ธ์„ ํ†ตํ•ด 50๊ฐœ ์ด์ƒ ์–ธ์–ด๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์› ์–ธ์–ด: ํ•œ๊ตญ์–ด(ko), ์ผ๋ณธ์–ด(ja), ์ค‘๊ตญ์–ด(zh-cn, zh-tw), ์˜์–ด(en), ๋…์ผ์–ด(de), ํ”„๋ž‘์Šค์–ด(fr), ์ŠคํŽ˜์ธ์–ด(es) ๋“ฑ
  • ๋ฒˆ์—ญ ๋ถˆํ•„์š”: ๋ณ„๋„ ๋ฒˆ์—ญ API ์—†์ด ํ•œ๊ตญ์–ด, ์ผ๋ณธ์–ด ๋“ฑ์œผ๋กœ ๋ฐ”๋กœ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋™์ž‘ ๋ฐฉ์‹:
    • ํ…์ŠคํŠธ ์ฟผ๋ฆฌ๋ฅผ ๋‹ค๊ตญ์–ด CLIP ์ธ์ฝ”๋”๋กœ ์ž„๋ฒ ๋”ฉ ๋ณ€ํ™˜
    • ์ด๋ฏธ์ง€ ์ž„๋ฒ ๋”ฉ๊ณผ์˜ ์œ ์‚ฌ๋„๋ฅผ FAISS๋กœ ๊ณ ์† ๊ฒ€์ƒ‰
    • ๋ณ„๋„ ๋ฒˆ์—ญ ๊ณผ์ • ์—†์ด ์ž…๋ ฅํ•œ ์–ธ์–ด ๊ทธ๋Œ€๋กœ ๊ฒ€์ƒ‰

๋กœ๊ทธ ์œ„์น˜

  • ๋Ÿฐ์ฒ˜ ์„ค์น˜ ๋กœ๊ทธ: %LOCALAPPDATA%\Clifa\logs\launcher.log
  • ์•ฑ ์‹คํ–‰ ๋กœ๊ทธ: %LOCALAPPDATA%\Clifa\logs\controller.log

๋ฌธ์ œ ํ•ด๊ฒฐ(Troubleshooting)

  • ์„ค์น˜ ํ›„ ๋ฐ”๋กœ ๊บผ์ง€๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ๋•Œ:
    • ์‹ค์ œ๋กœ๋Š” ํŠธ๋ ˆ์ด๋กœ ์ตœ์†Œํ™”๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜์„ ๋”๋ธ”ํด๋ฆญํ•ด ์—ด์–ด๋ณด์„ธ์š”.
    • ์œ„ ๋กœ๊ทธ ํŒŒ์ผ(ํŠนํžˆ controller.log)์—์„œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
    • ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ(ํ”„๋ก์‹œ/๋ฐฉํ™”๋ฒฝ)์—์„œ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์ฐจ๋‹จ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
    • ์„ค์น˜ ์ค‘๋‹จ ํ›„ ์žฌ์‹คํ–‰ ์‹œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ๋ณต๊ตฌ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿค ๊ธฐ์—ฌ

  • ๋ฒ„๊ทธ ์ œ๋ณด, ๊ธฐ๋Šฅ ์ œ์•ˆ์€ Issues์—์„œ ํ•ด์ฃผ์„ธ์š”.
  • PR ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ™Œ

About

๐Ÿ” Desktop semantic image search app using multilingual CLIP + FAISS with fast local indexing, real-time progress, and native Korean/English query support.

Topics

Resources

Stars

Watchers

Forks

Contributors

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /