MOSS-Image AnyPaint: ComfyUI 마스크 인페인팅과 아웃페인팅

ComfyUI Wikinews

rank-32 어댑터로 MOSS-Image-Base에 임의 마스크 인페인팅, 원패스 아웃페인팅, 혼합 편집을 추가합니다. ComfyUI 노드와 바로 사용할 수 있는 워크플로, 12개의 소스/마스크/결과 사례를 제공합니다.

11월 13일, yijunwang2가 MOSS-Image-Base용 rank-32 어댑터인 MOSS AnyPaint를 공개했습니다. 이 어댑터는 베이스 모델을 범용 마스크 편집기로 바꿔 줍니다. 동일 캔버스 인페인팅, 원패스 아웃페인팅, 여러 개의 연결 해제된 편집 영역, 좁은 구조물, 그리고 소스 가장자리를 넘어가는 마스크까지 처리합니다. 가중치 파일 하나와 작은 런타임으로 구성되며, 별도의 ComfyUI 노드 세트인 alexw5702-afk/moss-anypaint가 같은 날 맞춤 워크플로와 함께 배포되었습니다. 이 어댑터는 비공식 커뮤니티 릴리스로, OpenMOSS의 공인을 받은 것은 아닙니다.

MOSS AnyPaint로 인페인팅과 아웃페인팅을 혼합한 인물 사진

한 번의 요청: 코트는 소스 내부에서 다시 생성되고 동시에 캔버스가 넓어져, 인물 주변의 갤러리 벽과 바닥까지 생성됩니다. 이 글의 모든 예시는 사진이 아니라 Krea 2 베이스 모델로 렌더링한 합성 소스에서 시작합니다. 출처: yijunwang2/moss-anypaint

MOSS-Image가 이미 편집을 지원하는데 마스크가 필요한 이유

MOSS-Image 자체의 편집 경로는 명령어 기반입니다. 참조 이미지와 문장 하나를 넘겨주면 됩니다. 앞서 다룬 편집 LoRA들도 같은 형태를 따릅니다. rank-64 편집 LoRA부터 Edit HQ v5, 그리고 일곱 개의 control LoRA까지 모두 그렇습니다. 이들은 전부 프레임 전체를 다시 생성하고, 무엇이 바뀔지는 프롬프트가 결정하도록 합니다.

AnyPaint는 반대 방향입니다. 이진 마스크로 어떤 픽셀이 바뀔 수 있는지 정확히 지정하면, 런타임이 나머지 모든 픽셀을 샘플링 단계가 기대하는 노이즈 수준으로 유지합니다. 오브젝트 제거, 의상 교체, 케이블 색상 변경, 캔버스 확장은 더 이상 프롬프트를 다듬는 문제가 아니라 마스크 문제가 되며, 이는 ComfyUI의 기존 인페인팅·아웃페인팅 워크플로가 이미 만들어내는 방식입니다.

입력 규약

런타임은 RGB 소스 하나, 이진 마스크 하나, 각 변이 16의 배수인 출력 캔버스, 출력 픽셀 단위의 선택적 소스 바운딩 박스 (x0, y0, x1, y1), 그리고 프롬프트를 받습니다.

  • 흰색은 생성, 검은색은 보존. 0.5를 초과하는 값은 생성으로, 나머지는 보존으로 처리됩니다. 회색이나 반투명 마스크는 부분 강도로 작동하지 않습니다.
  • 소스 크기 마스크는 소스를 따라갑니다. 캔버스 크기 마스크는 그대로 사용되며, 두 크기가 일치하면 캔버스 좌표가 우선합니다. 그 밖의 마스크 크기는 거부됩니다.
  • 소스 박스 바깥은 항상 생성됩니다. 아웃페인팅에는 캔버스에 패딩을 주는 것으로 충분하며 손으로 그린 마스크가 필요 없고, 내부 마스크와 같은 요청에서 함께 사용할 수 있습니다.
  • 프롬프트는 작업이 아니라 완료된 이미지를 설명합니다. 머그컵을 제거하려면 유지하고 싶은 테이블과 배경을 설명하세요.

마스크된 캔버스는 최대 변 384픽셀로 제한된 단일 참조로 인코딩되고, 그 rotary 좌표는 대상 캔버스 전체에 걸쳐 있습니다. 따라서 모델은 붙여 넣은 패치가 아니라 하나의 일관된 그림을 보게 됩니다. 알려진 픽셀은 별도 복사본에 전체 해상도로 유지되어 매 flow 단계 후에 복원되고, 마스크 경계는 자유롭게 블렌딩되도록 남겨 둡니다. 외곽 이음새에는 32픽셀 안쪽 재드로우 밴드가 적용되며, 내부 마스크는 정확히 적용됩니다. 반환되는 이미지는 모델의 원시 출력입니다. 소스를 위에 겹쳐 합성하는 숨김 처리는 없습니다.

MOSS-Image 참조에 익숙한 사람에게 중요한 세부 사항이 하나 있습니다. 텍스트 인코더는 오직 프롬프트만 봅니다. 이미지 쪽은 전적으로 참조 경로가 처리하며, 참조의 VLM 인코딩은 꺼져 있습니다.

사례는 어떤 모습인가

릴리스에서 가져온 세 가지 예시로, 각각 소스, 정확한 마스크, 결과를 보여줍니다.

수채화 소스수채화 마스크수채화 결과
소스마스크아래쪽으로 원패스 아웃페인팅
램프 소스램프 마스크램프 결과
소스케이블을 따라가는 좁은 밴드케이블을 주황색으로 다시 그림
인물 소스인물 마스크인물 결과
소스내부 마스크와 가장자리 바깥 밴드의상과 캔버스가 함께 변경됨

좁은 케이블 사례가 흥미롭습니다. 마스크 폭이 몇 픽셀에 불과한데, 얇은 특징은 VAE와 patch tokenizer가 뭉개기 때문에 마스크 기반 방법이 보통 무너지는 지점입니다. 수채화 사례는 반대 방향으로, 거의 1:1인 그림을 한 단계로 수직 구도로 확장합니다.

12개 AnyPaint 사례를 모은 콘택트 시트

12개 사례 전체로, 각 행은 소스, 정확한 이진 마스크, 결과입니다. 실내외 장면, 오브젝트, 일러스트, 3D, 인물이 포함됩니다. 출처: yijunwang2/moss-anypaint

ComfyUI에서 실행하기

이 노드 패키지는 작성자의 이전 Krea 2 AnyPaint 노드 인터페이스를 재사용하므로, 그 워크플로를 실행해 본 사람이라면 구성을 알아볼 수 있습니다. AnyPaint Prepare는 소스 이미지, MASK, 변마다의 패딩을 받고, MOSS AnyPaint Encode는 프롬프트를 받으며, MOSS AnyPaint Model Patch는 로더와 KSampler 사이에 위치합니다.

배포된 워크플로는 다음과 같이 연결됩니다.

노드값
확산 모델 로드moss_image_base_int8_convrot.safetensors
CLIP 로드qwen3.5_9b_int8_convrot.safetensors, 유형 moss_image
VAE 로드flux2-vae_small.safetensors
LoraLoaderModelOnlymoss_anypaint_rank32.safetensors (1.0)
LoraLoaderModelOnlylora_dmd2.safetensors (1.0)
AnyPaint Prepare패딩 0/0/0/0, 참조 최대 변 384, 재드로우 밴드 32
KSampler8 스텝, CFG 1, euler, simple

베이스 checkpoint, 텍스트 인코더, VAE는 Comfy-Org MOSS-Image 재패키징에서 가져옵니다. DMD2 어댑터는 Base 8-step DMD2 저장소의 lora_dmd2.safetensors이며, 같은 저장소에 있는 이전 lora.safetensors가 아닙니다. AnyPaint 어댑터는 142 MiB 파일 하나입니다.

인페인팅의 경우 네 개의 패딩 값을 0으로 두고, 이미 사용 중인 방법으로 마스크를 넣으면 됩니다. SAM이나 다른 세그멘테이션 노드, 소스에 대한 마스크 편집기 편집, 또는 흑백 이미지에 대한 ImageToMask 등이 모두 가능합니다. 샘플러 노드가 반전된 마스크를 반환하면 연결을 바꾸세요. 규약상 흰색 입력만 허용되기 때문입니다. 아웃페인팅의 경우 확장할 변을 픽셀 단위로 설정하고 나머지는 0으로 두면 됩니다. 캔버스가 16의 배수로 맞춰지므로, 정렬되지 않은 소스는 오른쪽과 아래쪽에 몇 픽셀이 더해질 수 있습니다.

한계

  • 생성되는 영역의 비율이 크면 관련 없는 피사체나 구조물이 끌려 들어올 수 있습니다.
  • 매우 얇은 마스크 특징은 VAE와 patch tokenizer에 의해 거칠어지므로, 머리카락, 전선, 외곽선이 어려운 사례입니다.
  • 모호한 프롬프트는 마스크 내부보다 외곽 재드로우 밴드 근처의 컨텍스트를 더 많이 바꿉니다.
  • 마스크는 교체하려는 오브젝트나 가장자리 전체를 덮어야 하며, 외곽선을 놓치면 테두리 자국이 남습니다.
  • 작은 오브젝트의 개수, 정확한 위치, 기하는 시드에 따라 달라질 수 있습니다.
  • 마스크되지 않은 픽셀도 전체 프레임이 VAE 디코딩을 거치므로 약간 달라질 수 있습니다.
  • 작성자가 공개한 측정값은 배포된 구성에만 해당합니다. Base에 8-step DMD2 어댑터, 8 스텝, CFG 1, shift 5입니다. 다른 샘플러, 스텝 수, 정밀도는 테스트되지 않았습니다.

이용 가능성

어댑터와 Python 런타임은 Hugging Face에 있으며, example.py, 파이프라인 코드, SHA256 합계가 포함되어 있습니다. ComfyUI 노드는 alexw5702-afk/moss-anypaint에 있고, 릴리스는 11월 14일 v0.2.0까지 나와 있습니다. 기존에 저장된 워크플로는 자체 패딩 값을 유지하므로, 이전 설정은 새로운 기본값을 가져오지 않습니다.

MOSS-Image의 베이스 모델 페이지는 여기에 있으며, 마스크 기반 접근은 명령어 기반 편집 LoRA와 상호 보완적입니다. 명령어 경로는 작성하기 쉽고, 마스크 경로는 제어하기 쉽습니다.

댓글

GitHub로 로그인하고 토론에 참여하세요.

댓글을 불러오는 중…
MOSS-Image AnyPaint: ComfyUI 마스크 인페인팅과 아웃페인팅 | ComfyUI Wiki