![ComfyUI로 원본은 유지한 채 배경 새로 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNxZFf%2FbtsHZckedah%2FmqPGZ2OBq2Svi4KtN55QJ0%2Fimg.png)
안녕하세요, SDmaster입니다. Stable Diffusion으로 이미지의 배경을 만들때 원본이 뭉게지거나 멋대로 바뀌는 현상을 많이 경험해보셨을거라고 생각합니다. 저 또한 이미지 내에서 특정 부분은 살리고 나머지 부분만 바꾸고 싶을 때가 더 많았던 것 같습니다.
그래서 이번 포스팅에서는 원본에서 내가 원하는 부분을 유지한 채로 배경만 바꾸는 워크플로우를 뜯어보려고 합니다.
우선 이번 워크플로우에 사용된 중요 노드들을 먼저 간단하게 설명하고 들어가겠습니다.
사용된 기능 및 노드
- Pixel Spread : 이미지의 마스크된 가장 자리에 픽셀을 확장시켜 이미지 합성을 자연스럽게 도와줍니다.
- RmBgUltra : 배경 제거 기능을 해주는 노드 입니다.
- ControlNet - Depth : 이미지의 깊이를 측정합니다.
- ControlNet - Lineart : 이미지의 선들을 그려내줍니다.
- InvertMask : 마스크 된 부분을 반전시켜줍니다.
- VAE Enconde(for Inpainting) : 인페인팅 작업에 적합한 라텐트 이미지를 만들어 내줍니다.
- ImageBlendAdvanced : 서로 다른 2개의 이미지를 합성 시켜줍니다.
1. 모델 + 이미지 로드
적절한 체크포인트 모델과 수정하고 싶은 원본 이미지를 불러옵니다. (저는 SDXL 모델을 이용하고 싶었기 때문에 체크포인트 모델과 컨트롤넷 모델을 전부 SDXL 전용 모델을 사용했습니다)
그리고 프롬프트에는 내가 원하는 배경이 나오도록 적절한 키워드를 입력해줍니다.
2. 배경제거
'LayerMask : PixelSpread' 노드를 통해 마스크화 된 이미지의 가장자리에 픽셀 확장 전처리를 합니다.
그리고 'LayerMask : RmBgUltra V2' 노드를 이용해 배경을 없애줍니다.
사용된 Custom node는 ComfyUI_LayerStyle 입니다. 링크를 통해 다운받으실 수 있습니다.
3.컨트롤넷
ControlNet - Depth 기능과 Lineart 기능으로 깊이와 외곽선을 따줍니다.
현재 SDXL 모델을 사용중이므로 해상도(resolution)을 1024로 맟춘 후 진행해줍니다.
이제 배경을 그릴 준비가 되었습니다.
컨트롤넷에 대한 자세한 사항은 ComfyUI에서 ControlNet의 모든것(Open pose, Cany, Tile...) 을 참고해주세요
4. 배경 생성
배경을 그리려면 전에 배경을 지운 이미지 마스크에서 'InvertMask'를 이용해 마스크 된 부분을 반전 시켜서 배경 부분만 그릴 수 있게 세팅해줍니다.
그리고 VAE Encode (for Inpainting) 노드를 이용해 반전된 마스크에 이미지를 그려냅니다.
아래 사진은 배경합성만 된 이미지인데 확실히 안의 글씨라든지 외곽선 등 디테일한 부분들이 뭉게져있는걸 확인할 수 있습니다. 보통 이 단계에서 불만족스러운 결과물 때문에 실망하시는 분들이 많으실 듯 합니다.
5. 원본 합성
'LayerUtillity: ImageBlendAdvance V2' 노드를 통해 이미지를 합성 시켜줍니다.
제가 이 노드와 베이직한 Image Blend 노드를 비교했을 때 훨씬 자연스럽게 합성 시켜주는걸 확인했습니다.
background_image 엣지는 말그대로 밑바탕이 되는 이미지를 불러옵니다.
이 이미지 위에 layer_image와 layer_mask 엣지에서 불러오는 이미지가 덫씌워집니다.
6. 결과 비교
원본과 배경만 생성한것 그리고 전 게시글인 IC-Light 기능을 추가한 이미지입니다.
확실히 그냥 배경을 만들어 내는 것보다 빛을 첨가해주고 하이라이트를 조금 날려주니 퀄리티가 더 살아 나는 것 같습니다.
(IC-Light에 대해 궁금하신분은 아래 게시글을 참고해주세요)
ComfyUI-IC-Light로 프로 사진 작가처럼 조명 입히기
안녕하세요 SDmaster 입니다. 여러분들은 사진의 퀄리티를 구분할 때 어떤 점을 기준으로 삼고계신가요?기준으로는 화소 그 자체일 수도 있고 구도, 초점, 배경 등 여러 기준이 있을 수 있습니다.
generative-ai-everything.tistory.com
'ComfyUI > Workflow 뜯어보기' 카테고리의 다른 글
ComfyUI 프롬프트 작성을 편하게 해주는 커스텀 노드 추천 (2) | 2024.06.24 |
---|---|
ComfyUI-IC-Light로 프로 사진 작가처럼 조명 입히기 (2) | 2024.06.04 |
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 중 스테이블 디퓨전에 관한 내용을 주로 다룹니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!