Spaces:
Running
A newer version of the Gradio SDK is available:
6.9.0
ACE-Step 1.5 LoRA ํ์ต ํํ ๋ฆฌ์ผ
ํ๋์จ์ด ์๊ตฌ์ฌํญ
| VRAM | ์ค๋ช |
|---|---|
| 16 GB (์ต์) | ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋, ๊ธด ๊ณก์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ด ๋ฐ์ํ ์ ์์ต๋๋ค |
| 20 GB ์ด์ (๊ถ์ฅ) | ์ ์ฒด ๊ธธ์ด์ ๊ณก์ ์ฒ๋ฆฌ ๊ฐ๋ฅ. ํ์ต ์ค VRAM ์ฌ์ฉ๋์ ๋ณดํต 17 GB ์์ค์ ๋๋ค |
์ฐธ๊ณ : ํ์ต ์์ ์ ์ ์ฒ๋ฆฌ ๋จ๊ณ์์ VRAM์ ํ๋ณดํ๊ธฐ ์ํด Gradio๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฌ์์ํด์ผ ํ ์ ์์ต๋๋ค. ๊ตฌ์ฒด์ ์ธ ์์ ์ ์ดํ ๋จ๊ณ์์ ์๋ดํฉ๋๋ค.
๋ฉด์ฑ ์กฐํญ
๋ณธ ํํ ๋ฆฌ์ผ์ ๋์ ํ์ฑ์ธ (NayutalieN) ์ ์จ๋ฒ ใใฆใฟใณๆใใใฎ็ฉไฝY (์ด 13๊ณก)์ ๋ฐ๋ชจ๋ก ์ฌ์ฉํ๋ฉฐ, 500 ์ํฌํฌ(๋ฐฐ์น ์ฌ์ด์ฆ 1)๋ก ํ์ตํ์ต๋๋ค. ๋ณธ ํํ ๋ฆฌ์ผ์ LoRA ํ์ธํ๋ ๊ธฐ์ ์ ์ดํดํ๊ธฐ ์ํ ๊ต์ก ๋ชฉ์ ์ผ๋ก๋ง ์ฌ์ฉ๋ฉ๋๋ค. ์์ ์ ์์์ผ๋ก LoRA๋ฅผ ํ์ตํด ์ฃผ์ธ์.
๊ฐ๋ฐ์๋ก์ ๋์ ํ์ฑ์ธ์ ์ํ์ ๋งค์ฐ ์ข์ํ์ฌ ์จ๋ฒ ํ๋๋ฅผ ์์๋ก ์ ํํ์ต๋๋ค. ๊ถ๋ฆฌ ๋ณด์ ์๋ถ๊ป์ ๋ณธ ํํ ๋ฆฌ์ผ์ด ํฉ๋ฒ์ ์ธ ๊ถ๋ฆฌ๋ฅผ ์นจํดํ๋ค๊ณ ํ๋จํ์๋ฉด ์ฆ์ ์ฐ๋ฝ ์ฃผ์ธ์. ์ ํจํ ํต์ง๋ฅผ ๋ฐ์ ํ ๊ด๋ จ ์ฝํ ์ธ ๋ฅผ ์ญ์ ํ๊ฒ ์ต๋๋ค.
๊ธฐ์ ์ ํฉ๋ฆฌ์ ์ด๊ณ ํฉ๋ฒ์ ์ผ๋ก ์ฌ์ฉ๋์ด์ผ ํฉ๋๋ค. ์ํฐ์คํธ์ ์ฐฝ์๋ฌผ์ ์กด์คํ๊ณ , ์์ ์ํฐ์คํธ์ ๋ช ์, ๊ถ๋ฆฌ ๋๋ ์ด์ต์ ์์์ํค๊ฑฐ๋ ํด์น๋ ํ์๋ฅผ ํ์ง ๋ง์ธ์.
๋ฐ์ดํฐ ์ค๋น
ํ: ํ๋ก๊ทธ๋๋ฐ์ ์ต์ํ์ง ์์ ๊ฒฝ์ฐ, ์ด ๋ฌธ์๋ฅผ Claude Code / Codex CLI / Cursor / Copilot ๋ฑ์ AI ์ฝ๋ฉ ๋๊ตฌ์ ์ ๋ฌํ์ฌ ์์ ์ ๋์ ์ํํ๊ฒ ํ ์ ์์ต๋๋ค.
๊ฐ์
๊ฐ ๊ณก์ ํ์ต ๋ฐ์ดํฐ๋ ๋ค์ ํญ๋ชฉ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- ์ค๋์ค ํ์ผ โ
.mp3,.wav,.flac,.ogg,.opusํ์ ์ง์ - ๊ฐ์ฌ โ ์ค๋์ค์ ๋์ผํ ์ด๋ฆ์
.lyrics.txtํ์ผ (ํ์ ํธํ์ ์ํด.txt๋ ์ง์) - ์ด๋
ธํ
์ด์
๋ฐ์ดํฐ โ
caption,bpm,keyscale,timesignature,language๋ฑ์ ๋ฉํ๋ฐ์ดํฐ
์ด๋ ธํ ์ด์ ๋ฐ์ดํฐ ํ์
์์ ํ ์ด๋ ธํ ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ ํ๊ณ ์๋ค๋ฉด, JSON ํ์ผ์ ์์ฑํ์ฌ ์ค๋์ค ๋ฐ ๊ฐ์ฌ์ ๊ฐ์ ๋๋ ํ ๋ฆฌ์ ๋ฐฐ์นํ ์ ์์ต๋๋ค. ํ์ผ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
dataset/
โโโ song1.mp3 # ์ค๋์ค
โโโ song1.lyrics.txt # ๊ฐ์ฌ
โโโ song1.json # ์ด๋
ธํ
์ด์
(์ ํ)
โโโ song1.caption.txt # ์บก์
(์ ํ, JSON์ ํฌํจํ ์๋ ์์)
โโโ song2.mp3
โโโ song2.lyrics.txt
โโโ song2.json
โโโ ...
JSON ํ์ผ ๊ตฌ์กฐ (๋ชจ๋ ํ๋๋ ์ ํ ์ฌํญ):
{
"caption": "A high-energy J-pop track with synthesizer leads and fast tempo",
"bpm": 190,
"keyscale": "D major",
"timesignature": "4",
"language": "ja"
}
์ด๋ ธํ ์ด์ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ, ์ดํ ์น์ ์์ ์๊ฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ทจ๋ํ ์ ์์ต๋๋ค.
๊ฐ์ฌ
๊ฐ์ฌ๋ฅผ ์ค๋์ค ํ์ผ๊ณผ ๋์ผํ ์ด๋ฆ์ .lyrics.txt ํ์ผ๋ก ์ ์ฅํ๊ณ ๊ฐ์ ๋๋ ํ ๋ฆฌ์ ๋ฐฐ์นํ์ธ์. ๊ฐ์ฌ์ ์ ํ์ฑ์ ํ์ธํด ์ฃผ์ธ์.
์ค์บ ์ ๊ฐ์ฌ ํ์ผ ๊ฒ์ ์ฐ์ ์์:
{ํ์ผ๋ช }.lyrics.txt(๊ถ์ฅ){ํ์ผ๋ช }.txt(ํ์ ํธํ)
๊ฐ์ฌ ์ ์ฌ
๊ธฐ์กด ๊ฐ์ฌ ํ ์คํธ๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ค์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฌํ ์ ์์ต๋๋ค:
| ๋๊ตฌ | ๊ตฌ์กฐํ ํ๊ทธ | ์ ํ๋ | ์ฌ์ฉ ๋์ด๋ | ๋ฐฐํฌ ๋ฐฉ์ |
|---|---|---|---|---|
| acestep-transcriber | ์์ | ์ค๋ฅ ๊ฐ๋ฅ์ฑ ์์ | ๋์ (๋ชจ๋ธ ๋ฐฐํฌ ํ์) | ์์ฒด ํธ์คํ |
| Gemini | ์์ | ์ค๋ฅ ๊ฐ๋ฅ์ฑ ์์ | ๋ฎ์ | ์ ๋ฃ API |
| Whisper | ์์ | ์ค๋ฅ ๊ฐ๋ฅ์ฑ ์์ | ๋ณดํต | ์์ฒด ํธ์คํ / ์ ๋ฃ API |
| ElevenLabs | ์์ | ์ค๋ฅ ๊ฐ๋ฅ์ฑ ์์ | ๋ณดํต | ์ ๋ฃ API (๋ฌด๋ฃ ํฌ๋ ๋ง ์ ๊ณต) |
๋ณธ ํ๋ก์ ํธ๋ scripts/lora_data_prepare/์ ํด๋น ์ ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๊ณตํฉ๋๋ค:
whisper_transcription.pyโ OpenAI Whisper API๋ฅผ ํตํ ์ ์ฌelevenlabs_transcription.pyโ ElevenLabs Scribe API๋ฅผ ํตํ ์ ์ฌ
๋ ์คํฌ๋ฆฝํธ ๋ชจ๋ process_folder() ๋ฉ์๋๋ฅผ ํตํ ํด๋ ์ผ๊ด ์ฒ๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค.
๊ฒํ ๋ฐ ์ ์ (ํ์)
์ ์ฌ๋ ๊ฐ์ฌ์๋ ์ค๋ฅ๊ฐ ํฌํจ๋ ์ ์์ผ๋ฉฐ, ๋ฐ๋์ ์๋์ผ๋ก ๊ฒํ ํ๊ณ ์์ ํด์ผ ํฉ๋๋ค.
LRC ํ์์ ๊ฐ์ฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ํ์์คํฌํ๋ฅผ ์ ๊ฑฐํด์ผ ํฉ๋๋ค. ๋ค์์ ๊ฐ๋จํ ์ ์ ์์์ ๋๋ค:
import re
def clean_lrc_content(lines):
"""LRC ํ์ผ ๋ด์ฉ์ ์ ์ ํ๊ณ ํ์์คํฌํ๋ฅผ ์ ๊ฑฐ"""
result = []
for line in lines:
line = line.strip()
if not line:
continue
# ํ์์คํฌํ ์ ๊ฑฐ [mm:ss.x] [mm:ss.xx] [mm:ss.xxx]
cleaned = re.sub(r"\[\d{2}:\d{2}\.\d{1,3}\]", "", line)
result.append(cleaned)
# ๋๋ถ๋ถ ๋น ์ค ์ ๊ฑฐ
while result and not result[-1]:
result.pop()
return result
๊ตฌ์กฐํ ํ๊ทธ (์ ํ)
๊ฐ์ฌ์ ๊ตฌ์กฐํ ํ๊ทธ([Verse], [Chorus] ๋ฑ)๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด, ๋ชจ๋ธ์ด ๊ณก์ ๊ตฌ์กฐ๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ํ์ตํ ์ ์์ต๋๋ค. ๊ตฌ์กฐํ ํ๊ทธ ์์ด๋ ์ ์์ ์ผ๋ก ํ์ต์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ: Gemini๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ๊ฐ์ฌ์ ๊ตฌ์กฐํ ํ๊ทธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์์:
[Intro]
La la la...
[Verse 1]
Walking down the empty street
Echoes dancing at my feet
[Chorus]
We are the stars tonight
Shining through the endless sky
[Bridge]
Close your eyes and feel the sound
์๋ ์ด๋ ธํ ์ด์
1. BPM ๋ฐ Key ์ทจ๋
Key-BPM-Finder๋ฅผ ์ฌ์ฉํ์ฌ BPM๊ณผ ํค ์ด๋ ธํ ์ด์ ์ ์จ๋ผ์ธ์ผ๋ก ์ทจ๋ํฉ๋๋ค:
์น ํ์ด์ง๋ฅผ ์ด๊ณ Browse my files๋ฅผ ํด๋ฆญํ์ฌ ์ฒ๋ฆฌํ ์ค๋์ค ํ์ผ์ ์ ํํฉ๋๋ค (ํ ๋ฒ์ ๋๋ฌด ๋ง์ด ์ฒ๋ฆฌํ๋ฉด ๋ฉ์ถ ์ ์์ผ๋ฏ๋ก, ๋ถํ ์ฒ๋ฆฌ ํ CSV๋ฅผ ๋ณํฉํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค). ์ฒ๋ฆฌ๋ ๋ก์ปฌ์์ ์ํ๋๋ฉฐ ์๋ฒ์ ์ ๋ก๋๋์ง ์์ต๋๋ค.

์ฒ๋ฆฌ ์๋ฃ ํ, Export CSV๋ฅผ ํด๋ฆญํ์ฌ CSV ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.

CSV ํ์ผ ๋ด์ฉ ์์:
File,Artist,Title,BPM,Key,Camelot song1.wav,,,190,D major,10B song2.wav,,,128,A minor,8ACSV ํ์ผ์ ๋ฐ์ดํฐ์ ํด๋์ ๋ฐฐ์นํฉ๋๋ค. ์บก์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด
Camelot์ด ๋ค์ ์ ์ด์ ์ถ๊ฐํ์ธ์.
2. Caption ์ทจ๋
๋ค์ ๋ฐฉ๋ฒ์ผ๋ก ๊ณก์ ์บก์ ์ ์ทจ๋ํ ์ ์์ต๋๋ค:
- acestep-5Hz-lm ์ฌ์ฉ (0.6B / 1.7B / 4B) โ Gradio UI์ Auto Label ๊ธฐ๋ฅ์์ ํธ์ถ (์ดํ ๋จ๊ณ ์ฐธ์กฐ)
- Gemini API ์ฌ์ฉ โ ์คํฌ๋ฆฝํธ
scripts/lora_data_prepare/gemini_caption.py๋ฅผ ์ฐธ์กฐ.process_folder()๋ก ์ผ๊ด ์ฒ๋ฆฌ๋ฅผ ์ง์ํ๋ฉฐ, ๊ฐ ์ค๋์ค ํ์ผ์ ๋ํด ๋ค์์ ์์ฑํฉ๋๋ค:{ํ์ผ๋ช }.lyrics.txtโ ๊ฐ์ฌ{ํ์ผ๋ช }.caption.txtโ ์บก์ ์ค๋ช
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
๋ฐ์ดํฐ๊ฐ ์ค๋น๋๋ฉด Gradio UI๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๊ฒํ ๋ฐ ์ ์ฒ๋ฆฌ๋ฅผ ์ํํฉ๋๋ค.
์ค์: ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์๋น์ค ์ฌ์ ์ด๊ธฐํ๋ฅผ ๋นํ์ฑํํ๋๋ก ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์์ ํด์ผ ํฉ๋๋ค:
- Windows (
start_gradio_ui.bat):if not defined INIT_SERVICE set INIT_SERVICE=--init_service true๋ฅผif not defined INIT_SERVICE set INIT_SERVICE=--init_service false๋ก ๋ณ๊ฒฝ- Linux/macOS (
start_gradio_ui.sh):: "${INIT_SERVICE:=--init_service true}"๋ฅผ: "${INIT_SERVICE:=--init_service false}"๋ก ๋ณ๊ฒฝ
Gradio UI๋ฅผ ์์ํฉ๋๋ค (์์ ์คํฌ๋ฆฝํธ ๋๋ acestep/acestep_v15_pipeline.py ์ง์ ์คํ).
๋จ๊ณ 1: ๋ชจ๋ธ ๋ก๋
LM์ผ๋ก ์บก์ ์ ์์ฑํด์ผ ํ๋ ๊ฒฝ์ฐ: ์ด๊ธฐํ ์ ์ฌ์ฉํ LM ๋ชจ๋ธ(acestep-5Hz-lm-0.6B / 1.7B / 4B)์ ์ ํํฉ๋๋ค.

LM์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ: LM ๋ชจ๋ธ์ ์ ํํ์ง ๋ง์ธ์.

๋จ๊ณ 2: ๋ฐ์ดํฐ ๋ก๋
LoRA Training ํญ์ผ๋ก ์ ํํ๊ณ , ๋ฐ์ดํฐ์ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ ํ Scan์ ํด๋ฆญํฉ๋๋ค.
์ค์บ๋๋ ๋ค์ ํ์ผ์ ์๋์ผ๋ก ์ธ์ํฉ๋๋ค:
| ํ์ผ | ์ค๋ช |
|---|---|
*.mp3 / *.wav / *.flac / ... |
์ค๋์ค ํ์ผ |
{ํ์ผ๋ช
}.lyrics.txt (๋๋ {ํ์ผ๋ช
}.txt) |
๊ฐ์ฌ |
{ํ์ผ๋ช
}.caption.txt |
์บก์ ์ค๋ช |
{ํ์ผ๋ช
}.json |
์ด๋ ธํ ์ด์ ๋ฉํ๋ฐ์ดํฐ (caption / bpm / keyscale / timesignature / language) |
*.csv |
BPM / Key ์ผ๊ด ์ด๋ ธํ ์ด์ (Key-BPM-Finder์์ ๋ด๋ณด๋ด๊ธฐ) |
๋จ๊ณ 3: ๋ฐ์ดํฐ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฐ ์กฐ์
- Duration โ ์ค๋์ค ํ์ผ์์ ์๋์ผ๋ก ์ฝ๊ธฐ
- Lyrics โ ๋์ผํ ์ด๋ฆ์
.lyrics.txtํ์ผ์ด ํ์ (.txt๋ ์ง์) - Labeled โ ์บก์ ์ด ์์ผ๋ฉด โ , ์์ผ๋ฉด โ๋ก ํ์
- BPM / Key / Caption โ JSON ๋๋ CSV ํ์ผ์์ ๋ก๋
- ๋ฐ์ดํฐ์ ์ด ๋ชจ๋ ์ธ์คํธ๋ฃจ๋ฉํ์ด ์๋ ๊ฒฝ์ฐ, All Instrumental ์ฒดํฌ๋ฅผ ํด์ ํ์ธ์
- Format Lyrics ๋ฐ Transcribe Lyrics ๊ธฐ๋ฅ์ ํ์ฌ ๋นํ์ฑํ ์ํ์ ๋๋ค (acestep-transcriber ๋ฏธ์ฐ๋์ผ๋ก ์ธํด LM ์ง์ ์ฌ์ฉ ์ ํ๊ฐ ๋ฐ์ ๊ฐ๋ฅ)
- Custom Trigger Tag๋ฅผ ์
๋ ฅํ์ธ์ (ํ์ฌ ํจ๊ณผ๊ฐ ์ ํ์ ์ด๋ฉฐ,
Replace Caption์ด์ธ์ ์ต์ ์ด๋ฉด ๊ด์ฐฎ์ต๋๋ค) - Genre Ratio๋ ์บก์ ๋์ ์ฅ๋ฅด๋ฅผ ์ฌ์ฉํ๋ ์ํ ๋น์จ์ ์ ์ดํฉ๋๋ค. ํ์ฌ LM์ด ์์ฑํ๋ ์ฅ๋ฅด ์ค๋ช ์ ์บก์ ์ ๋นํด ๋ถ์กฑํ๋ฏ๋ก 0์ผ๋ก ์ ์งํ์ธ์
๋จ๊ณ 4: Auto Label Data
- ์ด๋ฏธ ์บก์ ์ด ์๋ ๊ฒฝ์ฐ, ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค
- ๋ฐ์ดํฐ์ ์บก์ ์ด ์๋ ๊ฒฝ์ฐ, LM ์ถ๋ก ์ ํตํด ์์ฑํ ์ ์์ต๋๋ค
- BPM / Key ๊ฐ์ด ์๋ ๊ฒฝ์ฐ, ๋จผ์ Key-BPM-Finder๋ก ์ทจ๋ํ์ธ์. LM์ผ๋ก ์ง์ ์์ฑํ๋ฉด ํ๊ฐ์ด ๋ฐ์ํฉ๋๋ค
๋จ๊ณ 5: ๋ฐ์ดํฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฐ ํธ์ง
ํ์ํ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฅผ ํญ๋ชฉ๋ณ๋ก ๊ฒํ ํ๊ณ ์์ ํ ์ ์์ต๋๋ค. ๊ฐ ๋ฐ์ดํฐ ํธ์ง ํ ๋ฐ๋์ ์ ์ฅ์ ํด๋ฆญํ์ธ์.
๋จ๊ณ 6: ๋ฐ์ดํฐ์ ์ ์ฅ
์ ์ฅ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๊ณ ๋ฐ์ดํฐ์ ์ JSON ํ์ผ๋ก ์ ์ฅํฉ๋๋ค.
๋จ๊ณ 7: ์ ์ฒ๋ฆฌ๋ฅผ ํตํ Tensor ํ์ผ ์์ฑ
์ฃผ์: ์ด์ ์ LM์ผ๋ก ์บก์ ์ ์์ฑํ๊ณ VRAM์ด ๋ถ์กฑํ ๊ฒฝ์ฐ, ๋จผ์ Gradio๋ฅผ ์ฌ์์ํ์ฌ VRAM์ ํ๋ณดํ์ธ์. ์ฌ์์ ์ LM ๋ชจ๋ธ์ ์ ํํ์ง ๋ง์ธ์. ๏ฟฝ๏ฟฝ์์ ํ, ์ ์ฅ๋ JSON ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๊ณ ๋ก๋ํฉ๋๋ค.
Tensor ํ์ผ ์ ์ฅ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๊ณ ์ ์ฒ๋ฆฌ๋ฅผ ์์ํ ํ ์๋ฃ๋ฅผ ๊ธฐ๋ค๋ฆฝ๋๋ค.
ํ์ต
์ฃผ์: Tensor ํ์ผ ์์ฑ ํ์๋ VRAM์ ํ๋ณดํ๊ธฐ ์ํด Gradio๋ฅผ ์ฌ์์ํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
- Train LoRA ํญ์ผ๋ก ์ ํํ๊ณ , Tensor ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ์ฌ ๋ฐ์ดํฐ์ ์ ๋ก๋ํฉ๋๋ค.
- ํ์ต ํ๋ผ๋ฏธํฐ์ ์ต์ํ์ง ์์ ๊ฒฝ์ฐ, ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํด๋ ๋ฉ๋๋ค.
ํ๋ผ๋ฏธํฐ ์ฐธ๊ณ
| ํ๋ผ๋ฏธํฐ | ์ค๋ช | ๊ถ์ฅ๊ฐ |
|---|---|---|
| Max Epochs | ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์กฐ์ | ์ฝ 100๊ณก โ 500 ์ํฌํฌ; 10โ20๊ณก โ 800 ์ํฌํฌ (์ฐธ๊ณ ์ฉ) |
| Batch Size | VRAM์ด ์ถฉ๋ถํ๋ฉด ์ฆ๊ฐ ๊ฐ๋ฅ | 1 (๊ธฐ๋ณธ๊ฐ), VRAM์ด ์ถฉ๋ถํ๋ฉด 2 ๋๋ 4 |
| Save Every N Epochs | ์ฒดํฌํฌ์ธํธ ์ ์ฅ ๊ฐ๊ฒฉ | Max Epochs๊ฐ ์์ผ๋ฉด ์งง๊ฒ, ํฌ๋ฉด ๊ธธ๊ฒ ์ค์ |
์ ์์น๋ ์ฐธ๊ณ ์ฉ์ ๋๋ค. ์ค์ ์ํฉ์ ๋ง๊ฒ ์กฐ์ ํด ์ฃผ์ธ์.
- Start Training์ ํด๋ฆญํ๊ณ ํ์ต ์๋ฃ๋ฅผ ๊ธฐ๋ค๋ฆฝ๋๋ค.
LoRA ์ฌ์ฉ
- ํ์ต ์๋ฃ ํ Gradio๋ฅผ ์ฌ์์ํ๊ณ ๋ชจ๋ธ์ ๋ค์ ๋ก๋ํฉ๋๋ค (LM ๋ชจ๋ธ์ ์ ํํ์ง ๋ง์ธ์).
- ๋ชจ๋ธ ์ด๊ธฐํ ์๋ฃ ํ, ํ์ต๋ LoRA ๊ฐ์ค์น๋ฅผ ๋ก๋ํฉ๋๋ค.

- ์์ ์์ฑ์ ์์ํฉ๋๋ค.
์ถํํฉ๋๋ค! LoRA ํ์ต์ ์ ์ฒด ๊ณผ์ ์ ์๋ฃํ์ต๋๋ค.
๊ณ ๊ธ ํ์ต: Side-Step
LoRA ํ์ต์ ๋ ์ธ๋ฐํ๊ฒ ์ ์ดํ๊ณ ์ถ๋ค๋ฉด โ ์์ ๋ ํ์์คํ
์ํ๋ง, LoKR ์ด๋ํฐ, CLI ๊ธฐ๋ฐ ์ํฌํ๋ก์ฐ, VRAM ์ต์ ํ, ๊ทธ๋๋์ธํธ ๊ฐ๋ ๋ถ์ ๋ฑ โ ์ปค๋ฎค๋ํฐ์์ ๊ฐ๋ฐํ Side-Step ํดํท์ด ๊ณ ๊ธ ๋์์ ์ ๊ณตํฉ๋๋ค. ๋ฌธ์๋ ์ด ์ ์ฅ์์ docs/sidestep/ ๋๋ ํ ๋ฆฌ์ ํฌํจ๋์ด ์์ต๋๋ค.
| ์ฃผ์ | ์ค๋ช |
|---|---|
| Getting Started | ์ค์น, ์ฌ์ ์๊ตฌ์ฌํญ, ์ฒซ ์คํ ์ค์ |
| End-to-End Tutorial | ์๋ณธ ์ค๋์ค์์ ์์ฑ๊น์ง ์ ์ฒด ๊ณผ์ ์๋ด |
| Dataset Preparation | JSON ์คํค๋ง, ์ค๋์ค ํ์, ๋ฉํ๋ฐ์ดํฐ ํ๋, ์ปค์คํ ํ๊ทธ |
| Training Guide | LoRA vs LoKR, ์์ ๋ชจ๋ vs ๋ฐ๋๋ผ ๋ชจ๋, ํ์ดํผํ๋ผ๋ฏธํฐ ๊ฐ์ด๋ |
| Using Your Adapter | ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ, Gradio์์ ๋ก๋, LoKR ์ ํ์ฌํญ |
| VRAM Optimization Guide | VRAM ์ต์ ํ ์ ๋ต ๋ฐ GPU ํฐ์ด๋ณ ์ค์ |
| Estimation Guide | ํ๊ฒ ํ์ต์ ์ํ ๊ทธ๋๋์ธํธ ๊ฐ๋ ๋ถ์ |
| Shift and Timestep Sampling | ํ์ต ํ์์คํ ์๋ ์๋ฆฌ์ Side-Step์ ์ฐจ์ด์ |
| Preset Management | ๋ด์ฅ ํ๋ฆฌ์ , ์ ์ฅ/๋ก๋/๊ฐ์ ธ์ค๊ธฐ/๋ด๋ณด๋ด๊ธฐ |
| The Settings Wizard | ์์๋ ์ค์ ์ ์ฒด ์ฐธ์กฐ |
| Model Management | ์ฒดํฌํฌ์ธํธ ๊ตฌ์กฐ ๋ฐ ํ์ธํ๋ ๋ชจ๋ธ ์ง์ |
| Windows Notes | Windows ์ ์ฉ ์ค์ ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ |






