# ACE-Step Gradio 데모 사용자 가이드 **언어 / Language / 语言 / 言語:** [English](../en/GRADIO_GUIDE.md) | [한국어](GRADIO_GUIDE.md) | [中文](../zh/GRADIO_GUIDE.md) | [日本語](../ja/GRADIO_GUIDE.md) --- 이 가이드는 ACE-Step Gradio 웹 인터페이스를 사용한 음악 생성에 대한 포괄적인 문서를 제공하며, 모든 기능과 설정을 포함합니다. ## 목차 - [시작하기](#시작하기) - [서비스 설정](#서비스-설정) - [생성 모드](#생성-모드) - [입력 파라미터](#입력-파라미터) - [고급 설정](#고급-설정) - [결과 섹션](#결과-섹션) - [LoRA 학습](#lora-학습) - [팁과 모범 사례](#팁과-모범-사례) --- ## 시작하기 ### 데모 실행 ```bash # 기본 실행 python app.py # 사전 초기화 포함 python app.py --config acestep-v15-turbo --init-llm # 특정 포트 지정 python app.py --port 7860 ``` ### 인터페이스 개요 Gradio 인터페이스의 레이아웃: 1. **설정** (접이식 아코디언) - 서비스 설정, DiT/LM 파라미터, 출력 옵션 2. **생성 탭** - 메인 작업 공간. 상단에 **생성 모드** 라디오 선택기: - Turbo/SFT 모델: Simple, Custom, Remix, Repaint - Base 모델: Simple, Custom, Remix, Repaint, Extract, Lego, Complete 3. **결과 섹션** - 생성된 오디오 재생, 스코어링, 배치 내비게이션 4. **학습 탭** - 데이터셋 빌더 및 LoRA 학습 --- ## 서비스 설정 ### 모델 선택 | 설정 | 설명 | |------|------| | **체크포인트 파일** | 학습된 모델 체크포인트 선택 (사용 가능한 경우) | | **메인 모델 경로** | DiT 모델 설정 선택 (예: `acestep-v15-turbo`, `acestep-v15-turbo-shift3`) | | **디바이스** | 처리 디바이스: `auto` (권장), `cuda`, 또는 `cpu` | ### 5Hz LM 설정 | 설정 | 설명 | |------|------| | **5Hz LM 모델 경로** | 언어 모델 선택. **사용 가능한 모델은 GPU 티어에 따라 자동 필터링** — 예: 6-8GB GPU는 0.6B만, 24GB+ GPU는 모든 크기(0.6B, 1.7B, 4B) 표시. | | **5Hz LM 백엔드** | `vllm` (더 빠름, VRAM ≥8GB NVIDIA GPU 권장), `pt` (PyTorch, 범용 폴백), 또는 `mlx` (Apple Silicon). **VRAM <8GB GPU에서는 `pt`/`mlx`로 제한** (vllm의 KV 캐시가 메모리를 과도하게 사용하므로). | | **5Hz LM 초기화** | 초기화 시 LM을 로드하려면 체크 (thinking 모드에 필요). **VRAM ≤6GB GPU(Tier 1-2)에서 기본적으로 체크 해제 및 비활성화.** | > **적응형 기본값**: 모든 LM 설정은 GPU의 VRAM 티어에 따라 자동 구성됩니다. 권장 LM 모델, 백엔드, 초기화 상태가 최적 성능을 위해 사전 설정됩니다. 수동으로 변경할 수 있지만, GPU와 호환되지 않는 선택 시 시스템이 경고를 표시합니다. ### 성능 옵션 | 설정 | 설명 | |------|------| | **Flash Attention 사용** | 더 빠른 추론을 위해 활성화 (flash_attn 패키지 필요) | | **CPU로 오프로드** | 유휴 시 모델을 CPU로 오프로드하여 GPU 메모리 절약. **VRAM <20GB GPU에서 자동 활성화.** | | **DiT를 CPU로 오프로드** | DiT 모델을 특별히 CPU로 오프로드. **VRAM <12GB GPU에서 자동 활성화.** | | **INT8 양자화** | INT8 가중치 양자화로 모델 VRAM 사용량 감소. **VRAM <20GB GPU에서 자동 활성화.** | | **모델 컴파일** | 최적화된 추론을 위해 `torch.compile` 활성화. **모든 티어에서 기본 활성화** (양자화 활성 시 필요). | > **티어 인식 설정**: 오프로드, 양자화, 컴파일 옵션은 GPU 티어에 따라 자동 설정됩니다. 전체 티어 테이블은 [GPU_COMPATIBILITY.md](../ko/GPU_COMPATIBILITY.md)를 참조하세요. ### LoRA 어댑터 | 설정 | 설명 | |------|------| | **LoRA 경로** | 학습된 LoRA 어댑터 디렉토리 경로 | | **LoRA 로드** | 지정된 LoRA 어댑터 로드 | | **언로드** | 현재 로드된 LoRA 제거 | | **LoRA 사용** | 추론용 로드된 LoRA 활성화/비활성화 | > **⚠️ 참고:** PEFT와 TorchAO 간 호환성 문제로 양자화된 모델에 LoRA 어댑터를 로드할 수 없습니다. LoRA를 사용해야 하는 경우 어댑터를 로드하기 전에 **INT8 양자화**를 **None**으로 설정하세요. ### 초기화 **서비스 초기화**를 클릭하여 모델을 로드합니다. 상태 박스에 다음을 포함한 진행 상황과 확인이 표시됩니다: - 감지된 GPU 티어 및 VRAM - 최대 허용 시간 및 배치 크기 (LM 초기화 여부에 따라 동적 조정) - 자동 수정된 호환되지 않는 설정에 대한 경고 초기화 후 **오디오 시간** 및 **배치 크기** 슬라이더가 티어 제한을 반영하도록 자동 업데이트됩니다. --- ## 생성 모드 생성 탭 상단의 **생성 모드** 라디오 선택기가 워크플로를 결정합니다. Turbo 및 SFT 모델은 4가지 모드를 제공하고, Base 모델은 3가지를 추가로 제공합니다. ### Simple 모드 빠른 자연어 기반 음악 생성을 위해 설계되었습니다. **사용 방법:** 1. 생성 모드에서 **Simple** 선택 2. "곡 설명" 필드에 자연어 설명 입력 3. 보컬이 필요 없으면 "인스트루멘탈" 옵션 체크 4. 선호하는 보컬 언어 옵션 선택 5. **샘플 생성** 클릭하여 caption, 가사, 메타데이터 생성 6. 확장된 섹션에서 생성된 콘텐츠 확인 7. **음악 생성** 클릭하여 오디오 생성 **설명 예시:** - "조용한 저녁을 위한 부드러운 벵골 러브송" - "강렬한 베이스 드롭이 있는 업비트 일렉트로닉 댄스 뮤직" - "어쿠스틱 기타의 멜랑콜리한 인디 포크" - "연기 자욱한 바에서 연주하는 재즈 트리오" **랜덤 샘플:** 🎲 버튼을 클릭하여 랜덤 예시 설명을 로드합니다. ### Custom 모드 모든 생성 파라미터를 완전히 제어합니다 (text2music). **사용 방법:** 1. 생성 모드에서 **Custom** 선택 2. Caption과 가사 필드를 수동으로 입력 3. 옵션으로 참조 오디오를 업로드하여 스타일 가이던스 4. 옵션 메타데이터 설정 (BPM, 키, 시간 등) 5. 옵션으로 **포맷** 클릭하여 LM으로 입력 향상 6. 필요에 따라 고급 설정 구성 7. **음악 생성** 클릭하여 오디오 생성 ### Remix 모드 기존 오디오의 멜로디 구조를 유지하면서 스타일을 변경합니다. **사용 방법:** 1. 생성 모드에서 **Remix** 선택 2. 소스 오디오 업로드 (리믹스할 곡) 3. 타겟 스타일을 설명하는 Caption 작성 4. 옵션으로 가사 수정 5. **Remix 강도** (0.0-1.0) 조정: 높을수록 = 원본 구조에 가까움 6. **음악 생성** 클릭 **용도:** 커버 버전 생성, 스타일 전이, 곡 변형 생성. ### Repaint 모드 오디오의 특정 시간 구간을 재생성하고 나머지는 유지합니다. **사용 방법:** 1. 생성 모드에서 **Repaint** 선택 2. 소스 오디오 업로드 3. **리페인트 시작**과 **리페인트 끝** 설정 (초; -1은 파일 끝) 4. 리페인트 섹션의 원하는 콘텐츠를 설명하는 Caption 작성 5. **음악 생성** 클릭 **용도:** 문제 있는 섹션 수정, 구간 내 가사 변경, 곡 연장. ### Extract 모드 (Base 모델 전용) 믹스된 오디오에서 특정 악기 트랙을 추출/분리합니다. **사용 방법:** 1. 생성 모드에서 **Extract** 선택 2. 소스 오디오 업로드 3. 드롭다운에서 추출할 **트랙 이름** 선택 4. **음악 생성** 클릭 **사용 가능한 트랙:** vocals, backing_vocals, drums, bass, guitar, keyboard, percussion, strings, synth, fx, brass, woodwinds ### Lego 모드 (Base 모델 전용) 기존 오디오에 새로운 악기 트랙을 추가합니다. **사용 방법:** 1. 생성 모드에서 **Lego** 선택 2. 소스 오디오 업로드 3. 드롭다운에서 추가할 **트랙 이름** 선택 4. 트랙 특성을 설명하는 Caption 작성 5. **음악 생성** 클릭 ### Complete 모드 (Base 모델 전용) 지정된 악기로 부분적인 트랙을 완성합니다 (자동 편곡). **사용 방법:** 1. 생성 모드에서 **Complete** 선택 2. 소스 오디오 업로드 3. 추가할 여러 **트랙 이름** 선택 4. 원하는 스타일을 설명하는 Caption 작성 5. **음악 생성** 클릭 --- ## 입력 파라미터 ### 오디오 입력 | 필드 | 설명 | |------|------| | **참조 오디오** | 스타일/음색 가이던스를 위한 옵션 오디오 (Custom 모드에서 표시) | | **소스 오디오** | Remix, Repaint, Extract, Lego, Complete 모드에 필수 | | **코드로 변환** | 소스 오디오에서 5Hz 시맨틱 코드 추출 | #### LM 코드 힌트 (Custom 모드) 사전 계산된 오디오 시맨틱 코드를 여기에 붙여넣어 생성을 가이드할 수 있습니다. **트랜스크라이브** 버튼을 사용하여 코드를 분석하고 메타데이터를 추출합니다. 소스 오디오 업로드 없이 멜로디 구조를 제어하기 위한 고급 기능입니다. ### 음악 Caption 원하는 음악의 텍스트 설명. 다음에 대해 구체적으로 작성: - 장르와 스타일 - 악기 - 분위기와 느낌 - 템포 느낌 (BPM을 지정하지 않는 경우) **예시:** "일렉 기타, 강렬한 드럼, 캐치한 신스 훅이 있는 업비트 팝 록" 🎲를 클릭하여 랜덤 예시 caption을 로드합니다. ### 가사 구조 태그가 포함된 가사를 입력: ``` [Verse 1] 오늘 거리를 걸으며 네가 했던 말들을 떠올렸어 [Chorus] 나는 앞으로 나아가, 강하게 서서 여기가 내 자리야 [Verse 2] ... ``` **인스트루멘탈 체크박스:** 가사 내용에 관계없이 인스트루멘탈 음악을 생성하려면 체크합니다. **보컬 언어:** 보컬 언어를 선택합니다. 자동 감지 또는 인스트루멘탈 트랙에는 "unknown"을 사용합니다. **포맷 버튼:** 5Hz LM을 사용하여 caption과 가사를 향상시키려면 클릭합니다. ### 옵션 파라미터 | 파라미터 | 기본값 | 설명 | |----------|--------|------| | **BPM** | 자동 | 분당 비트 수 (30-300) | | **키 스케일** | 자동 | 음악 키 (예: "C Major", "Am", "F# minor") | | **박자 기호** | 자동 | 박자 기호: 2 (2/4), 3 (3/4), 4 (4/4), 6 (6/8) | | **오디오 시간** | 자동/-1 | 목표 길이(초) (10-600). -1은 자동 | | **배치 크기** | 2 | 생성할 오디오 변형 수 (1-8) | --- ## 고급 설정 ### DiT 파라미터 | 파라미터 | 기본값 | 설명 | |----------|--------|------| | **추론 스텝** | 8 | 디노이징 스텝. Turbo: 1-20, Base: 1-200 | | **가이던스 스케일** | 7.0 | CFG 강도 (base 모델만). 높을수록 = 프롬프트를 더 따름 | | **시드** | -1 | 랜덤 시드. 배치에는 쉼표로 구분된 값 사용 | | **랜덤 시드** | ✓ | 체크 시 랜덤 시드 생성 | | **오디오 형식** | mp3 | 출력 형식: mp3, flac | | **시프트** | 3.0 | 타임스텝 시프트 계수 (1.0-5.0). turbo에 3.0 권장 | | **추론 방법** | ode | ode (Euler, 더 빠름) 또는 sde (확률적) | | **커스텀 타임스텝** | - | 타임스텝 오버라이드 (예: "0.97,0.76,0.615,0.5,0.395,0.28,0.18,0.085,0") | ### Base 모델 전용 파라미터 | 파라미터 | 기본값 | 설명 | |----------|--------|------| | **ADG 사용** | ✗ | 더 나은 품질을 위해 적응형 듀얼 가이던스 활성화 | | **CFG 구간 시작** | 0.0 | CFG 적용 시작 시점 (0.0-1.0) | | **CFG 구간 끝** | 1.0 | CFG 적용 종료 시점 (0.0-1.0) | ### LM 파라미터 | 파라미터 | 기본값 | 설명 | |----------|--------|------| | **LM 온도** | 0.85 | 샘플링 온도 (0.0-2.0). 높을수록 = 더 창의적 | | **LM CFG 스케일** | 2.0 | LM 가이던스 강도 (1.0-3.0) | | **LM Top-K** | 0 | Top-K 샘플링. 0이면 비활성화 | | **LM Top-P** | 0.9 | 핵 샘플링 (0.0-1.0) | | **LM 네거티브 프롬프트** | "NO USER INPUT" | CFG용 네거티브 프롬프트 | ### CoT (사고의 연쇄) 옵션 | 옵션 | 기본값 | 설명 | |------|--------|------| | **CoT Metas** | ✓ | LM 추론을 통해 메타데이터 생성 | | **CoT Language** | ✓ | LM으로 보컬 언어 감지 | | **제약 디코딩 디버그** | ✗ | 디버그 로깅 활성화 | ### 생성 옵션 | 옵션 | 기본값 | 설명 | |------|--------|------| | **LM 코드 강도** | 1.0 | LM 코드가 생성에 미치는 영향의 강도 (0.0-1.0) | | **자동 스코어** | ✗ | 품질 스코어 자동 계산 | | **자동 LRC** | ✗ | 가사 타임스탬프 자동 생성 | | **LM 배치 청크 크기** | 8 | LM 배치당 최대 항목 수 (GPU 메모리) | ### 메인 생성 컨트롤 | 컨트롤 | 설명 | |--------|------| | **Think** | 코드 생성 및 메타데이터를 위한 5Hz LM 활성화 | | **ParallelThinking** | 병렬 LM 배치 처리 활성화 | | **CaptionRewrite** | LM이 입력 caption을 향상시키도록 함 | | **AutoGen** | 완료 후 다음 배치 자동 시작 | --- ## 결과 섹션 ### 생성된 오디오 배치 크기에 따라 최대 8개의 오디오 샘플이 표시됩니다. 각 샘플에는 다음이 포함됩니다: - **오디오 플레이어** - 생성된 오디오 재생, 일시 정지, 다운로드 - **소스로 전송** - 이 오디오를 소스 오디오 입력으로 전송하여 추가 처리 - **저장** - 오디오와 메타데이터를 JSON 파일로 저장 - **스코어** - 퍼플렉시티 기반 품질 스코어 계산 - **LRC** - 가사 타임스탬프 생성 (LRC 형식) ### 상세 아코디언 "Score & LRC & LM Codes"를 클릭하여 확장하고 다음을 확인: - **LM 코드** - 이 샘플의 5Hz 시맨틱 코드 - **품질 스코어** - 퍼플렉시티 기반 품질 메트릭 - **가사 타임스탬프** - LRC 형식 타이밍 데이터 ### 배치 내비게이션 | 컨트롤 | 설명 | |--------|------| | **◀ 이전** | 이전 배치 보기 | | **배치 인디케이터** | 현재 배치 위치 표시 (예: "배치 1 / 3") | | **다음 배치 상태** | 백그라운드 생성 진행 상황 표시 | | **다음 ▶** | 다음 배치 보기 (AutoGen이 켜져 있으면 생성 트리거) | ### 파라미터 복원 **이 설정을 UI에 적용**을 클릭하여 현재 배치의 모든 생성 파라미터를 입력 필드로 복원합니다. 좋은 결과를 반복하는 데 유용합니다. ### 배치 결과 "배치 결과 및 생성 상세" 아코디언에는 다음이 포함됩니다: - **모든 생성 파일** - 모든 배치의 모든 파일 다운로드 - **생성 상세** - 생성 과정에 대한 상세 정보 --- ## LoRA 학습 LoRA 학습 탭은 커스텀 LoRA 어댑터를 만들기 위한 도구를 제공합니다. > 📖 **전체 단계별 안내** (데이터 준비, 주석, 전처리, 학습, 내보내기)는 [LoRA 학습 튜토리얼](./LoRA_Training_Tutorial.md)을 참조하세요. ### 데이터셋 빌더 탭 #### 1단계: 로드 또는 스캔 **옵션 A: 기존 데이터셋 로드** 1. 이전에 저장한 데이터셋 JSON 경로 입력 2. **로드** 클릭 **옵션 B: 새 디렉토리 스캔** 1. 오디오 폴더 경로 입력 2. **스캔** 클릭하여 오디오 파일 검색 (wav, mp3, flac, ogg, opus) #### 2단계: 데이터셋 설정 | 설정 | 설명 | |------|------| | **데이터셋 이름** | 데이터셋 이름 | | **모두 인스트루멘탈** | 모든 트랙에 보컬이 없는 경우 체크 | | **커스텀 활성화 태그** | 이 LoRA의 스타일을 활성화하는 고유 태그 | | **태그 위치** | 태그를 배치할 위치: 앞에 추가, 뒤에 추가, 또는 caption 대체 | #### 3단계: 자동 라벨링 **모두 자동 라벨링**을 클릭하여 모든 오디오 파일의 메타데이터를 생성: - Caption (음악 설명) - BPM - 키 - 박자 기호 **메타 건너뛰기** 옵션은 LLM 라벨링을 건너뛰고 N/A 값을 사용합니다. #### 4단계: 미리보기 및 편집 슬라이더를 사용하여 샘플을 선택하고 수동 편집: - Caption - 가사 - BPM, 키, 박자 기호 - 언어 - 인스트루멘탈 플래그 **변경 저장**을 클릭하여 샘플을 업데이트합니다. #### 5단계: 데이터셋 저장 저장 경로를 입력하고 **데이터셋 저장**을 클릭하여 JSON으로 내보냅니다. #### 6단계: 전처리 빠른 학습을 위해 데이터셋을 사전 계산 텐서로 변환: 1. 옵션으로 기존 데이터셋 JSON 로드 2. 텐서 출력 디렉토리 설정 3. **전처리** 클릭 이것은 오디오를 VAE 잠재 변수로 인코딩하고, 텍스트를 임베딩으로 인코딩하며, 조건 인코더를 실행합니다. ### LoRA 학습 탭 #### 데이터셋 선택 전처리된 텐서 디렉토리 경로를 입력하고 **데이터셋 로드**를 클릭합니다. #### LoRA 설정 | 설정 | 기본값 | 설명 | |------|--------|------| | **LoRA 랭크 (r)** | 64 | LoRA의 용량. 높을수록 = 더 많은 용량, 더 많은 메모리 | | **LoRA 알파** | 128 | 스케일링 계수 (일반적으로 랭크의 2배) | | **LoRA 드롭아웃** | 0.1 | 정규화를 위한 드롭아웃 비율 | #### 학습 파라미터 | 설정 | 기본값 | 설명 | |------|--------|------| | **학습률** | 1e-4 | 최적화 학습률 | | **최대 에폭** | 500 | 최대 학습 에폭 | | **배치 크기** | 1 | 학습 배치 크기 | | **그래디언트 누적** | 1 | 유효 배치 = batch_size × accumulation | | **N 에폭마다 저장** | 200 | 체크포인트 저장 빈도 | | **시프트** | 3.0 | turbo 모델의 타임스텝 시프트 | | **시드** | 42 | 재현성을 위한 랜덤 시드 | #### 학습 컨트롤 - **학습 시작** - 학습 프로세스 시작 - **학습 중지** - 학습 중단 - **학습 진행** - 현재 에폭과 손실 표시 - **학습 로그** - 상세 학습 출력 - **학습 손실 플롯** - 시각적 손실 곡선 #### LoRA 내보내기 학습 후 최종 어댑터를 내보냅니다: 1. 내보내기 경로 입력 2. **LoRA 내보내기** 클릭 --- ## 팁과 모범 사례 ### 최고 품질을 위해 1. **thinking 모드 사용** - LM 향상 생성을 위해 "Think" 체크박스를 활성화 유지 2. **caption을 구체적으로** - 장르, 악기, 분위기, 스타일 세부 사항 포함 3. **LM이 메타데이터를 감지하도록** - 자동 감지를 위해 BPM/키/시간을 비워 둠 4. **배치 생성 사용** - 2-4개 변형을 생성하고 최적의 것을 선택 ### 더 빠른 생성을 위해 1. **turbo 모델 사용** - `acestep-v15-turbo` 또는 `acestep-v15-turbo-shift3` 선택 2. **추론 스텝을 8로 유지** - turbo에 최적인 기본값 3. **배치 크기 줄이기** - 빠른 결과가 필요하면 배치 크기 낮추기 4. **AutoGen 비활성화** - 배치 생성의 수동 제어 ### 일관된 결과를 위해 1. **특정 시드 설정** - "랜덤 시드" 체크 해제 후 시드 값 입력 2. **좋은 결과 저장** - 재현을 위해 파라미터를 내보내려면 "저장" 사용 3. **"이 설정 적용" 사용** - 좋은 배치에서 파라미터 복원 ### 장시간 음악을 위해 1. **명시적 시간 설정** - 초 단위로 시간 지정 2. **Repaint 모드 사용** - 초기 생성 후 문제 있는 섹션 수정 3. **생성 체인** - "소스로 전송"을 사용하여 이전 결과를 기반으로 구축 ### 스타일 일관성을 위해 1. **LoRA 학습** - 스타일에 맞는 커스텀 어댑터 생성 2. **참조 오디오 사용** - 오디오 업로드에서 스타일 참조 업로드 3. **일관된 caption 사용** - 유사한 설명적 언어 유지 ### 문제 해결 **오디오가 생성되지 않음:** - 모델이 초기화되었는지 확인 (녹색 상태 메시지) - thinking 모드 사용 시 5Hz LM이 초기화되었는지 확인 - 오류 메시지에 대한 상태 출력 확인 **결과 품질이 낮음:** - 추론 스텝 증가 (base 모델의 경우) - 가이던스 스케일 조정 - 다른 시드 시도 - caption을 더 구체적으로 작성 **메모리 부족 (OOM):** - 시스템에 자동 VRAM 관리 (VRAM 가드, 적응형 VAE 디코드, 자동 배치 축소) 포함. 그래도 OOM 발생 시: - 수동으로 배치 크기 줄이기 - CPU 오프로드 활성화 (VRAM <20GB에서 자동 활성화되어야 함) - INT8 양자화 활성화 (VRAM <20GB에서 자동 활성화되어야 함) - LM 배치 청크 크기 줄이기 **LM이 작동하지 않음:** - 초기화 시 "5Hz LM 초기화"가 체크되었는지 확인 (VRAM ≤6GB GPU에서 기본 비활성화) - 유효한 LM 모델 경로가 선택되었는지 확인 (티어 호환 모델만 표시) - vllm 또는 PyTorch 백엔드가 사용 가능한지 확인 (VRAM <8GB에서 vllm 제한) - LM 체크박스가 회색이면 GPU 티어가 LM을 지원하지 않음 — DiT 전용 모드 사용 --- ## 키보드 단축키 Gradio 인터페이스는 표준 웹 단축키를 지원합니다: - **Tab** - 입력 필드 간 이동 - **Enter** - 텍스트 입력 제출 - **Space** - 체크박스 토글 --- ## 언어 지원 인터페이스는 여러 UI 언어를 지원합니다: - **영어** (en) - **중국어** (zh) - **일본어** (ja) - **한국어** (ko) 서비스 설정 섹션에서 선호하는 언어를 선택하세요. --- 자세한 내용은 다음을 참조하세요: - 메인 README: [`../../README.md`](../../README.md) - REST API 문서: [`../en/API.md`](../en/API.md) - Python 추론 API: [`../en/INFERENCE.md`](../en/INFERENCE.md)