KJNodes/loragenerated

LoraReduceRank

이 노드는 kohya-ss의 sd-scripts에 있는 resize_lora를 기반으로 합니다.

Lora Reduce Rank

lora_name
COMBO
new_rank
8
dynamic_method
disabled
dynamic_param
0.20
output_dtype
match_original
verbose
KJNodes

LoraReduceRank 노드는 kohya-ss의 sd-scripts에 있는 resize_lora를 기반으로 합니다.

LoraReduceRank 노드는 LoRA 모델의 랭크(Rank)를 낮추는 도구입니다. 핵심 기능은 기존 LoRA 모델을 읽어 내부 매개변수 행렬의 차원을 조정하여 모델 파일 크기와 계산 요구 사항을 줄이고, 처리된 새 모델을 출력 디렉토리에 저장하는 것입니다.

노드 기능

이 노드는 kohya-ss의 sd-scripts에 있는 resize_lora.py 스크립트를 기반으로 구현되었습니다. 특이값 비율, 누적합, Frobenius 노름 또는 특이값 곡선에서 엘보우 포인트(꺾임점) 감지를 기반으로 하는 방법을 포함한 다양한 동적 랭크 감소 방법을 지원하며, 사용자가 고정된 새 랭크를 지정하거나 동적 임계값을 설정하여 적절한 랭크를 자동으로 결정할 수 있습니다. 노드는 다양한 데이터 정밀도 형식을 처리할 수 있으며 원본 모델과 호환되는 메타데이터를 유지합니다.

노드 매개변수 설명 - LoraReduceRank

연결 입력 (Inputs)

매개변수 이름데이터 타입필수기본값범위/옵션설명
lora_nameCOMBO--로드된 LoRA 모델 목록에서 랭크 감소 처리가 필요한 대상 모델 파일을 선택합니다.

컨트롤 매개변수 (Parameters)

매개변수 이름데이터 타입필수기본값범위/옵션설명
dynamic_methodCOMBOdisabled"disabled", "sv_ratio", "sv_cumulative", "sv_fro", "sv_knee"새 알파와 차원을 동적으로 결정하는 데 사용할 방법입니다. sv_knee는 특이값 곡선에서 엘보우 포인트를 찾습니다.
output_dtypeCOMBOmatch_original"match_original", "fp16", "bf16", "fp32"LoRA를 저장할 데이터 타입입니다: match_original, fp16, bf16 또는 fp32.
new_rankINT81 - 4096 (단계: 1)LoRA의 크기를 조정할 새 랭크입니다. dynamic_method를 사용할 때 최대 랭크로 작동합니다.
dynamic_paramFLOAT0.20.0 - 2.0 (단계: 0.01)동적 방법에 대한 매개변수입니다. sv_knee의 경우: 감도(1.0=표준 knee, <1.0=더 공격적/더 낮은 랭크, >1.0=더 보수적).
verboseBOOLEANTrue-콘솔에 상세한 처리 과정 로그를 출력할지 여부를 제어합니다. 활성화(True)하면 디버깅 및 랭크 감소 세부 사항 파악에 도움이 됩니다.

사용 시나리오

실제 워크플로에서 LoRA 모델 파일이 너무 크거나 추론 속도가 너무 느린 경우 이 노드를 사용할 수 있습니다. 예를 들어, 고랭크 LoRA를 로드하여 스타일화 생성을 수행한 후 이 노드에 연결하고, 더 낮은 new_rank 값을 설정한 후 실행하면 출력 폴더에서 후속 프로세스에서 사용할 수 있는 더 작고 효율적인 새 LoRA 파일을 얻을 수 있습니다.

주의 사항

이것은 실험적인 노드입니다. 랭크 감소 작업은 손실 압축 방식이며, 랭크를 지나치게 낮추면 LoRA 모델의 효과에 상당한 영향을 미칠 수 있습니다. 노드 자체는 텐서를 출력하지 않으며 파일 저장 작업만 수행합니다.

LoraReduceRank 노드 소스 코드 링크

LoraReduceRank 노드는 ComfyUI-KJNodes 노드 패키지에서 가져왔습니다.

댓글

GitHub로 로그인하고 토론에 참여하세요.

댓글을 불러오는 중…