테마 전환

ComfyUI IPAdapter로 참조 이미지의 스타일과 구도를 제어하는 방법

Easton editorial illustration: one dominant three-stage IPAdapter pipeline: reference image card, CLIP Vision encoder chip, generated output canvas

"cubiq/ComfyUI_IPAdapter_plus README에는 IPAdapter와 CLIP Vision 조합, Unified Loader 파일명, FaceID 의존성, 권장 시작 weight가 정리되어 있습니다."

반 고흐의 《별이 빛나는 밤》을 참조해 같은 화풍의 풍경을 만들고 싶은데, 텍스트 Prompt를 아무리 고쳐도 원하는 결과가 나오지 않는다고 가정해 보겠습니다. ComfyUI IPAdapter로 바꿔 참조 이미지를 넣고 weight를 1.0으로 설정했더니 얼굴은 알아보기 어렵게 뭉개지고 구도까지 참조 이미지에 끌려갑니다.

IPAdapter에서 어려운 부분은 설치 자체가 아니라 모델을 올바르게 조합하고, 매개변수를 조정하며, 영향을 원하는 범위로 제한하는 것입니다. 아래에서는 가장 흔한 오류를 막는 모델–CLIP Vision 조합표, 실용적인 weight_type 설정, 세 가지 제어 방식의 역할, 그리고 SD1.5·SDXL·FLUX별 경로를 설명합니다.

1. IPAdapter란 무엇인가: 이미지 한 장을 즉석 LoRA처럼 사용하기

ComfyUI에서 IPAdapter는 image-to-image conditioning 방식으로 작동합니다. 참조 이미지의 시각적 특징을 인코딩한 다음 생성 과정에 주입합니다. cubiq 저장소는 이를 이미지 한 장으로 사용하는 LoRA와 비슷하다고 설명합니다.

학습 없이 이미지 한 장의 특징을 즉시 전달한다는 점이 IPAdapter와 LoRA의 핵심 차이입니다. LoRA는 여러 장의 학습 이미지와 학습 과정, 보통 수십에서 수백 MB 크기의 모델 파일이 필요합니다. IPAdapter는 참조 이미지를 생성 시점에 바로 인코딩하므로 새 모델을 따로 학습할 필요가 없습니다.

내부 메커니즘도 다릅니다. LoRA는 가중치 행렬을 조정해 생성 중 모델 매개변수를 바꿉니다. IPAdapter는 참조 이미지를 조건 벡터로 바꾸고 텍스트 Prompt 조건과 함께 cross-attention 계층에 주입합니다. 경로는 다르지만 둘 다 생성 결과를 제어합니다.

1.1 세 가지 제어 방식의 역할

ComfyUI에서 자주 사용하는 세 가지 제어 방식은 역할이 다릅니다.

제어 방식제어 대상필요한 것장점
IPAdapter스타일/참조/피사체 특징참조 이미지 한 장학습 없이 즉시 전달
ControlNet구조/포즈/선화/깊이구조 맵(OpenPose/Canny/Depth)구도와 포즈를 정밀하게 제어
LoRA스타일/캐릭터/화풍학습된 모델 파일반복 사용과 안정적인 출력

각 방식에 맞는 사용 사례는 다음과 같습니다.

  • IPAdapter가 적합한 경우: 스타일을 빠르게 시험하거나, 한 번만 참조하거나, 모델을 학습하고 싶지 않을 때입니다. 예를 들어 《별이 빛나는 밤》 같은 화풍의 풍경을 만들 때 이미지를 바로 넣을 수 있습니다.
  • ControlNet이 적합한 경우: 포즈, 구도, 에지를 정확히 제어할 때입니다. 인물을 특정 자세로 유지하려면 OpenPose 구조 맵을 사용합니다.
  • LoRA가 적합한 경우: 같은 스타일이나 캐릭터를 여러 번 재사용할 때입니다. 캐릭터 LoRA를 학습하면 이후 생성에서도 해당 캐릭터를 안정적으로 재현할 수 있습니다.

세 방식은 함께 사용할 수도 있습니다. “별이 빛나는 밤의 화풍 + 지정된 포즈의 인물”을 만들 때 IPAdapter로 스타일을 옮기고 ControlNet OpenPose로 포즈를 제어할 수 있습니다. 구체적인 결합 방법은 ComfyUI ControlNet 사용법을 참고하세요.

2. 가장 흔한 오류: 모델과 CLIP Vision 조합

IPAdapter 노드를 설치했는데 오류가 나거나 효과가 전혀 없다면, 대부분 CLIP Vision 모델을 받지 않았거나 잘못된 폴더에 두었거나 IPAdapter와 호환되지 않는 모델을 선택한 경우입니다.

2.1 CLIP Vision 모델 목록

IPAdapter에는 두 모델이 필요합니다. 하나는 IPAdapter 자체이고, 다른 하나는 참조 이미지를 조건으로 인코딩하는 CLIP Vision 모델입니다. 두 모델을 올바르게 조합하지 않으면 효과가 없거나 오류가 발생합니다.

CLIP Vision 모델파일명호환 IPAdapter 모델
vit-hCLIP-ViT-H-14-laion2B-s32B-b79K.safetensors대부분의 SD1.5 모델 + 이름에 *_vit-h가 붙은 SDXL 모델
bigGCLIP-ViT-bigG-14-laion2B-39B-b160k.safetensorsvit-G 모델(예: ip-adapter_sd15_vit-G, ip-adapter_sdxl)

vit-h 모델은 약 1.7GB, bigG 모델은 약 3.5GB입니다. 다운로드할 때 올바른 Hugging Face 저장소인지 확인해 다른 CLIP 모델을 받지 않도록 주의합니다.

2.2 필수 폴더와 파일명

  • CLIP Vision 폴더: ComfyUI/models/clip_vision/
  • IPAdapter 폴더: ComfyUI/models/ipadapter/(직접 만들어야 함)
  • 파일명 규칙: Unified Loader는 공식 목록의 파일명을 그대로 사용해야 하며, Legacy Loader에서는 파일명을 바꿔도 모델을 직접 선택할 수 있습니다.

폴더가 없으면 노드가 오류를 내거나 모델을 찾지 못합니다. models/ipadapter/는 기본으로 만들어지지 않으므로 직접 생성합니다.

mkdir -p ComfyUI/models/ipadapter

2.3 자주 발생하는 조합 오류

  1. ip-adapter_sdxl에 vit-h를 연결함: 이름에 vit-h가 없는 ip-adapter_sdxl은 bigG가 필요합니다. vit-h를 연결하면 오류가 나거나 결과가 크게 어긋납니다.
  2. ip-adapter-plus_sd15만 받고 CLIP Vision은 받지 않음: IPAdapter 모델만 다운로드하면 노드가 로드되어도 생성 결과에 참조 특징이 나타나지 않습니다.
  3. 파일명을 바꿔 Unified Loader가 인식하지 못함: 예를 들어 ip-adapter-plus_sd15.safetensorsmy_ipadapter.safetensors로 바꾸면 자동 인식되지 않습니다. 공식 이름으로 되돌리거나 Legacy Loader에서 직접 선택합니다.

2.4 확인 목록

오류가 발생하면 다음 순서로 확인합니다.

  1. ComfyUI/models/clip_vision/에서 CLIP Vision 모델과 파일명을 확인합니다.
  2. ComfyUI/models/ipadapter/가 존재하고 IPAdapter 모델이 들어 있는지 확인합니다.
  3. 조합표를 보고 IPAdapter와 CLIP Vision이 호환되는지 확인합니다.
  4. Unified Loader가 인식할 수 있도록 공식 파일명을 유지했는지 확인합니다.

모델 조합은 IPAdapter 초기 오류의 가장 흔한 원인입니다. 다운로드 전에 표를 확인하면 대부분의 시작 문제를 피할 수 있습니다.

3. IPAdapter 모델 등급: 빠른 선택

용도에 따라 모델 등급을 고릅니다. 기본 모델은 강도가 중간이고 plus는 더 강하며, plus-face와 full-face는 얼굴 참조에 특화되어 있습니다.

3.1 SD1.5 모델

모델강도적합한 용도
ip-adapter_sd15중간강한 스타일을 원하지 않는 기본 스타일 전달
ip-adapter-plus_sd15강함스타일 전달이 뚜렷해 대부분의 경우에 권장
ip-adapter-plus-face_sd15인물 특화얼굴 특징을 유지하는 인물 생성
ip-adapter-full-face_sd15더 강하지만 항상 더 좋지는 않음매우 강한 얼굴 제어가 필요할 때 시험

plus 모델은 기본 모델보다 참조 효과가 강하지만 구도까지 끌고 갈 가능성도 큽니다. 가벼운 스타일 전달만 원한다면 기본 모델이 더 적합합니다.

plus-facefull-face는 얼굴 참조용입니다. full-face가 더 강하지만 결과가 항상 더 좋은 것은 아니며 얼굴이 과도하게 변형될 수 있습니다. 먼저 plus-face를 사용하고 부족할 때 full-face를 시험하세요.

3.2 SDXL 모델

아래 SDXL 모델은 모두 vit-h CLIP Vision을 사용합니다. bigG를 쓰는 접미사 없는 ip-adapter_sdxl과 혼동하지 마세요.

모델CLIP Vision 조합
ip-adapter_sdxl_vit-hvit-h
ip-adapter-plus_sdxl_vit-hvit-h
ip-adapter-plus-face_sdxl_vit-hvit-h

이 SDXL IPAdapter 모델은 이름에 vit-h가 붙고 vit-h CLIP Vision과 결합합니다. 접미사가 없는 ip-adapter_sdxl은 다른 모델이며 bigG가 필요합니다.

3.3 커뮤니티 확장 모델

ip_plus_composition_sd15/sdxl은 스타일과 내용을 무시하고 구도만 전달하는 커뮤니티 확장 모델입니다. 참조 이미지의 레이아웃은 유지하되 스타일과 피사체를 새로 만들 때 사용할 수 있습니다. composition weight_type과 함께 사용하면 구도 제어가 더 명확해집니다.

3.4 선택 권장 사항

  • 스타일 전달이 주목적: 효과가 뚜렷한 plus 모델을 사용합니다.
  • 인물 생성: 얼굴 특징을 보존하는 plus-face 모델을 사용합니다.
  • 가벼운 스타일 전달: 스타일이 과도해지지 않도록 기본 모델을 사용합니다.
  • 구도만 전달: ip_plus_compositioncomposition weight_type을 사용합니다.
  • 같은 참조를 반복 사용: 매번 IPAdapter를 쓰는 대신 LoRA 학습을 고려합니다.

4. weight_type 활용: 스타일, 구도, 피사체 분리

기본 설정의 IPAdapter는 참조 이미지의 스타일, 구도, 피사체 특징을 모두 전달합니다. 그 결과 스타일만 원했는데 구도까지 따라오거나, 얼굴을 유지하려다 뭉개질 수 있습니다. weight_type은 전달 범위를 제어합니다.

4.1 weight_type 옵션

weight_type효과적합한 용도
style transfer스타일만 전달새 이미지의 구도는 직접 정하고 참조 스타일만 사용할 때
composition구도만 전달참조 구도는 유지하고 스타일과 내용은 새로 정할 때
precise style transfer정밀한 스타일 전달구도 영향을 최대한 줄이고 스타일만 전달할 때 권장
기본값(weight_type 없음)전체 전달스타일 + 구도 + 피사체 특징을 모두 전달

weight_typeIPAdapter Advanced 노드에서 설정합니다. IPAdapter Unified Loader만 사용해 weight_type을 조정하지 않으면 전체 전달 모드가 적용됩니다. 정밀하게 제어하려면 Advanced 또는 IPAdapter Style & Composition 같은 전용 조합 노드가 필요합니다.

4.2 모드별 차이

  • style transfer: 스타일 위주로 전달하지만 구도 특징이 일부 섞일 수 있어 제어가 덜 정밀합니다.
  • precise style transfer: 구도 영향을 최소화하고 스타일을 정밀하게 전달합니다. 우선 선택하는 것이 좋습니다.
  • composition: 스타일과 내용을 무시하고 구도만 전달합니다. 참조의 구도 틀만 유지하고 나머지는 직접 정할 때 적합합니다.

4.3 목적별 설정

  • 스타일만 전달: IPAdapter Advanced에서 precise style transfer 또는 style transfer를 선택하고 weight를 0.7~0.9로 시작합니다.
  • 구도만 전달: composition과 커뮤니티 모델 ip_plus_composition_sd15/sdxl을 함께 사용하면 더 좋습니다. 구도 제어는 얼굴을 뭉개는 경우가 적어 weight를 0.9~1.0까지 사용할 수 있습니다.
  • 얼굴 유지: plus-face 모델을 사용하고 weight를 0.8 이하로 낮춥니다. weight_type은 기본값이나 style transfer를 쓰고 composition은 피합니다.
  • 여러 참조 이미지: 쓰지 않는 경로의 weight는 0으로 둡니다. 한 이미지는 precise style transfer, 다른 이미지는 composition으로 정해 스타일과 구도를 나누고 각 weight를 조정합니다.

4.4 weight_type과 weight 조합

목적weight_type권장 weight
스타일만 전달하고 구도는 직접 지정precise style transfer0.7~0.9
구도만 전달하고 스타일은 직접 지정composition0.9~1.0
스타일 전달 + 얼굴 유지기본값 + plus-face 모델0.6~0.8
여러 참조 이미지 결합경로별 weight_type 지정용도에 맞게 조정하고 미사용 경로는 0

weight_type은 무엇을 전달할지 결정하는 핵심 매개변수입니다. 구도를 따라오게 하고 싶지 않다면 기본값 대신 precise style transfer를 선택합니다. 얼굴을 유지하려면 weight를 낮추고 plus-face 모델을 사용합니다.

5. weight를 조정하는 감각

기본값 1.0은 너무 강해 얼굴을 알아보기 어렵게 만들거나 참조 특징이 텍스트 Prompt를 완전히 덮을 수 있습니다.

5.1 시작값

처음부터 1.0을 쓰지 말고 0.8에서 시작하는 것이 좋습니다. weight=1.0에서는 참조 특징이 과도하게 증폭되어 얼굴이 뭉개지고 텍스트 Prompt의 설명도 약해질 수 있습니다.

steps를 20에서 30으로 늘리면 얼굴 뭉개짐이 줄어들 수 있지만, 근본적인 해결책은 weight를 낮추는 것입니다. steps를 늘리면 생성 시간이 증가하지만 weight 조정은 시간을 늘리지 않습니다.

5.2 weight 범위

weight효과문제
1.0가장 강한 전달얼굴 뭉개짐, Prompt 압도, 구도 이탈
0.8~0.9강한 전달균형점이며 대부분의 경우 권장
0.5~0.7중간 전달스타일이 약하지만 여러 참조를 결합하기 좋음
0.3~0.5가벼운 전달미세 조정용이며 순수 Prompt 생성에 가까움

weight가 너무 낮으면 참조 특징이 약하거나 전혀 나타나지 않습니다. 너무 높으면 참조가 텍스트 Prompt를 덮습니다. 0.8은 안전한 시작점입니다.

5.3 steps와의 관계

weight가 높다면 steps를 늘려 얼굴 뭉개짐을 완화할 수 있습니다. weight가 낮다면 steps를 줄여 시간을 절약할 수 있습니다.

구체적인 권장값은 다음과 같습니다.

  • weight=1.0 → 최소 30, 필요하면 40 steps
  • weight=0.80.9 → 2530 steps
  • weight=0.50.7 → 2025 steps
  • weight=0.3~0.5 → 20 steps

steps는 많을수록 무조건 좋은 것이 아닙니다. 40을 넘으면 개선은 작아지고 생성 시간은 크게 늘어납니다. steps를 계속 늘리기보다 weight를 먼저 조정합니다.

5.4 다른 매개변수와 조합

  • weight + weight_type: weight는 강도, weight_type은 범위를 정합니다. 구도 전달 여부를 weight_type으로 먼저 정한 다음 weight를 조정합니다.
  • weight + CFG Scale: CFG Scale은 텍스트 Prompt의 비중을 정합니다. weight가 높으면 CFG Scale을 7에서 9 정도로 높여 텍스트 비중을 보완할 수 있습니다. weight가 낮으면 기본값 7을 유지해도 됩니다.
  • weight + 여러 참조 이미지: 이미지가 여러 장이면 각 weight를 낮춰 충돌을 피합니다. 예를 들어 두 이미지에 각각 0.81.0을 주지 말고 0.50.6을 줍니다.

5.5 반복 가능한 조정 순서

0.8은 안전한 시작점입니다. 먼저 0.8과 30 steps로 한 장을 생성한 뒤 결과에 따라 올리거나 내립니다. 처음부터 1.0을 사용하지 마세요.

조정 순서:

  1. weight=0.8, steps=30으로 기준 이미지를 생성합니다.
  2. 참조 특징이 약함 → weight를 0.9로 올립니다.
  3. 참조 특징이 너무 강하거나 얼굴이 뭉개짐 → weight를 0.7로 낮춥니다.
  4. 구도가 참조 이미지에 끌려감 → weight_type을 precise style transfer로 바꿉니다.

weight는 IPAdapter에서 가장 중요한 조정값입니다. 0.8에서 시작해 결과를 보며 조금씩 바꾸세요.

6. 노드 설치와 설정

6.1 설치 단계

  1. 저장소 복제: ComfyUI/custom_nodes/에서 다음 명령을 실행합니다.

    git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus
  2. 폴더 생성: 기본으로 존재하지 않는 ComfyUI/models/ipadapter/를 직접 만듭니다.

    mkdir -p ComfyUI/models/ipadapter
  3. 모델 다운로드:

    • CLIP Vision 모델은 ComfyUI/models/clip_vision/에 저장합니다.
    • IPAdapter 모델은 ComfyUI/models/ipadapter/에 저장합니다.
    • 다운로드 전에 2장의 조합표를 확인합니다.
  4. ComfyUI 다시 시작: 다시 시작하면 노드 목록에 IPAdapter 관련 노드가 표시됩니다.

설치 후 추가되는 주요 노드:

  • IPAdapter Unified Loader
  • IPAdapter Advanced
  • IPAdapter Encoder
  • IPAdapter Style & Composition
  • IPAdapter Precise Style Transfer

6.2 주요 노드

IPAdapter Unified Loader: 공식 파일명을 기준으로 모델을 자동 인식하는 통합 로더입니다. 대부분의 경우 이 노드를 권장합니다. IPAdapter와 호환 CLIP Vision을 자동으로 로드하므로 직접 조합하는 수고가 줄어듭니다.

매개변수:

  • ipadapter_file: IPAdapter 모델을 선택합니다. 공식 파일명이면 자동 인식됩니다.
  • clip_vision: CLIP Vision 모델을 선택하며 자동으로 조합됩니다.
  • lora: FaceID 모델을 사용할 때 호환 LoRA를 자동으로 로드합니다.

IPAdapter Advanced: weight_type, start_at, end_at을 조정해 전달 범위와 적용 구간을 제어하는 고급 노드입니다. 정밀 제어의 핵심입니다.

매개변수:

  • weight: 참조 이미지 강도이며 0.8에서 시작하는 것이 좋습니다.
  • weight_type: 전달 범위(style transfer / composition / precise style transfer)를 정합니다.
  • start_at: 생성 과정에서 적용을 시작하는 지점입니다. 0~1 사이이며 0.2는 20% 지점부터 적용한다는 뜻입니다.
  • end_at: 적용을 끝내는 지점입니다. 0~1 사이이며 0.8은 80% 지점에서 끝난다는 뜻입니다.

start_at=0.2, end_at=0.8이면 전체 생성 과정의 20%부터 80% 구간에서만 IPAdapter가 작동하고 앞뒤 구간에는 참조 조건이 적용되지 않습니다.

IPAdapter Encoder: 참조 이미지를 IPAdapter가 사용할 조건 벡터로 인코딩합니다. 일반적으로 직접 조정할 필요는 없습니다.

6.3 Legacy Loader와 Unified Loader

  • Unified Loader: 공식 파일명을 요구하고 자동으로 로드하므로 대부분의 경우에 적합합니다.
  • Legacy Loader: 파일명을 자유롭게 쓸 수 있지만 모델을 직접 선택해야 합니다. 이름을 바꾸거나 특정 모델 버전을 시험할 때 적합합니다.

공식 파일명으로 다운로드했다면 Unified Loader가 편리합니다. 파일명을 바꿨거나 특정 버전을 시험한다면 Legacy Loader에서 직접 선택하세요.

6.4 기본 워크플로 구성

기본 IPAdapter 워크플로는 다음과 같이 노드를 연결합니다.

Load Checkpoint → IPAdapter Unified Loader → IPAdapter Advanced → KSampler → VAE Decode → Save Image

                    Load Image (참조 이미지)

구체적인 단계:

  1. 기본 모델을 로드합니다(Load Checkpoint).
  2. IPAdapter 모델을 로드합니다(IPAdapter Unified Loader).
  3. 참조 이미지를 로드합니다(Load Image).
  4. IPAdapter 조건을 적용합니다(IPAdapter Advanced).
  5. 이미지를 생성합니다(KSampler).
  6. 이미지를 디코딩합니다(VAE Decode).
  7. 결과를 저장합니다(Save Image).

노드가 빠졌을 때 설치하는 방법은 ComfyUI 워크플로 재사용 가이드를 참고하세요.

7. FLUX IPAdapter 경로: 실험적인 선택지

FLUX의 IPAdapter 노드는 SD와 완전히 다르므로 cubiq 패키지를 사용할 수 없습니다. 현재 널리 쓰이는 두 방식은 모두 beta 단계입니다.

7.1 XLabs-AI 방식

  • 노드: Flux Load IPAdapter + Apply Flux IPAdapter
  • 폴더: ComfyUI/models/xlabs/ipadapters/이며 models/ipadapter/가 아닙니다.
  • 상태: beta이며 한 번에 좋은 결과가 보장되지 않아 여러 번 생성하고 ip strength를 조정해야 합니다.
  • 라이선스: 가중치는 FLUX.1 [dev] 비상업 라이선스를 따르므로 상업적 사용에 주의합니다.

XLabs-AI는 대표적인 FLUX IPAdapter 방식입니다. 설치 순서는 다음과 같습니다.

  1. XLabs 노드 패키지를 custom_nodes/에 복제합니다.
  2. FLUX IPAdapter 모델을 models/xlabs/ipadapters/에 다운로드합니다.
  3. SD 모델이 아닌 FLUX 모델을 로드합니다.
  4. Flux Load IPAdapterApply Flux IPAdapter 노드를 사용합니다.

매개변수:

  • ip_strength: SD IPAdapter의 weight와 비슷한 참조 강도입니다. 1.0 대신 0.8~0.9에서 시작합니다.
  • 여러 번 생성하며 조정해야 하고, 첫 결과가 바로 좋을 것이라고 기대하지 않습니다.

7.2 Shakker-Labs 방식

  • 노드: Apply IPAdapter Flux Model
  • 매개변수: weight(강도) / start_percent / end_percent(적용 구간)
  • 폴더: ComfyUI/custom_nodes/comfyui-ipadapter-flux/에 복제합니다.

Shakker-Labs는 또 다른 FLUX IPAdapter 노드입니다. 설치 순서는 다음과 같습니다.

  1. git clone https://github.com/Shakker-Labs/ComfyUI-IPAdapter-Flux로 Shakker-Labs 노드 패키지를 복제합니다.
  2. FLUX IPAdapter 모델을 로드합니다.
  3. Apply IPAdapter Flux Model 노드를 사용합니다.

매개변수:

  • weight: 강도이며 0.8~0.9에서 시작합니다.
  • start_percent: SD의 start_at과 비슷한 적용 시작 백분율입니다.
  • end_percent: SD의 end_at과 비슷한 적용 종료 백분율입니다.

7.3 FLUX와 SD 노드의 차이

비교 항목SD(cubiq)FLUX(XLabs/Shakker)
노드 패키지ComfyUI_IPAdapter_plusXLabs 또는 Shakker-Labs 노드
모델 폴더models/ipadapter/models/xlabs/ipadapters/
상태안정적이며 사실상 표준beta, 실험적
라이선스오픈 소스FLUX.1 [dev] 비상업

7.4 FLUX IPAdapter 권장 사항

FLUX IPAdapter 생태계는 비교적 새롭고 아직 실험 단계입니다. 한 번에 성공한다고 보장할 수 없으므로 여러 번 시험하고 매개변수를 조정해야 합니다.

  1. 지원 사례가 많은 XLabs 방식부터 시험합니다.
  2. ip_strength(weight)는 1.0이 아니라 0.8~0.9에서 시작합니다.
  3. 여러 번 생성하면서 매개변수를 조정합니다.
  4. 상업적 사용 전 FLUX.1 [dev] 비상업 라이선스 제한을 반드시 확인합니다.

FLUX와 SD IPAdapter는 매개변수 의미, 노드, 모델 폴더가 서로 다릅니다. cubiq 노드로 FLUX 모델을 로드하면 오류가 나거나 아무 효과가 없을 수 있습니다.

8. FaceID 요약: 얼굴 참조용 선택지

FaceID는 얼굴 참조에 특화된 IPAdapter 분기입니다. insightface 라이브러리를 설치해야 하며, 대부분의 FaceID 모델에는 models/loras/에 두는 전용 LoRA도 필요합니다. Unified Loader는 파일명을 기준으로 호환 LoRA를 자동으로 로드합니다.

FaceID, InstantID, ReActor의 비교와 실전 사용법은 별도의 얼굴 일관성 가이드에서 다룰 수 있으므로 여기서는 역할만 정리합니다.

9. IPAdapter, ControlNet, LoRA의 역할 분담과 결합

세 제어 방식은 역할이 달라 함께 사용할 수 있습니다. 여러 방식을 겹칠 때는 특징 충돌을 피하도록 각 weight를 낮춰야 합니다.

9.1 세 방식 비교

제어 방식제어 대상필요한 것장점
IPAdapter스타일/참조/피사체 특징참조 이미지 한 장학습 없이 즉시 전달
ControlNet구조/포즈/선화/깊이구조 맵(OpenPose/Canny/Depth)구도와 포즈를 정밀하게 제어
LoRA스타일/캐릭터/화풍학습된 모델 파일반복 사용과 안정적인 출력

세 방식은 서로 대체하지 않습니다. IPAdapter는 스타일을 빠르게 시험하고, ControlNet은 구조를 정밀하게 제어하며, LoRA는 스타일이나 캐릭터를 안정적으로 반복 사용합니다.

9.2 결합 예시

예시 1: 참조 스타일 + 포즈 제어

목표: “별이 빛나는 밤 화풍의 인물을 지정된 포즈로 생성”

  • IPAdapter: 스타일 전달, weight=0.7~0.8, weight_type=precise style transfer
  • ControlNet OpenPose: 인물 포즈 제어, weight=0.8~1.0
  • 텍스트 Prompt: 인물 특징과 배경 세부 묘사

권장 설정:

  • IPAdapter weight를 0.7~0.8로 낮춰 스타일이 포즈 제어를 압도하지 않게 합니다.
  • ControlNet weight는 0.8~1.0으로 유지합니다. 포즈 제어는 대체로 충돌이 적습니다.
  • CFG Scale을 8~9로 높여 텍스트 Prompt 비중을 보완합니다.

예시 2: 참조 스타일 + 학습 캐릭터

목표: “특정 캐릭터를 지정한 화풍으로 생성”

  • IPAdapter: 애니메이션 스타일 전달, weight=0.6~0.7, weight_type=precise style transfer
  • LoRA: 캐릭터 모델 적용, weight=0.7~0.8
  • 텍스트 Prompt: 장면과 동작 설명

권장 설정:

  • IPAdapter는 0.60.7, LoRA는 0.70.8로 두고 둘 다 지나치게 높이지 않습니다.
  • 캐릭터 특징이 약하면 LoRA weight를 올립니다.
  • 화풍이 약하면 IPAdapter weight를 올립니다.

예시 3: 여러 참조 이미지 + ControlNet

목표: “스타일 A + 구도 B + 포즈 C 결합”

  • 첫 번째 IPAdapter: 스타일 A 전달, weight=0.5~0.6, weight_type=precise style transfer
  • 두 번째 IPAdapter: 구도 B 전달, weight=0.6~0.7, weight_type=composition
  • ControlNet OpenPose: 포즈 C 제어, weight=0.8~1.0

권장 설정:

  • 참조 이미지가 여러 장이면 각 weight를 낮춰 충돌을 피합니다.
  • 사용하지 않는 참조 경로의 weight는 0으로 둡니다.
  • 포즈 > 구도 > 스타일 순으로 우선순위를 정해 weight를 조정합니다.

9.3 결합할 때 주의할 점

여러 방식을 결합할 때는 다음을 확인합니다.

  1. 각 weight 낮추기: 여러 제어를 겹치면 각 weight를 낮춰 특징 충돌을 피합니다. 예를 들어 IPAdapter를 0.81.0이 아닌 0.50.7로 둡니다.
  2. 우선순위에 따라 조정하기: 일반적으로 포즈(ControlNet), 구도(IPAdapter composition), 스타일(IPAdapter style transfer) 순으로 우선합니다.
  3. 같은 특징을 중복 제어하지 않기: IPAdapter와 LoRA로 스타일을 동시에 제어하면 충돌할 수 있습니다.
  4. CFG Scale 높이기: 여러 제어를 겹치면 텍스트 Prompt 비중이 낮아질 수 있으므로 CFG Scale을 8~9로 높여 보완합니다.

ControlNet 사용법은 ComfyUI ControlNet 가이드, LoRA 사용법은 ComfyUI LoRA 가이드를 참고하세요. 세 방식을 결합할 때는 각 weight를 낮추고 실제 결과에 맞춰 범위를 조정해야 합니다.

10. 오류 해결 목록

10.1 자주 발생하는 문제와 해결 방법

오류/현상원인해결 방법
노드를 설치했지만 오류가 나거나 결과가 바뀌지 않음CLIP Vision 누락, 잘못된 폴더 또는 조합 오류clip_vision/과 2장의 조합표 확인
조합 오류 메시지IPAdapter와 CLIP Vision이 호환되지 않음조합표에 맞는 CLIP Vision 다운로드
weight=1.0에서 얼굴이 뭉개짐weight가 너무 높음0.8~0.9로 낮추고 약 30 steps로 시험
구도가 참조 이미지에 끌려감기본 weight_type이 모든 특징을 전달함Advanced에서 precise style transfer 선택
FLUX IPAdapter가 작동하지 않음FLUX와 SD가 다른 노드를 사용함cubiq 대신 XLabs 또는 Shakker-Labs 사용
Unified Loader가 파일을 인식하지 못함파일명이 공식 규칙과 다름공식 이름으로 되돌리거나 Legacy Loader에서 선택
참조 특징이 약함weight가 너무 낮음0.8~0.9로 올리거나 plus 모델 사용
참조 특징이 너무 강함weight가 너무 높음0.5~0.7로 낮춤
여러 참조 이미지가 충돌함각 weight가 너무 높음각 경로를 0.5~0.6으로 낮추고 미사용 경로는 0

10.2 고급 문제 해결

참조 이미지가 너무 복잡함

문제: 이미지 한 장에 강한 스타일, 구도, 피사체가 모두 들어 있어 전달 조건이 섞입니다.

해결:

  1. 스타일용 이미지에는 precise style transfer, 레이아웃용 이미지에는 composition을 적용해 참조를 분리합니다.
  2. 각 weight를 0.5~0.6으로 낮춥니다.
  3. 필요하지 않은 경로의 weight는 0으로 둡니다.

IPAdapter와 여러 LoRA가 충돌함

문제: IPAdapter와 LoRA를 함께 사용할 때 스타일이나 캐릭터가 불안정합니다.

해결:

  1. IPAdapter와 LoRA의 weight를 각각 0.5~0.7로 설정합니다.
  2. 두 방식으로 같은 속성을 동시에 제어하지 않습니다.
  3. LoRA 캐릭터를 먼저 맞춘 뒤 IPAdapter 스타일을 조정합니다.

FLUX 결과가 계속 불안정함

문제: FLUX IPAdapter 출력이 일관되지 않거나 참조가 때때로 반영되지 않습니다.

해결:

  1. 여러 샘플을 생성하면서 ip strength 또는 weight를 조정합니다.
  2. XLabs 방식을 먼저 시험합니다.
  3. 모델이 models/xlabs/ipadapters/에 있는지 확인합니다.

IPAdapter와 기본 모델이 맞지 않음

문제: SD1.5용 IPAdapter를 SDXL 기본 모델에 적용했습니다.

해결:

  1. SD1.5 IPAdapter는 SD1.5에, SDXL IPAdapter는 SDXL에 연결합니다.
  2. Stable Diffusion 모델 선택 가이드를 참고합니다.

노드 버전에 따라 이름이 다름

문제: 버전에 따라 노드 이름과 매개변수가 조금씩 다릅니다.

해결:

  1. Unified Loader + IPAdapter Advanced를 기본 경로로 사용합니다.
  2. 설치된 버전을 확인하고 필요하면 업데이트합니다.
  3. 이름이 다르면 설치된 버전의 문서를 따릅니다.

10.3 확인 순서

다음 순서대로 확인합니다.

  1. 폴더 확인: CLIP Vision과 IPAdapter가 올바른 폴더에 있어야 합니다.
  2. 조합표 확인: 두 모델이 서로 호환되어야 합니다.
  3. 파일명 확인: Unified Loader를 위해 공식 파일명으로 되돌립니다.
  4. weight 낮추기: 1.0이 아닌 0.8에서 시작합니다.
  5. weight_type 변경: 구도가 끌려가면 precise style transfer를 사용합니다.
  6. steps 늘리기: 강한 참조에서 얼굴이 여전히 뭉개지면 약 30으로 시험합니다.

초기 문제 대부분은 잘못된 모델 조합이나 과도한 weight에서 나옵니다. 폴더, 인코더, 0.8이라는 시작값부터 확인하세요.

마무리

IPAdapter는 참조 이미지를 조건으로 사용해 LoRA 학습 없이 스타일, 구도, 피사체 특징을 전달합니다. 설치에서는 CLIP Vision 조합이 가장 중요하고, 조정에서는 높은 weight가 얼굴을 뭉개거나 기본 weight_type이 구도까지 끌고 올 수 있다는 점을 기억해야 합니다.

안정적인 순서:

  1. 조합표에서 올바른 CLIP Vision을 선택합니다.
  2. weight는 1.0이 아니라 0.8에서 시작합니다.
  3. 스타일만 원하면 precise style transfer를 선택합니다.
  4. ControlNet과 결합할 때 각 weight를 낮춥니다.

다음에는 FaceID, InstantID, ReActor로 얼굴 일관성을 시험하거나 반복 사용을 위해 LoRA를 학습할 수 있습니다. 기본기를 먼저 익히려면 ComfyUI 입문 가이드를 참고하세요.

ComfyUI IPAdapter 기본 워크플로 구성 및 조정

먼저 모델 조합과 폴더를 확인하고, 참조 강도 0.8에서 시작해 한 번에 하나의 변수만 조정합니다.

  1. 1

    Step 1: 노드 패키지 설치

    cubiq/ComfyUI_IPAdapter_plus를 ComfyUI/custom_nodes에 복제하거나 ComfyUI Manager로 설치한 뒤 ComfyUI를 다시 시작합니다.
  2. 2

    Step 2: 모델 폴더 준비

    ComfyUI/models/clip_vision이 있는지 확인하고 ComfyUI/models/ipadapter를 만듭니다. 두 종류의 모델을 같은 폴더에 넣지 않습니다.
  3. 3

    Step 3: 모델 조합 확인

    IPAdapter 파일명으로 vit-h와 bigG 중 필요한 인코더를 확인하고, 기본 모델이 SD1.5, SDXL, FLUX 중 무엇인지 점검합니다.
  4. 4

    Step 4: 기본 노드 연결

    Load Checkpoint, IPAdapter Unified Loader, IPAdapter Advanced, KSampler, VAE Decode, Save Image 순서로 연결하고 Load Image를 참조 이미지 입력에 연결합니다.
  5. 5

    Step 5: 안전한 값으로 시작

    weight 0.8과 약 30 steps로 기준 이미지를 만듭니다. 스타일만 옮길 때는 precise style transfer, 레이아웃만 참고할 때는 composition을 선택합니다.
  6. 6

    Step 6: 한 번에 하나의 변수 조정

    결과에 따라 weight, weight_type, start_at, end_at을 각각 조정합니다. 여러 참조 이미지나 ControlNet을 함께 쓰면 각 경로의 weight를 낮춰 조건 충돌을 피합니다.

FAQ

IPAdapter와 ControlNet의 차이는 무엇인가요?
IPAdapter는 참조 이미지에서 스타일, 구도, 피사체 특징을 추출합니다. ControlNet은 포즈, 에지, 깊이 같은 구조 맵으로 화면을 정밀하게 제한합니다. 두 방식을 함께 사용해 IPAdapter에는 스타일을, ControlNet에는 포즈나 구조를 맡길 수 있습니다.
ip-adapter_sdxl에는 어떤 CLIP Vision이 필요한가요?
vit-h 접미사가 없는 ip-adapter_sdxl은 bigG, 즉 CLIP-ViT-bigG-14-laion2B-39B-b160k가 필요합니다. 이름에 _vit-h가 붙은 SDXL 모델은 CLIP-ViT-H-14를 사용합니다.
IPAdapter의 weight는 어느 정도가 적당한가요?
대부분의 워크플로에서는 0.8에서 시작합니다. 참조 특징이 약하면 0.9로 올리고, 얼굴이 뭉개지거나 참조가 텍스트 Prompt를 압도하거나 구도가 흐트러지면 0.5~0.7로 낮춘 뒤 weight_type을 조정합니다.
참조 이미지의 구도 없이 스타일만 옮기려면 어떻게 하나요?
IPAdapter Advanced에서 precise style transfer를 선택하거나 IPAdapter Precise Style Transfer 노드를 사용하고, weight는 0.7~0.9에서 시작합니다.
FLUX에서도 IPAdapter를 사용할 수 있나요?
가능하지만 XLabs의 Flux Load IPAdapter와 Apply Flux IPAdapter, 또는 Shakker-Labs의 Apply IPAdapter Flux Model 같은 FLUX 전용 노드가 필요합니다. cubiq의 SD 노드에 FLUX 모델을 직접 로드하면 안 됩니다.
Unified Loader가 IPAdapter 모델을 찾지 못하면 어떻게 하나요?
IPAdapter가 ComfyUI/models/ipadapter에, CLIP Vision이 ComfyUI/models/clip_vision에 있는지 확인하고 공식 파일명을 유지합니다. 파일명을 바꿨다면 Legacy Loader에서 직접 선택합니다.

4분 읽기 · 게시일: 2026년 8월 21일 · 수정일: 2026년 8월 21일

댓글

GitHub로 로그인하여 댓글을 남기세요

Easton BlogEaston Blog