Z-image / Lumina 2 / Newbie fp16 ComfyUI plugin for old Nvidia GPUs
세부 정보
파일 다운로드
모델 설명
Lumina 2 기반 모델을 오래된 Nvidia GPU(RTX 20xx 이하)에서 fp16을 '안전하게' 사용하도록 패치하는 매우 '더러운' ComfyUI 투어 플러그인입니다.
Lumina 2 기반 모델은 Z-Image, Lumina 2, NewBie를 의미합니다.
이 모델들은 fp16을 지원하지 않으며, 오버플로우가 발생해 출력에 NaN(검정색/순수 노이즈 이미지)이 나타납니다. ComfyUI v0.4부터 오버플로우를 클램프하기 시작했지만(주로 z-image에 적용, 약간 오버플로우됨), 이는 품질에 영향을 주며 Lumina 2(심각하게 오버플로우됨)와 NewBie(심각하게 오버플로우됨 + 텍스트 인코더에서도 오버플로우됨)에서는 작동하지 않습니다.
이 패치는 fp16 모드에서 오버플로우를 '안전하게' 처리할 수 있습니다. 오버플로우가 감지되면 자동으로 해당 레이어를 fp32로 다시 계산합니다. 클램프는 사용하지 않으며, 따라서 동일한 결과를 얻을 수 있습니다.
이 플러그인이 일반적인 플러그인으로 GitHub에 업로드되지 않은 이유는 매우 '더러운' 방식이기 때문입니다. '더러운'이란 ComfyUI 핵심 코드를 핫/문키 패치하는 방식을 의미합니다. 프로그래밍 관점에서 이 접근법은 최악입니다. 하지만 제가 생각할 수 있는 가장 간단한 방법입니다. 저는 '구워지기' 싫습니다.
ComfyUI v0.7에서 테스트되었습니다.
사용 방법:
이 파일을 ComfyUI의 "custom_nodes" 디렉토리에 넣으세요.
텍스트 편집기로 열고 설정을 수정하세요.
ComfyUI를 재시작하세요.
워크플로우에 "ModelComputeDtype" 노드를 추가하고 dtype을 "fp16"로 설정하세요.
Z-Image에 대한 참고사항:
모든 오버플로우는 '안전하게' 처리할 수 있습니다. 클램프 없음. 동일한 결과.
"weight 감소"를 활성화하면 오버플로우가 전혀 발생하지 않습니다.
Lumina 2에 대한 참고사항:
모든 오버플로우는 '안전하게' 처리할 수 있습니다. 클램프 없음. 동일한 결과.
"weight 감소"를 활성화하면 단 2개의 레이어만 다시 계산하면 됩니다(총 30개 중).
NewBie에 대한 참고사항:
NewBie는 fp16을 지원하지 않습니다. Lumina 2와 동일합니다. 왜 저자가 diffusers에서 fp16 지원을 주장하는지는 모르겠습니다. 복사-붙여넣기 오타일 가능성이 있습니다.
텍스트 임베딩은 클램프되어야 합니다. DiT에 도달하기 전에 이미 오버플로우가 발생하기 때문입니다. 하지만 이는 극단적인 아웃라이어일 가능성이 있습니다(0.01%). 테스트 중 차이를 발견하지 못했으므로 여전히 동일한 결과입니다.
"weight 감소"를 활성화하면 단 2개의 레이어만 다시 계산하면 됩니다(총 40개 중).
"weight 감소"에 대한 참고사항:
선형 대수 트릭으로 대부분(90%)의 오버플로우를 피할 수 있습니다. 최종 결과에 영향을 주지 않습니다(기본적으로: A x B가 오버플로우하면 A / 32 x B x 32).
모델 가중치는 로딩 시 수정됩니다. 따라서 LoRA를 지원하지 않습니다. 기본 모델 가중치가 변경되었기 때문에 LoRA 가중치 패치는 무효화됩니다.
그러나 사전에 LoRA를 병합하고 체크포인트를 저장할 수 있습니다. 참고로, 체크포인트 생성 시 이 기능을 비활성화해야 합니다.
fp16/bf16/scaled fp8 모델을 지원합니다. 순수 fp8/gguf 모델은 지원하지 않습니다.

