스푸79 기록 보관소

ComfyUI-손 보정하기(Hand Refiner) 본문

AI

ComfyUI-손 보정하기(Hand Refiner)

스푸79 2024. 8. 20. 08:00

지난 포스트에 설정한 Workflow를 사용해서 아래와 같이 프롬프트를 주고 이미지를 생성해 보았다.

아마 프롬프트를 바꿔보면서 새로운 결과물을 만들 때마다 가끔씩 퀄리티가 급격하게 나빠진다는 느낌을 받았을 것이다.

프롬프트 예시를 들어보겠다.

 

Checkpoint

majicmixRealistic_v7.safetensors

 

Positive Prompt

portrait of a beautiful woman in a summer dress in a flower garden, waving her hands and looking excited, masterpiece, best quality

 

Negative Prompt

bad quality, bad anatomy, worst quality, low quality, low resolution, extra fingers, blur, blurry, ugly, wrong proportions, watermark, image artifacts, lowres, ugly,  jpeg artifacts, deformed, noisy image, deformation, skin moles

 

Sampler : DPM++ SDE

Scheduler : Karras

 

위의 프롬프트의 결과로 나온 것이 아래 이미지이다.

이쁘게 잘 나온 것 같지만

자세히 보면 손가락이 뭔가 부자연스럽다.

 

AI로 생성되는 사람 이미지 중 가장 취약한 부분이 바로 손이다.

다른 신체 부위에 비해 월등하게 오류가 많이 나고 

위의 예시 사진처럼 뭔가 부자연스러운 경우가 많다.

Negative Prompt에서 손과 관련된 문구를 설정을 해도 해결이 잘 되지 않는다.

이 문제를 해결하려면 손 보정이 필요하다.

ComfyUI에 손 보정을 위한 ControlNet이란 걸 설치해서

한번 더 작업을 해주는 것이 좋다.

 

손가락 보정을 위한 추가 노드를 설치하도록 하자.

 

1. Manager > Custom Node Manager

 

ControlNet 으로 검색을 하면 아래 그림과 같은

ComfyUI's ControlNet Auxillary Preprocessors 추가 설치 Node가 보일 것이다. 해당 파일을 설치한다.

 

해당 Node를 설치한 후, ComfyUI는 재시작을 해야 한다.

 

2. 재시작 후 다시 Manager 화면에서 Model Manager를 클릭한다.

 

해당 창에서 Hand로 검색을 하면

ControlNet-HandRefiner-pruned라는 게 보일 것이다. 해당 파일을 설치한다.

 

 

3. ComfyUI 빈 공간을 더블클릭 해서 새로운 Node를 추가한다. Node명은 Load ControlNet Model이다.

해당 Node에서 다운로드한 inpaint_depth_hand_fp16.safetensors를 선택한다.

 

4. ComfyUI 빈 공간을 더블클릭 해서 새로운 Node를 추가한다. Node명은 Apply ControlNet (Advanced)이다.

 

 

5. ComfyUI 빈 공간을 더블클릭 해서 새로운 Node를 추가한다. Node명은 MeshGraphormer Hand Refiner이다.

 

6. 좀 복잡하지만 3개 노드는 아래 그림과 같이 연결해 준다.

 

Load ControlNet Model [CONTROL_NET]

 

7. ComfyUI 빈 공간을 더블클릭 해서 새로운 Node를 추가한다.

  Set Latent Noise Mask

  KSampler (보정된 이미지를 다시 그리기 위해 하나 더 추가)

  VAE Decode (보정된 이미지를 다시 그리기 위해 하나 더 추가)

  Preview Image or Save Image (최종 결과물 표시용)

 

8. MeshGraphormer Hand Refiner의 INPAINTING_MASK와 Set Latent Noise Master mask를 연결해 준다.

9. Set Latent Noise Mask Node의 LATENT는 새로 추가한 KSampler의 latent image와 연결해 준다.

 

10. 새로 추가된 Node의 positive, negative는 기본 positive, negative Prompt에서 끌어와서 연결을 해주면 된다.

 

손보정을 마친 최종 결과물이다.

등록한 workflow 파일과 최종 결과물 이미지를 업로드하겠다.

이미지를 드래그해서 ComfyUI에 넣거나

workflow 파일을 LOAD 해서 확인해 보길 바란다.

workflow.zip
0.75MB