Nabby's SDXL Single/Batch Outpainting to Target Size

세부 정보

모델 설명

안녕하세요, 모두님! 제가 CivitAI에 처음으로 업로드하는 내용에 오신 것을 환영합니다!

이 워크플로우는 제가 가진 특정한 필요를 충족시키기 위해 만들었습니다 – 다양한 크기의 수많은 이미지를 LORA/체크포인트 학습용으로 처리하는 것입니다. 학습 시 버킷 간 배치 처리가 불가능하기 때문에, 저는 모든 학습 이미지를 동일한 크기로, 혹은 몇 가지 일치하는 크기로 분류하는 것을 선호합니다. 특히 플럭스(Flux)가 등장한 지금은 모든 이미지를 정사각형으로 만드는 것이 매우 중요합니다. 그러나 저는 이미지를 자르면서 중요한 디테일을 잃는 것을 싫어합니다. 또한 일정 기간 동안 이미지에 흰색 패딩을 추가해 보았지만, 이 패딩이 LORA로 생성된 이미지에 레터박스 형태로 나타나는 경우가 있었습니다. 그래서 최종적으로 저는 아웃페인팅(outpainting)을 사용해 빈 공간을 채우기로 결정했습니다. 그런데 어떻게 효과적이고 일괄적으로 이를 구현할 수 있을까요?

이 워크플로우는 폴더 내 이미지 일괄 처리와 단일 이미지 처리 중 선택할 수 있는 옵션으로 시작됩니다. 일괄 처리를 선택할 경우, ComfyUI 컨트롤 패널에서 "추가 옵션" 체크박스를 반드시 확인하고, 배치 폴더에 있는 이미지 수만큼 배치 크기를 설정하세요. 단일 이미지를 처리할 경우, 이 값을 1로 되돌리세요. 배치 로딩 노드는 한 장의 이미지를 처리한 후 다음 이미지로 자동 이동하도록 설계되어 있습니다. ComfyUI의 배치 카운트 박스는 각 다음 이미지에 대해 전체 프로세스를 반복 실행하도록 지시합니다.

각 이미지에 대해 이 워크플로우는 BLIP 태그를 쿼리하여 생성된 아웃페인팅 이미지를 위한 긍정적 프롬프트를 생성합니다. 또한, 사용자 정의 긍정/부정 프롬프트를 추가할 수 있는 "추가 프롬프트" 섹션이 있습니다. 모델 섹션에서는 다운로드한 다양한 BLIP 모델을 선택할 수 있고, 처리 섹션에서는 BLIP 분석기의 다양한 설정을 조정할 수 있습니다.

또한 이미지 생성을 위한 주요 체크포인트를 선택할 수 있습니다. 인페인팅 체크포인트를 사용하는 것을 강력히 권장합니다. 저는 AIDutcHY의 epicrealismXL_v8Kiss 인페인팅 모델 병합본을 사용하며 매우 좋은 결과를 얻고 있습니다.

epiCRealism XL Inpainting > /model/590835/epicrealism-xl-inpainting

원본 모델 제작자들에게 감사드립니다.

https://civitai.com/articles/3990

/model/277058

편집: Jonas716의 ImgFixer PreV0.3 임베딩도 언급하고 싶습니다.

이것을 긍정적 프롬프트 박스에 추가했더니, 아웃페인팅 품질이 크게 향상되었습니다.

/model/139688/imgfixer-or-negative-ti

출력 이미지 크기 그룹에서는 제가 1024x1024 최종 이미지를 생성하기 위해 사용해온 사전 설정을 찾을 수 있습니다. 원하시면 이 설정을 변경할 수 있지만, 페더링과 마스크 확장 설정을 조정해야 좋은 결과를 얻을 수 있습니다. 저는 1024x 이미지에 대해 마스크 확장 32, 페더링 128을 사용하여 선명한 경계 없이 일관된 결과를 얻고 있습니다. 왼쪽 박스는 입력 이미지를 비율을 유지한 채 목표 크기로 조정하고, 오른쪽 박스는 결과를 목표 크기 중앙에 배치한 후 남은 공간을 아웃페인팅 마스크로 채웁니다. 원하는 경우, 초기 이미지 크기를 아웃페인팅 대상 크기보다 작게 설정하여 전체 주변에 아웃페인팅 테두리를 만들 수 있습니다. 또한, 제가 미리 이미지를 분류하여 크기만 줄이는 방향으로 처리하는 것을 선호하지만, 목표 크기보다 작은 이미지를 로드하려는 경우 사용할 업스케일링 방법을 선택할 수 있는 옵션도 제공됩니다.

마지막으로, 아웃페인팅은 변덕스러운 존재이므로, 선택적(Selective) 워크플로우는 입력 이미지당 네 개의 잠재적 출력 이미지를 생성해 미리보기 선택기로 전달합니다. 출력 이미지 설정 섹션에서 네 개의 KSampler 박스를 찾아 각각의 샘플러/스케줄러/스텝 등을 개별적으로 설정할 수 있습니다. 이는 "설정하고 방치"할 수 있는 일괄 처리가 아닙니다. 각 이미지에 대해 네 개의 아웃페인팅 옵션 중에서 가장 선호하는 것을 직접 선택해야 합니다. 아마도 여전히 몇 장은 불량이 나올 것입니다. 따라서 실패한 이미지를 개별적으로 다시 시도할 수 있도록 단일 이미지 옵션도 제공합니다.

대안으로, 자동(Automatic) 워크플로우는 최대 네 개의 이미지 스트림을 지원하며, 각 스트림은 개별적으로 활성화할 수 있습니다. 배치에서 로드된 각 이미지는 활성화된 각 스트림을 통해 처리되어 고유한 아웃페인팅을 생성하고 저장합니다. 추가로, 각 스트림은 자체 스케줄러/스텝/Cfg 등을 설정할 수 있으며, 고유한 저장 이름 접두사와 출력 폴더도 지정할 수 있습니다.

** NEW **

선택적 모드는 좋지만, H100을 사려고 스포츠카 가격을 내지 않았고, 네 장의 이미지 세트가 생성되기를 기다리는 것이 고통스럽나요?

자동 모드의 편리함은 좋아서 "Queue Prompt"를 누르고 나중에 돌아오지만, 거부된 이미지들을 수동으로 삭제하는 게 귀찮나요?

이제 두 가지 장점을 모두 누릴 수 있습니다. 자동 버전 2.0 추가 기능은 간단한 파일 선택 워크플로우로, 한 번에 임의의 수의 이미지를 그리드로 불러와 원하는 이미지만 선택할 수 있도록 해줍니다. 이 도구는 어떤 생성 프로세스도 포함하지 않기 때문에, VRAM 요구량이 매우 낮고 거의 즉시 로드됩니다.

또한, ComfyUI의 배치 카운트 박스를 사용하여 한 세트에서 다음 세트로 자동 전환할 수 있고, 매번 "Queue Prompt"를 눌러 다음 세트를 로드할 수도 있습니다. 수동 전환이 좋은 점은, 현재 세트의 모든 이미지가 불량이라고 판단되면 아무것도 선택하지 않고 "Queue Prompt"를 누르면 다음 세트로 넘어가면서 현재 세트는 저장하지 않도록 할 수 있다는 점입니다.

또한, 이 도구는 이미지의 출처를 따지지 않기 때문에, 이 워크플로우와 반드시 함께 사용해야 하는 것은 아닙니다. 원하는 이미지 세트를 포함하는 폴더라면 어떤 것이든 처리할 수 있습니다.

세트당 이미지 수와 전체 폴더 내 이미지 수에 따라 설정해야 할 몇 가지 기본 옵션은 워크플로우 내에 설명이 포함되어 있으며, 전체 폴더 배치를 처음부터 다시 시작해야 할 경우 카운터를 0으로 초기화할 수 있는 부울 노드도 제공됩니다.

설치 / 요구 사항 정보:

이해해 주시길 바라며, 약간 복잡해 보일 수 있지만, 정리했고 설정에서 링크를 "직선"으로 설정해두셨다면 흐름을 쉽게 파악하실 수 있습니다.

매니저를 통해 설치할 수 있는 사용자 정의 노드는 WAS Node Suite, rgthree's ComfyUI Nodes, KJNodes for ComfyUI입니다. 노드가 최신 버전인지 확인하세요. 이전 버전의 KJNodes에는 Target Image 노드가 올바른 크기를 사용하지 않는 버그가 있었습니다. 또한 마스크 미리보기 노드를 작동시키고 싶다면 ComfyUI Essentials를 설치할 수 있으나, 이는 주로 테스트용이었고 필요 없다면 그냥 삭제해도 됩니다.

Git에서 직접 설치해야 하는 사용자 정의 노드는 cg-image-picker입니다.

https://github.com/chrisgoringe/cg-image-picker

현재 BLIP 모델이 설치되어 있지 않다면, 자동으로 제가 사용하는 모델을 Huggingface에서 다운로드합니다. 첫 실행 시 BLIP 분석 단계에서 모델을 가져오는 동안 잠시 정지된 것처럼 보일 수 있지만, 다운로드가 완료되면 다시 진행됩니다. 수동으로 설치해야 할 경우, 아래 링크에서 모델을 다운로드하여 models/blip 폴더에 넣으세요.

https://huggingface.co/Salesforce/blip-image-captioning-base

https://huggingface.co/Salesforce/blip-vqa-base

이 모델로 만든 이미지

이미지를 찾을 수 없습니다.