![ComfyUI-IC-Light로 프로 사진 작가처럼 조명 입히기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNquGU%2FbtsHNdYfthe%2Fn77UAuMVSveZQazkKfvnWK%2Fimg.png)
안녕하세요 SDmaster 입니다. 여러분들은 사진의 퀄리티를 구분할 때 어떤 점을 기준으로 삼고계신가요?
기준으로는 화소 그 자체일 수도 있고 구도, 초점, 배경 등 여러 기준이 있을 수 있습니다.
하지만 개인적으로 저는 어떤 컨셉의 사진이든 첫번째 기준은 '빛'이라고 생각합니다. 아무리 좋은 화소와 구도, 배경을 가지고 있어도 적절한 빛이 없다면 무용지물이 됩니다.
오늘은 이러한 이미지의 '빛'을 재구성 해주는 기능에 대해 소개해볼려고합니다.
ComfyUI-IC-Light
스테이블 디퓨전 이미지 생성 과정에서 특정 영역만 편집을 한뒤 수정된 잠재 이미지를 디코딩하는 방식으로 진행 되게 해주는 일종의 도구(tool)라고 보시면 됩니다.
여기서 IC-Light라는 조명에 특화된 훈련을 통해 만들어진 모델을 이용해 이미지의 조명을 다시 만들어내는 것 입니다.
현재는 텍스트를 통해 제어하는 방법과 배경 이미지를 참조하는 방법 2가지가 있습니다.
작동 원리
1.인코딩: 입력 이미지가 스테이블 디퓨전 VAE(가변 자동 인코더)를 통과하여 압축된 잠상 표현(latent representation)을 얻습니다.
2.편집: 원하는 편집을 잠상 표현의 특정 영역에 적용합니다. 이 작업은 일반적으로 원본 잠상을 수정할 영역을 나타내는 마스크와 해당 편집 프롬프트와 함께 연결하여 수행합니다.
3.디코딩: 수정된 잠상 표현은 스테이블 디퓨전 Decoder를 통과하여 편집된 이미지를 재구성합니다. 잠상 공간에서 작동함으로써 IC-Light는 이미지의 전체적인 일관성과 스타일을 유지하면서 국소적인 편집을 수행할 수 있습니다.
ComfyUI에서 사용 준비
- ComfyUI Manager에서 Install Custom nodes를 클릭, 'IC-Light'를 검색해서 node를 설치합니다.
- ComfyUI Manager에서 Install Model을 클릭, 'IC-> Light'를 검색합니다. 그럼 총 3가지 모델이 검색되고 다운받으시면 됩니다.
(IC-Light/fc는 텍스트를 통해 제어할때 쓰고 IC-Light/fcb는 백그라운드를 통해 제어할때 사용합니다) - 설치가 완료되면 이제 이 IC-Light를 사용할 준비가 완료되었습니다.
IC-Light 기본 워크플로우 뜯어보기
마스크를 이용한 IC-Light의 기초적인 t2i 워크플로우입니다. 이 워크플로우의 장점은 마스크를 ComfyUI에서 자체적으로 생성할 수 있으며 샘플러도 IC-Light의 기능이 통합된 샘플러를 이용한다는 점 입니다.
1. Load Checkpoint & Image
가장 기본이 되는 체크포인트를 로더할 수 있는 노드와 이미지를 불러오는 노드입니다.
여기서 주의할 점은 IC-Light 같은 경우 현재 SD1.5 모델만 지원하고 있기 때문에 체크포인트 모델도 동일하게
SD1.5 모델을 불러와주셔야 오류없이 작동합니다.
그리고 SD1.5 모델을 사용하기 때문에 불러오는 이미지의 사이즈를 적절하게 Resize시켜야 합니다.
2. Create mask
IC-Light의 조명이 들어오는 강도와 방향을 지정하기 위해 마스크된 이미지를 사용합니다.
포토샵을 사용하실 줄 아시는분은 검은색 배경에 브러쉬로 간단하게 만들수 있지만 일단 저는 ComfyUI 하나의 프로그램만 사용해서 구현하고 싶기 때문에 넣은 기능입니다.
원하는 위치에 마스크를 배치시킬 수 있게 Spline Editor를 이용해 세밀하게 지정해줍니다.
그리고 Create Shape Mask On Path 노드로 위 Spline Editor의 Path값을 가져온 마스크를 생성합니다.
Grow Mask With Blur 노드는 마스크를 그냥 생성하게 되면 뚜렷한 경계가 있는 단순한 도형이 생겨버립니다.
하지만 저희는 빛을 생성하고 싶기 때문에 자연스러운 블러처리가 필요하므로 Grow Mask With Blur 노드의
blur_radius와 expand 파라미터 값을 적절히 조절해 자연스러운 마스크를 만들어야 합니다.
(preview Chooser 노드는 여러개의 프리뷰 이미지 중 원하는 이미지를 선택할 수 있는 노드로 필수노드는 아닙니다.)
3. IC-Light 이미지 생성
이제 IC-Ligth의 모델과 적절한 샘플러를 이용해 이미지를 생성하겠습니다.
IC-Light Diffusers Sampler 노드는 추가적으로 Ksampler없이 간편하게 IC-Light 모델을 이용해 이미지를 생성할 수 있는 샘플러 노드입니다.
LoadICLightUnetDiffusers 노드로 적절한 IC-Light 모델을 불러와 샘플러와 연결 시켜 줍니다.
여기서 샘플러의 latent 엣지는 리사이즈 시킨 이미지를 VAE Encode 노드를 통해 latent 이미지화 시킨후 연결 시켜주고
bg_latent 엣지는 생성한 마스크를 VAE Encode 노드로 latent 이미지화 시킨후 연결시켜주면 됩니다.
4.결과 비교
아무 배경이 없는 제품도 이렇게 자연스러운 배경과 빛을 생성해낼 수 있습니다.
현재 IC-Light기능만 사용하면 원본 이미지의 색상이 배경과 최대한 비슷하게 묻어나오는 단점이 있습니다.
추후 ControlNet, Mask, Color Match를 통해 원본 이미지를 자연스럽게 그대로 블렌딩 시키는 워크플로우도 소개해드리겠습니다.
(기존 배경이 있는 경우 배경을 제거한 상태로 생성하거나 IPAdapter와 SAM detecter를 이용해 원하는 부분만 변경할 수도 있습니다.)
(SD1.5 모델 같은경우 아직 텍스트를 정확하게 뽑아내는 능력이 부족해 텍스트 같은경우 뭉게질 수가 있습니다.)
'ComfyUI > Workflow 뜯어보기' 카테고리의 다른 글
ComfyUI 프롬프트 작성을 편하게 해주는 커스텀 노드 추천 (2) | 2024.06.24 |
---|---|
ComfyUI로 원본은 유지한 채 배경 새로 만들기 (6) | 2024.06.14 |
ComfyUI FreeU 기능을 이용하면 이미지 퀄리티가 달라집니다 (0) | 2024.05.29 |
AI가 그린 어색한 손들 ComfyUI로 고쳐보기(feat.MeshGraphormer) (2) | 2024.05.22 |
ComfyUI에서 ControlNet의 모든것(Open pose, Cany, Tile...) (0) | 2024.05.17 |
생성형 이미지 AI 중 스테이블 디퓨전에 관한 내용을 주로 다룹니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!