####bgrem V.2.25####
이 프로젝트는 comfyui092 이후 및 최신버전에서도 동작합니다.
처리에 그래픽카드를 사용하지 않습니다. CPU에서도 기동되므로 AMD에서도 작동할 수 있을겁니다.
####bgrem은 다음 원칙을 기반으로 설계되었습니다####
• 환경 안정성 최우선
• 결정성 100% (Portable 환경에서도 동일 결과)
• 유지보수 가능한 구조
•Stable Diffusion 모델 기반을 사용하지 않는 ComfyUI Standalone 환경에서의
안정성을 무너뜨리지 않는 형태를 지향합니다.
Original U²Net implementation:
https://github.com/xuebinqin/U-2-Net
Paper: U²-Net: Going Deeper with Nested U-Structure for Salient Object Detection (Pattern Recognition, 2020)
Licenses
- Original U²Net implementation: MIT License (see external_licenses/U2Net-MIT.txt)Apache License 2.0 (see external_licenses/Apache-2.0.txt)
- Cloth Segmentation model: openrail
- Converted versions: safetensors format, for efficiency in use
“원본은 Apache License 2.0을 따릅니다. 변환본은 safetensors로 제작되었습니다.”
사실상 u2Net의 코드를 직접 참고하고 있으므로 저는 라이선스를 놔두지 않았고,
아파치 라이선스 전문을 포함한 외부 라이선스는 모두 exterlal licenses에 들어가 있습니다.
Pretrained Models Used
- u2net.pth (salient object detection, general)
- u2net_human_seg.pth (human segmentation)
Source:
-기본적인 소스와 모델은 여기서 가져왔습니다.
해당 PTH는 모두 용량 절감을 위해 개인사용중인 변환기로 세이프텐서로 변환해 사용 중입니다.
###requirements.txt가 비어 있는 이유###
ComfyUI는 확장팩 로딩 시 requirements.txt를 자동 설치합니다.
그러나 pip나 git을 통한 원격설치 방식은 환경 손상 위험이 매우 높기 때문에,
requirements.txt를 빈 파일로 유지합니다.
대신, 다음의 코드로 의존성 설치법을 남깁니다:
#----------------
#의존성 필수 리스트
#----------------
numpy
pillow
opencv-python
torch
torchvision
lazy_loader
tifffile
scipy
scikit-image
#----------------
#----------------------------------------------------
python.exe -m pip install --no-deps numpy(포터블은 할 필요가 없음.)
python.exe -m pip install --no-deps pillow
python.exe -m pip install --no-deps opencv-python
python.exe -m pip install --no-deps torch
python.exe -m pip install --no-deps torchvision
python.exe -m pip install --no-deps lazy_loader
python.exe -m pip install --no-deps tifffile
python.exe -m pip install --no-deps scipy
python.exe -m pip install --no-deps scikit-image
#----------------------------------------------------
Comfyui 기본 설치에 해당하는 torch, torchvision, torchAudio는 당연히 설치했을거라 제외했습니다.
위 패키지들은 BGRemover에서 주로 사용하는 안전한 최소 의존성입니다.
로드시 작동 불가가 나오는 것만 추가설치하세요.
위 의존성 이후의 추가설치는 선택 사항이며, 대부분의 기능은 기본 상태에서도 작동합니다.
[설치 방법]
Installation:
-
ZIP 다운로드: 저장소를 .zip 파일로 다운로드합니다.
-
custom_nodes 폴더에 배치: 압축을 풀고 ComfyUI/custom_nodes 폴더에 넣습니다.
-
ComfyUI 재시작: 재시작하면 노드가 로드됩니다.
####bgrem Node Usage####
[Auto Nodes]
BGRemover_Background 배경 중심 자동마스크
- node_id: BGRemover_Background
- category: 리무버/자동
- 역할: 이미지에서 배경바탕으로 마스크 자동선택. 인버트로 지정변환 가능.
- Inputs: image 입력 이미지
- Inputs: stage 사용할 스테이지 선택
- Inputs: 증폭검출
- Inputs: invert 선택반전
- Inputs: gamma 감마조정
- Inputs: clahe 클라헤 보정
- Outputs: mask
BGRemoverMaskBackground 배경 중심 자동마스크(마스크입력)
- node_id: BGRemoverMaskBackground
- category: 리무버/자동
- 역할: 마스크에서 배경바탕으로 마스크 자동선택. 인버트로 지정변환 가능.
- Inputs: Mask 입력 마스크
- Inputs: stage 사용할 스테이지 선택
- Inputs: 증폭검출
- Inputs: invert 선택반전
- Inputs: gamma 감마조정
- Inputs: clahe 클라헤 보정
- Outputs: mask
BGRemover_Human 인물 중심 자동마스크
- node_id: BGRemover_Human
- category: 리무버/자동
- 역할: 이미지에서 사람 기준으로 마스크 자동선택. 인버트로 지정변환 가능.
- Inputs: image 입력 이미지
- Inputs: stage 사용할 스테이지 선택
- Inputs: 증폭검출
- Inputs: invert 선택반전
- Inputs: gamma 감마조정
- Inputs: clahe 클라헤 보정
- Outputs: mask 마스크출력
BGRemoverMaskHuman 인물 중심 자동마스크(마스크입력)
- node_id: BGRemoverMaskHuman
- category: 리무버/자동
- 역할: 마스크에서 사람 기준으로 마스크 자동선택. 인버트로 지정변환 가능.
- Inputs: Mask 입력 마스크
- Inputs: stage 사용할 스테이지 선택
- Inputs: 증폭검출
- Inputs: invert 선택반전
- Inputs: gamma 감마조정
- Inputs: clahe 클라헤 보정
- Outputs: mask 마스크출력
[SemiAuto Nodes]
BGRemover_BackgroundAdv 배경 중심 반자동마스크
- node_id: BGRemover_BackgroundAdv
- category: 리무버/반자동
- 역할: 이미지에서 배경바탕으로 마스크 자동선택+유저 마스크 주입 가능. 인버트로 지정변환 가능.
- Inputs: image 입력 이미지
- Inputs: stage 사용할 스테이지 선택
- Inputs: 증폭검출
- Inputs: invert 선택반전
- Inputs: gamma 감마조정
- Inputs: clahe 클라헤 보정
- Inputs: (선택)mask 사용자 추가 마스크
- Inputs: (선택)blend_mode 마스크 합성 방식
- Outputs: mask 마스크출력
BGRemoverMaskBackgroundAdv 배경 중심 반자동마스크(마스크)
- node_id: BGRemoverMaskBackgroundAdv
- category: 리무버/반자동
- 역할: 이미지에서 배경바탕으로 마스크 자동선택+유저 마스크 주입 가능. 인버트로 지정변환 가능.
- Inputs: Mask 입력 마스크
- Inputs: stage 사용할 스테이지 선택
- Inputs: 증폭검출
- Inputs: invert 선택반전
- Inputs: gamma 감마조정
- Inputs: clahe 클라헤 보정
- Inputs: (선택)mask 사용자 추가 마스크
- Inputs: (선택)blend_mode 마스크 합성 방식
- Outputs: mask 마스크출력
BGRemover_HumanAdv 인물 중심 반자동 마스크
- node_id: BGRemover_HumanAdv
- category: 리무버/반자동
- 역할: 이미지에서 사람 기준으로 자동선택+유저 마스크 주입 가능. 인버트로 지정변환 가능.
- Inputs: image 입력 이미지
- Inputs: stage 사용할 스테이지 선택
- Inputs: 증폭검출
- Inputs: invert 선택반전
- Inputs: gamma 감마조정
- Inputs: clahe 클라헤 보정
- Inputs: (선택)mask 사용자 추가 마스크
- Inputs: (선택)blend_mode 마스크 합성 방식
- Outputs: mask 마스크출력
BGRemoverMaskHumanAdv 인물 중심 반자동 마스크(마스크)
- node_id: BGRemoverMaskHumanAdv
- category: 리무버/반자동
- 역할: 이미지에서 사람 기준으로 자동선택+유저 마스크 주입 가능. 인버트로 지정변환 가능.
- Inputs: mask 입력 이미지
- Inputs: stage 사용할 스테이지 선택
- Inputs: 증폭검출
- Inputs: invert 선택반전
- Inputs: gamma 감마조정
- Inputs: clahe 클라헤 보정
- Inputs: (선택)mask 사용자 추가 마스크
- Inputs: (선택)blend_mode 마스크 합성 방식
- Outputs: mask 마스크출력
[Processing Nodes]
BGTileSoftFillng 타일링 보정 채우기
- node_id: BGTileSoftFillng
- category: 리무버/유틸
- 역할: pytorch기반 타일링 채우기. 부분이미지 보정용으로 쓸 수 있습니다.
- Inputs: image 미리 잘라둔 이미지
- canvas_width: 캔버스 X축 크기만큼 비례 타일링할 픽셀깊이
- canvas_height: 캔버스 Y축 크기만큼 비례 타일링할 픽셀깊이
- rematch:타일화 처리의 경계면을 덮어 위화감을 보정할 중복 겹치기 횟수
- Outputs: image
BGMasksubeditor 마스크 서브에디터
- node_id: BGMasksubeditor
- category: 리무버/유틸
- 역할: pytorch기반 마스크 지우개. 지울영역만큼의 수정한 마스크를 넣고 빼는 것으로 마스크 부분 보정용으로 쓸 수 있습니다.
- Inputs: mask 작업 수정할 마스크
- Inputs: mask 지울 영역을 그린 마스크
- subtract_mode:제거 방식. 완전제거-부분제거-차이값만 남김 (유저마스크 혹은 베이스가 넘은부분은 그대로 적용)이 있습니다.
- blur_mode:블러 셋팅. 블러 미적용, 소프트와 하드가 있습니다.
- blur_strength:블러 커널 크기
- add_mask:(선택)덧붙일 추가 마스크
- Outputs: mask
BGmask_CompositeAdv 콤포짓 마스크 어드밴스
- node_id: BGmask_CompositeAdv
- category: 리무버/유틸
- 역할: pytorch기반 마스크 지우개. 지울영역만큼의 수정한 마스크를 넣고 빼는 것으로 마스크 부분 보정용으로 쓸 수 있습니다.
- Inputs: mask 작업 수정할 마스크
- Inputs: mask 지울 영역을 그린 마스크
- subtract_mode:제거 방식. 완전제거-부분제거-차이값만 남김 (유저마스크 혹은 베이스가 넘은부분은 그대로 적용)이 있습니다.
- blur_mode:블러 셋팅. 블러 미적용, 소프트와 하드가 있습니다.
- blur_strength:블러 커널 크기
- add_mask:(선택)덧붙일 추가 마스크
- add_mask:(선택)덧붙일 추가 마스크
- add_mask:(선택)덧붙일 추가 마스크
- add_mask:(선택)덧붙일 추가 마스크
- add_mask:(선택)덧붙일 추가 마스크
- Outputs: mask
BGRemoverMaskAmplier 마스크 증폭기
- node_id: BGRemoverMaskAmplier
- category: 리무버/유틸
- 역할: 마스크를 입력해서 부분증폭 및 전체증폭, 추가처리를 합니다.
- Inputs: mask 입력 마스크
- Inputs: 증폭검출
- Inputs: invert 선택반전
- Inputs: gamma 감마조정
- Inputs: clahe 클라헤 보정
- Inputs: (선택)mask 사용자 추가 마스크
- Inputs: (선택)blend_mode 마스크 합성 방식
- Inputs: (선택)부분강조
- Inputs: (선택)부분강조 강도
- Outputs: mask 마스크출력