ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ComfyUI) ControlNet 사용법 + XY plot
    Stable Diffusion 2024. 8. 20. 16:22
    반응형

    ControlNet이란?

    ControlNet은 이미지 생성 과정을 세밀하게 제어할 수 있도록 도와주는 확장 기능입니다.

    ControlNet 사용을 위한 노드

    Load ControlNet Model : ControlNet 모델을 불러오기 위한 노드입니다. 여기에서 이미지 생성에 사용할 모델을 선택할 수 있습니다. ControlNet의 모델에는 Canny, Depth, OpenPose, Normal Map 등이 포함되어 있습니다. 모델 파일은 GitHub에서 다운로드할 수 있지만, ComfyUI를 사용 중이라면 Model Manager 메뉴를 통해 쉽게 필요한 모델을 다운로드할 수 있습니다. 

    Load ControlNet Model

     

    Load Image : ControlNet는 레퍼런스 이미지를 이용하여 생성 과정을 제어하므로, 기준이 되는 이미지를 불러와야 합니다.

    Load Image

     

     

    Apply ControlNet : ControlNet 모델과 레퍼런스 이미지 그리고 입력된 프롬프트를 샘플러로 보내는 역할을 합니다. 아랫부분의 strength는 ControlNet이 이미지 생성에 미치는 영향을 나타냅니다. 0에서 1 사이의 값을 사용하며, 0은 영향을 미치지 않음을, 1은 최대한의 영향을 미친다는 뜻입니다. 

    Apply ControlNet

    ControlNet 노드의 연결

    ControlNet에 사용하는 노드들은 아래의 그림과 같이 연결하시면 됩니다. Apply ControlNet 노드의 'CONDITIONING' 포인트는 KSampler의 'positive' 포인트에 연결해야 합니다.  

    ControlNet의 노드 연결

    전체 워크플로우(Basic + ControlNet)

    Basic + ControlNet 워크플로우

    다중 ControlNet

    ControlNet을 여러 개 동시에 사용할 경우, Apply ControlNet 노드들의 'CONDITIONING' 포인트를 서로 연결한 후, 최종적으로 KSampler의 'positive' 포인트에 연결하면 됩니다. 

    다중 ControlNet 사용을 위한 노드 연결

    ControlNet의 XY Plot 이미지 생성을 위한 노드 구성

    ※ XY Plot을 사용하는 이유는 파라미터 설정에 따라 생성된 이미지의 차이를 시각적으로 비교할 수 있기 때문입니다. 이를 통해 파라미터 설정 변화의 효과를 직관적으로 파악하고 최적의 결과를 얻기 위한 조정이 가능합니다. 

    XY Input: Control Net Plot

    ControlNet의 파라미터를 변화시켜 주는 노드입니다. 

    X_batch_count : 이미지 생성 수를 결정합니다. X 갑을 분할하는 기준이 됩니다. 

    X_first_value : 변화시킬 파리미터의 시작점입니다. 여기서는 strength 수치를 나타내며, 0일 경우 XY plot의 첫 번째 이미지의 strength는 0이 됩니다. 

    X_last_value : 파라미터의 마지막 지점입니다. 

    Y_batch_count : 이미지 생성 수를 결정합니다. Y 값을 분할하는 기준이 됩니다. 여기서 Y는 이미지 생성의 어느 단계부터 ControlNet이 관여할지를 결정하는 값입니다. 0은 처음부터 관여하고, 1은 관여하지 않음을 의미합니다. 

    Y_first_value : Y 파라미터의 시작점입니다. 

    Y_last_value  : Y 파라미터의 마지막 지점입니다. 

    XY Input: Control Net Plot

    XY Input 노드의 값이 위 그림과 같을 경우, X 값인 strength를 0부터 1까지 5단계로 나누어 XY plot을 만든다는 의미입니다. 따라서 생성되는 이미지의 strength는 0, 0.25, 0.5, 0.75, 1 이 됩니다. Y 값의 경우, batch_count가 1이므로 Y_first_value의 값에서 변화가 없다는 의미입니다. 이미지 생성 시 초기 단계에서 대부분의 형대가 결정되므로, 0.25 이상의 Y 값은 의미가 없고 생성되는 이미지의 숫자만 늘어나므로 특별한 이유가 없다면 1로 설정할 것을 추천합니다.  

    XY Plot

    XY plot을 만들어주는 노드입니다. XY Input에서 X와 Y 값을 입력받습니다. 다른 설정은 그대로 사용하면 되며, 마지막의 'ksampler_output_image' 항목을 'Plot'으로 설정하면 XY plot 형태로 이미지가 생성됩니다. 

    XY Plot 노드에는 dependencies 입력이 필요하며, SCRIPT로 출력이 됩니다. 따라서 Basic Workflow에서는 사용할 수 없으며, Efficient Loader와 KSampler(Efficient)를 함께 사용해야 합니다. 

    XY Plot 노드

     

    Efficient Loader

    여러 노드들이 하나로 합쳐진 노드입니다. 모델, VAE, LoRA, 프롬프트, 이미지 크기 등의 설정을 하나의 노드에서 할 수 있습니다. 이 노드의 'DEPENDENCIES' 포인트가 XY Plot 노드와 연결이 됩니다. 

    Efficitne Loader 노드

    KSampler(Efficient)

    Script 입력을 받을 수 있는 sampler입니다. XY Plot 노드에서 나오는 'script' 포인트를 연결합니다.

    KSampler (Efficient)

    ControlNet의 XY Plot 이미지 생성을 위한 노드 연결

    ControlNet의 XY Plot 이미지 생성을 위한 전체 워크플로우

    원본 이미지를 불러오고, ControlNet 모델을 선택한 후 여러 설정을 완료한 다음  워크플로우를 실행하면 다음과 같은 이미지가 만들어집니다. 

    XY plot 이미지

     

    반응형

    댓글

Designed by Vitual Stylist