LoraReduceRank
이 노드는 kohya-ss의 sd-scripts에 있는 resize_lora를 기반으로 합니다.
Lora Reduce Rank
LoraReduceRank 노드는 kohya-ss의 sd-scripts에 있는 resize_lora를 기반으로 합니다.
LoraReduceRank 노드는 LoRA 모델의 랭크(Rank)를 낮추는 도구입니다. 핵심 기능은 기존 LoRA 모델을 읽어 내부 매개변수 행렬의 차원을 조정하여 모델 파일 크기와 계산 요구 사항을 줄이고, 처리된 새 모델을 출력 디렉토리에 저장하는 것입니다.
노드 기능
이 노드는 kohya-ss의 sd-scripts에 있는 resize_lora.py 스크립트를 기반으로 구현되었습니다. 특이값 비율, 누적합, Frobenius 노름 또는 특이값 곡선에서 엘보우 포인트(꺾임점) 감지를 기반으로 하는 방법을 포함한 다양한 동적 랭크 감소 방법을 지원하며, 사용자가 고정된 새 랭크를 지정하거나 동적 임계값을 설정하여 적절한 랭크를 자동으로 결정할 수 있습니다. 노드는 다양한 데이터 정밀도 형식을 처리할 수 있으며 원본 모델과 호환되는 메타데이터를 유지합니다.
노드 매개변수 설명 - LoraReduceRank
연결 입력 (Inputs)
| 매개변수 이름 | 데이터 타입 | 필수 | 기본값 | 범위/옵션 | 설명 |
|---|---|---|---|---|---|
lora_name | COMBO | 예 | - | - | 로드된 LoRA 모델 목록에서 랭크 감소 처리가 필요한 대상 모델 파일을 선택합니다. |
컨트롤 매개변수 (Parameters)
| 매개변수 이름 | 데이터 타입 | 필수 | 기본값 | 범위/옵션 | 설명 |
|---|---|---|---|---|---|
dynamic_method | COMBO | 예 | disabled | "disabled", "sv_ratio", "sv_cumulative", "sv_fro", "sv_knee" | 새 알파와 차원을 동적으로 결정하는 데 사용할 방법입니다. sv_knee는 특이값 곡선에서 엘보우 포인트를 찾습니다. |
output_dtype | COMBO | 예 | match_original | "match_original", "fp16", "bf16", "fp32" | LoRA를 저장할 데이터 타입입니다: match_original, fp16, bf16 또는 fp32. |
new_rank | INT | 예 | 8 | 1 - 4096 (단계: 1) | LoRA의 크기를 조정할 새 랭크입니다. dynamic_method를 사용할 때 최대 랭크로 작동합니다. |
dynamic_param | FLOAT | 예 | 0.2 | 0.0 - 2.0 (단계: 0.01) | 동적 방법에 대한 매개변수입니다. sv_knee의 경우: 감도(1.0=표준 knee, <1.0=더 공격적/더 낮은 랭크, >1.0=더 보수적). |
verbose | BOOLEAN | 예 | True | - | 콘솔에 상세한 처리 과정 로그를 출력할지 여부를 제어합니다. 활성화(True)하면 디버깅 및 랭크 감소 세부 사항 파악에 도움이 됩니다. |
사용 시나리오
실제 워크플로에서 LoRA 모델 파일이 너무 크거나 추론 속도가 너무 느린 경우 이 노드를 사용할 수 있습니다. 예를 들어, 고랭크 LoRA를 로드하여 스타일화 생성을 수행한 후 이 노드에 연결하고, 더 낮은 new_rank 값을 설정한 후 실행하면 출력 폴더에서 후속 프로세스에서 사용할 수 있는 더 작고 효율적인 새 LoRA 파일을 얻을 수 있습니다.
주의 사항
이것은 실험적인 노드입니다. 랭크 감소 작업은 손실 압축 방식이며, 랭크를 지나치게 낮추면 LoRA 모델의 효과에 상당한 영향을 미칠 수 있습니다. 노드 자체는 텐서를 출력하지 않으며 파일 저장 작업만 수행합니다.
LoraReduceRank 노드 소스 코드 링크
LoraReduceRank 노드는 ComfyUI-KJNodes 노드 패키지에서 가져왔습니다.
댓글
GitHub로 로그인하고 토론에 참여하세요.