모델 병합 예제 (Model Merging Examples)
이 워크플로우의 아이디어는 여러 모델 병합을 통해 복잡한 워크플로우를 수행하고, 결과에 만족하면 CheckpointSave 노드를 활성화하여 체크포인트를 저장하는 것입니다. 기본적으로 CheckpointSave 노드는 체크포인트를 output/checkpoints/ 폴더에 저장합니다.
이 노드는 다음에서 찾을 수 있습니다: advanced -> model_merging
첫 번째 예제는 두 개의 다른 체크포인트를 간단히 병합하는 기본 예제입니다.
이 이미지를 ComfyUI에서 로드하여 전체 워크플로우를 확인할 수 있습니다.
ComfyUI에서는 저장된 체크포인트가 생성에 사용된 전체 워크플로우를 포함하고 있어, 이미지를 로드하듯 UI에서 로드하여 생성에 사용된 전체 워크플로우를 확인할 수 있습니다.
이 예제는 unet의 입력, 중간 및 출력 블록이 다른 비율을 가질 수 있는 간단한 블록 병합을 사용하여 3개의 다른 체크포인트를 병합하는 예제입니다:
Loras는 모델 가중치에 대한 패치이므로 모델에 병합될 수 있습니다:
또한 모델 가중치를 빼고 더할 수 있으며, 이 예제에서는 비인페인트 모델에서 인페인트 모델을 생성하는 데 사용됩니다. 공식은 다음과 같습니다: (inpaint_model - base_model) * 1.0 + other_model
다른 UI에서 “Add Difference” 옵션에 익숙하다면, ComfyUI에서 이렇게 수행할 수 있습니다.
중요한 점은 모델이 하드웨어에서 추론에 사용되는 정밀도로 병합 및 저장된다는 것입니다. 일반적으로 16비트 부동 소수점으로 저장됩니다. 32비트 부동 소수점으로 병합하려면 ComfyUI를 다음과 같이 실행하세요: —force-fp32
고급 병합 (Advanced Merging)
CosXL
여기서는 일반 SDXL 모델을 병합하여 CosXL 모델을 생성하는 예제를 보여줍니다. 필요한 것은 CosXL 기본 모델, SDXL 기본 모델 및 변환하려는 SDXL 모델입니다. 이 예제에서는 albedobase-xl을 사용했습니다.