ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ComfyUI
    배움/ComfyUI 2025. 5. 20. 03:03
    반응형

     

    오늘은 AI 이미지 및 비디오 생성 툴인 ComfyUI의 핵심 용어와 개념들을 자세히 알아본다. ComfyUI는 노드 기반 인터페이스로 Stable Diffusion 모델을 직관적으로 다룰 수 있게 해주는 강력한 도구다. 처음 접하면 다소 복잡하고 생소한 용어들이 많아 어려움을 느낄 수 있다. 이 글을 통해 주요 개념들을 이해하고 더 효과적으로 ComfyUI를 활용하는 데 도움이 되길 바란다.

     

    목차

    1. 기본 구성 요소
    2. 핵심 모델 개념
    3. 이미지 생성 프로세스
    4. 고급 기능 및 확장
    5. Latent Space 심층 이해
    6. 자주 사용되는 노드

     

    기본 구성 요소

    Workflow

    ComfyUI의 기본 작업 단위로, 노드와 연결로 구성된 이미지 생성 파이프라인이다. Workflow는 JSON 형식으로 저장되며 다른 사용자와 공유하거나 나중에 재사용할 수 있다.

    Node

    특정 기능을 수행하는 모듈이다. 각 노드는 입력과 출력을 가지며, 이들을 연결하여 데이터 흐름을 만들어낸다. 노드의 종류는 매우 다양하며, loader, sampler, encoder, decoder 등이 있다.

    Connection

    노드 간의 데이터 흐름을 정의한다. 한 노드의 출력을 다른 노드의 입력으로 연결하여 순차적인 처리 과정을 만든다.

    Widget

    노드 내에서 파라미터를 조정하는 인터페이스 요소다. 슬라이더, 드롭다운 메뉴, 텍스트 입력 필드 등이 있다.


     

    핵심 모델 개념

    Checkpoint

    학습된 Stable Diffusion 모델의 가중치를 담고 있는 파일이다. 이미지 생성의 기본이 되는 모델을 정의하며, .ckpt 또는 .safetensors 형식으로 저장된다. 대표적인 체크포인트로는 SD 1.5, SDXL, Dreamshaper, RealisticVision 등이 있다.

    실제 사용 예:

    CheckpointLoaderSimple 노드에서 'dreamshaper_8.safetensors'를 선택하면, 
    드림셰이퍼 스타일의 이미지가 생성된다.

    CLIP (Contrastive Language-Image Pre-training)

    텍스트를 이미지 생성에 사용할 수 있는 형태로 인코딩하는 모델이다. 텍스트 프롬프트를 이해하고 이미지 생성 과정에 반영하는 역할을 한다. ComfyUI에서는 CLIPTextEncode 노드를 통해 접근할 수 있다.

    VAE (Variational Auto-Encoder)

    이미지를 latent space(잠재 공간)으로 인코딩하고 다시 이미지로 디코딩하는 모델이다. VAE는 두 가지 주요 기능을 수행한다:

    • 인코딩: 실제 이미지를 압축된 latent representation으로 변환
    • 디코딩: latent representation을 시각적인 이미지로 변환

    KSampler (K-Diffusion Sampler)

    latent space에서 노이즈를 제거하며 이미지를 생성하는 핵심 알고리즘이다. 노이즈에서 시작하여 단계적으로 이미지를 형성하는 과정으로, 다음과 같은 주요 매개변수를 가진다:

    • seed: 결과 재현을 위한 난수 시드값
    • steps: 노이즈 제거 단계 수 (일반적으로 20-50)
    • cfg: 텍스트 프롬프트 준수 강도 (Classifier-Free Guidance)
    • sampler_name: euler, euler_a, dpm++, ddim 등 다양한 샘플링 알고리즘
    • scheduler: 노이즈 제거 일정을 제어 (normal, karras 등)

    💡 TIP: CFG 값을 높이면 프롬프트를 더 충실히 따르지만, 너무 높으면 이미지가 부자연스러워질 수 있다. 보통 7-9 사이의 값이 적절하다.


     

    이미지 생성 프로세스

    Prompt

    생성하려는 이미지를 설명하는 텍스트다. AI에게 무엇을 생성할지 지시하는 역할을 한다. 쉼표로 구분된 키워드, 가중치(1.2), 강조([]) 등의 문법을 사용할 수 있다.

    효과적인 프롬프트 예시:

     
    A serene landscape with mountains in the background, crystal clear lake, lush forest, 
    dramatic clouds, sunset, 8k, detailed, realistic photography

    Negative Prompt

    이미지에서 피하고 싶은 요소를 설명하는 텍스트다. 이미지 생성에서 특정 요소를 제외하고 싶을 때 사용한다.

    일반적인 네거티브 프롬프트:

     
    blurry, bad anatomy, ugly, low quality, deformed, distorted, disfigured, 
    extra limbs, missing limbs, poorly drawn face

    Latent Space

    이미지의 압축된 수학적 표현이 존재하는 고차원 공간이다. ComfyUI에서는 EmptyLatentImage 노드를 통해 초기 latent space를 생성하고, 여기에 KSampler로 노이즈를 제거하며 이미지를 형성한다.

    Conditioning

    이미지 생성을 위한 지시사항이다. 텍스트 프롬프트, 이미지 참조 등에서 생성되며, ConditioningCombine, ConditioningSetArea 등의 노드로 조작할 수 있다.


     

    고급 기능 및 확장

    LoRA (Low-Rank Adaptation)

    이미지 표시

    기본 모델에 추가할 수 있는 작은 학습 가중치 파일이다. 특정 스타일, 주제, 인물 등을 생성 모델에 추가할 수 있으며, 파일 크기가 작아 많은 LoRA를 조합해 사용할 수 있다.

    ControlNet

    이미지 생성에 추가적인 제어를 제공하는 모델이다. 포즈, 깊이 맵, 스케치 등을 기반으로 이미지 생성을 제어할 수 있다. 다양한 종류가 있으며, 각각 특정 용도에 최적화되어 있다:

    • canny: 윤곽선 기반 제어
    • depth: 깊이 정보 기반 제어
    • pose: 인체 포즈 기반 제어
    • seg: 세그멘테이션 맵 기반 제어
    • scribble: 낙서/스케치 기반 제어

    Upscaler

    저해상도 이미지를 고해상도로 변환하는 모델이다. 생성된 이미지의 크기와 품질을 향상시키는 데 사용되며, ESRGAN, SwinIR, LDSR 등 다양한 모델이 있다.

    AnimateDiff

    Stable Diffusion을 애니메이션으로 확장하는 모델이다. 연속적인 프레임을 생성하여 비디오 애니메이션을 만들 수 있다.


     

    Latent Space 심층 이해

    Latent Space는 Stable Diffusion의 핵심 개념 중 하나로, 이에 대한 이해는 ComfyUI를 효과적으로 활용하는 데 큰 도움이 된다.

    Latent Space의 특성

    차원 압축

    • 512×512 RGB 이미지는 786,432개(512×512×3) 차원의 데이터지만, latent space에서는 64×64×4(16,384) 차원으로 압축된다.
    • 이는 원본 이미지보다 약 48배 작은 크기로, 계산 효율성을 크게 높인다.

    Latent Space에서의 작업

    ComfyUI에서 Latent Space 작업은 다음과 같은 과정으로 이루어진다:

    1. 무작위 노이즈 시작: seed 값에 따라 랜덤 노이즈로 latent space의 점 생성
    2. 단계적 노이즈 제거: 텍스트 조건에 맞춰 KSampler가 노이즈 제거
    3. 최종 변환: 노이즈가 제거된 latent representation을 VAE 디코더로 변환

    Latent Space 조작의 장점

    • 직접적인 픽셀 조작보다 더 '의미 있는' 변화 가능
    • 스타일, 내용, 구성 등의 고수준 특성 제어 가능
    • 계산 효율성 증가

    🔍 깊게 보기: Latent Space에서 두 점 사이를 보간(interpolation)하면 두 이미지 사이를 점진적으로 변화시키는 효과를 얻을 수 있다. 이는 비디오 생성에 활용된다.


     

    자주 사용되는 노드

    기본 이미지 생성 노드

    • CheckpointLoaderSimple: 모델 체크포인트 로드
    • CLIPTextEncode: 텍스트 프롬프트 인코딩
    • EmptyLatentImage: 지정된 크기의 빈 latent image 생성
    • KSampler: latent space에서 노이즈 제거 수행
    • VAEDecode: latent representation을 이미지로 디코딩
    • SaveImage: 생성된 이미지 저장

    고급 이미지 조작 노드

    • LatentUpscale: latent space에서 이미지 크기 조정
    • ConditioningCombine: 여러 conditioning 결합
    • ControlNetApply: ControlNet 모델 적용
    • LoraLoader: LoRA 모델 로드 및 적용
    • ImageComposite: 여러 이미지 합성

    비디오 생성 관련 노드

    • AnimateDiffLoaderWithContext: AnimateDiff 모델 로드
    • VHS_VideoCombine: 이미지 시퀀스를 비디오로 변환
    • EmptyLTXVLatentVideo: 비디오용 latent space 생성
    • LTXVScheduler: 비디오 프레임 생성 일정 제어

     

     

    참고 자료:

    반응형

    '배움 > ComfyUI' 카테고리의 다른 글

    Stable Diffusion 이란?  (3) 2025.07.03
    CFG별 AI 이미지 생성 테스트  (0) 2025.06.06
    모델마다 적절한 CFG 값은 다르다  (0) 2025.06.05
    Classifier-Free Guidance, CFG란  (1) 2025.06.04

    댓글

Designed by Tistory.