ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ComfyUI의 기초 - 이미지 생성
    Stable Diffusion 2024. 8. 10. 00:00
    반응형

    ComfyUI를 사용하여 이미지를 생성하는 기본적인 방법을 알아보겠습니다. ComfyUI로 이미지를 생성하려면, 먼저 빈 캔버스에 필요한 노드를 배치하여 워크플로우를 만들어야 합니다. 지금부터 이 빈 캔버스에 노드를 채워 넣어 이미지를 만드는 방법을 알아보겠습니다. 

    ComfyUI의 캔버스

    1. 노드 불러오기

    검은색 빈 화면에서 마우스 오른쪽 버튼을 클릭하면 콘텍스트 메뉴가 나타나고, 여기서 필요한 노드를 선택할 수 있습니다. 그러나 이 방법은 초보자가 필요한 노드를 찾기에는 다소 어려울 수 있습니다. 더 편리한 방법으로, 빈 화면에서 마우스 왼쪽 버튼을 더블클릭하면 노드를 검색할 수 있는 창이 열립니다. 이 검색 창을 활용해 원하는 노드를 찾고 불러오는 것을 추천합니다. 

    Node 검색 창

    이런 방법으로 노드들을 불러와 적절하게 배치하면 됩니다. 기본적인 이미지 생성을 위해 필요한 노드는 Load VAE,  Load Checkpoint, Clip Text Encode(2개), KSampler, Empty Latent Image, VAE Decode, Save Image입니다. 

    기본적인 이미지 생성 노드

    2. 노드 연결

    노드의 연결 부위는 색상으로 구분되어 있으며, 기본적으로 같은 색을 연결하면 됩니다. 그러나 사용하는 노드나 모델에 따라 연결 방법이 달라질 수 있습니다. 다음의 연결 방식을 참고하세요. 연결하는 방법은 원하는 연결 지점을 마우스로 클릭한 후 드래그해서 연결하면 됩니다. 

    노드의 연결

    3. 노드 연결의 추가사항

    VAE 모델이 체크포인트 파일에 포함되어 있는 경우 'Load Checkpoint' 노드의 VAE 출력과 'VAE Decode' 노드의 VAE 입력을 연결하면 됩니다. 이때는 'Load VAE' 노드를 사용하지 않아도 됩니다. 

    Clip Text Encode는 보통 Positive와 Negative 두 개를 사용하며, 구분하기 쉽게 노드의 이름과 색상을 변경했습니다. 노드에서 마우스 오른쪽 버튼을 클릭하면 나타나는 메뉴에서 이러한 설정을 변경할 수 있습니다. 

    Node의 이름과 색상 변경

    4. 노드 설정

    Load Checkpoint : 이미지 생성에 사용할 모델을 선택합니다. 

    Load VAE : 이미지 생성에 사용할 VAE 모델을 선택합니다. 

    Clip text Encode : 생성할 이미지의 프롬프트를 입력합니다. 

    Empty latent image : 이미지의 크기와 생성할 개수를 설정합니다. 크기가 크고 개수가 많을수록 시간이 더 많이 소요됩니다.

    5. KSampler 설정

    seed, control_after_generate : 변수를 생성하는 기준이 되는 숫자입니다. 주로 '0'과 'randomize'를 사용합니다. 특정 상황에서는 옵션을 변경하여 사용할 수 있습니다.

    steps : 이미지를 생성하는 단계 수를 의미합니다. 단계가 많을수록 이미지의 질이 높아질 수 있지만, 숫자가 크다고 해서 반드시 좋은 결과가 나오지는 않습니다. 일반적으로 20에서 40 사이의 값을 사용합니다. 

    cfg : 생성된 이미지가 프롬프트를 얼마나 반영하는지를 나타냅니다. 숫자가 클수록 프롬프트를 더 잘 반영하지만, 10 이상의 값을 사용하면 프롬프트와 전혀 상관없는 이미지가 나올 수 있습니다. 일반적으로 10 이하의 수치를 사용합니다. 

    sampler_name : 샘플링 방법을 선택하는 옵션입니다. 다양한 방법을 시도해 보고 가장 좋은 결과를 얻을 수 있는 샘플러를 선택하면 됩니다. euler와 dpm 방식이 많이 사용됩니다. 

    scheduler : 노이즈와 관련된 인자를 설정하는 옵션입니다. 가장 마음에 드는 이미지를 생성하는 스케줄러를 선택하면 됩니다. karras가 자주 사용됩니다. 

    denoise : 노이즈 제거 정도를 설정하는 옵션으로 0에서 1 사이의 값을 사용할 수 있습니다. 그러나 0.7 이하의 수치를 사용할 경우 이미지가 이상해질 수 있으므로 0.7에서 1 사이의 값을 권장합니다. 

    6. 이미지 생성

    모든 준비가 완료되면, 메뉴바의 가장 위에 있는 'Queue Prompt'를 클릭하여 이미지를 생성할 수 있습니다. 

    Example

    모델 : majicmixRealistic_v7
    VAE : vae-ft-mse-840000-ema-pruned
    width : 512
    height : 512
    batch_size : 3
    seed : randomize
    steps : 30
    cfg : 5.0
    sampler_name : dpmpp_2m
    scheduler : karras
    denoise : 1
    Positive prompt : 1girl
    Negative prompt  : bad quality, low quality, lowres, normal quality, worst quality, blurry, grayscale, monochrome, sketches, watermark, bad anatomy, bad feet, bad hands, extra arms, extra fingers, extra foot, extra legs, extra limbs, fused fingers, malformed limbs, missing arms, missing fingers, missing legs, mutated hands, mutation, poorly drawn face, poorly drawn hands, tilted head, too many fingers, acnes, skin blemishes, skin spots, cross- eyed, facing away, looking away, bad body, bad proportions, fat, long neck

    위와 같은 조건으로 이미지를 생성해 보겠습니다. 

    이미지에 부자연스러운 부분이 있지만 사실적으로 잘 만들어졌습니다.

    KSampler - denoise 값과 이미지의 관계

    denoise 1
    denoise 0.7
    denoise 0.5

    Automatic1111에서 주로 denoising strength를 0.5로 사용했기 때문에 ComfyUI에서도 denoise 값을 0.5로 설정했었는데, 두 가지는 다른 종류의 매개변수였습니다. ComfyUI의 KSampler에서 denoise 값은 1을 사용하는 것이 좋겠습니다. 

    본문의 워크플로를 이용하여 생성한 이미지

    반응형

    댓글

Designed by Vitual Stylist