ComfyUI에서 생성 자체는 끝났는데 마지막 VAE Decode 단계에서 메모리 오류가 나는 경우가 있다. 특히 이미지 해상도가 커지면 KSampler까지 정상적으로 통과한 뒤 디코딩 과정에서 멈추는 상황을 만날 수 있다.
이때 확인할 노드가 VAEDecodeTiled다. 이전 글에서 다룬 “어떤 VAE를 선택할 것인가”와는 다른 문제다. 이번에는 같은 VAE를 사용하면서 디코딩 작업을 작은 영역으로 나눠 메모리 부담을 줄이는 방법에 초점을 맞춘다.
vaer에서 가장 먼저 볼 변화
VAEDecodeTiled는 무엇을 바꾸는가
일반 VAEDecode는 latent 데이터를 받아 최종 픽셀 이미지로 변환한다. VAEDecodeTiled 역시 목적은 같다. 입력으로 LATENT와 VAE를 받고 결과로 IMAGE를 출력한다.
차이는 처리 방식이다. VAEDecodeTiled는 큰 이미지를 한 번에 디코딩하는 대신 작은 타일로 나누어 처리한다. 고해상도 데이터를 한꺼번에 VAE에 통과시킬 때 발생하는 메모리 부담을 관리하기 위한 방식이다.
VAE 자체를 교체하는 노드는 아니다
여기서 가장 먼저 구분해야 할 부분이 있다.
VAEDecode → IMAGE
VAEDecodeTiled → IMAGE
두 노드 모두 이미 선택된 VAE를 이용해 latent를 이미지로 복원한다. VAEDecodeTiled를 사용한다고 새로운 VAE 모델이 적용되는 것도 아니고 체크포인트의 VAE가 자동으로 다른 것으로 교체되는 것도 아니다.

vaer가 ComfyUI 워크플로우에 미치는 영향
따라서 일반 VAE Decode에서 정상적으로 처리되는 해상도라면 굳이 tiled 방식으로 바꿀 필요는 없다. 우선 기본 노드를 사용하고, 디코딩 메모리가 문제가 되는 구간에서 대안으로 보는 것이 구조를 이해하기 쉽다.
기존 방식과 비교해야 할 부분
고해상도에서 VAEDecodeTiled가 필요한 이유
이미지 해상도가 증가하면 최종 VAE 디코딩 단계에서 처리해야 하는 데이터도 커진다. 그래서 diffusion 샘플링은 완료됐는데 마지막 이미지 변환에서만 메모리가 부족해지는 상황이 가능하다.
VAEDecodeTiled는 이 작업을 여러 구역으로 분리한다. ComfyUI의 현재 기본 노드에는 tile_size와 overlap을 설정할 수 있으며, 공식 문서 기준 기본값은 각각 512와 64다.
tile_size와 overlap의 의미
tile_size는 한 번에 처리할 타일의 크기를 결정한다. 범위는 64~4096이며 32 단위로 조정할 수 있다.
overlap은 인접한 타일이 서로 겹쳐 처리되는 영역이다. 기본값은 64다. 현재 구현에서는 tile_size가 overlap의 4배보다 작아지는 경우 overlap을 tile_size의 4분의 1 수준으로 자동 조정하는 로직도 들어 있다.
설정을 무조건 작게 만드는 것이 목표는 아니다. 핵심은 현재 시스템이 처리할 수 있는 범위 안에서 이미지를 여러 영역으로 나누는 것이다.

성능과 결과 품질에서 확인할 차이
일반 VAEDecode에서 문제가 없다면 그것이 가장 단순한 구성이다. 반대로 해상도를 올리는 순간 VAE Decode에서 메모리 문제가 발생한다면 VAEDecodeTiled로 바꿔 같은 작업이 통과하는지 확인할 수 있다.
워크플로우 구성에서 놓치기 쉬운 부분
VAE Decode 오류인지 먼저 구분해야 한다
모든 CUDA out of memory 오류를 VAEDecodeTiled로 해결할 수 있는 것은 아니다. 오류가 KSampler나 모델 로딩 단계에서 발생했다면 VAE 디코딩을 tiled 방식으로 바꿔도 문제의 원인이 그대로 남아 있을 수 있다.
따라서 노드를 바꾸기 전에 실행이 정확히 어디에서 멈췄는지 확인하는 것이 먼저다. 샘플링이 끝난 뒤 VAEDecode 실행 중 메모리가 부족하다면 VAEDecodeTiled를 검토할 이유가 생긴다.
img2img에서는 VAEEncodeTiled도 있다
반대 방향의 작업도 같은 원리로 볼 수 있다. 고해상도 이미지를 latent로 변환하는 과정에서 VAE Encode 메모리가 문제가 된다면 ComfyUI에는 VAEEncodeTiled가 별도로 있다.
VAEEncodeTiled는 입력 이미지를 작은 영역으로 나누어 인코딩한다. 즉 Decode Tiled가 latent → image 구간을 다룬다면 Encode Tiled는 image → latent 구간에서 활용할 수 있다.

텍스트 투 이미지 결과를 저장하는 마지막 단계에서 문제가 발생했다면 Decode 쪽을 먼저 보고, 큰 이미지를 입력하는 img2img 과정에서 문제가 생겼다면 Encode 쪽을 확인하는 식으로 구분하면 된다.
실제로 적용할 때 체크할 점
영상 VAE에서는 temporal 설정도 확인한다
현재 VAEDecodeTiled에는 이미지 타일링용 설정뿐 아니라 temporal_size와 temporal_overlap도 존재한다. 이 값들은 비디오 VAE에서 여러 프레임을 나누어 처리할 때 사용된다.
공식 문서와 현재 노드 구현 기준 기본값은 temporal_size 64, temporal_overlap 8이다. 일반적인 이미지 VAE만 사용하는 경우에는 공간 타일링에 해당하는 tile_size와 overlap을 먼저 보면 된다.
따라서 영상 생성 워크플로우에서 VAEDecodeTiled를 발견했다고 해서 이미지 생성용 설정과 완전히 같은 의미로 보면 안 된다. 공간 해상도뿐 아니라 시간축 프레임 처리도 함께 고려하는 노드다.
VAEDecodeTiled 사용 전 마지막 확인
VAEDecodeTiled가 메모리 문제를 줄이기 위해 만들어진 노드라고 해서 tiled 처리만 사용하면 항상 VRAM 문제가 사라진다고 단정할 수는 없다. 2026년 8월에는 tiled VAE encode/decode 과정의 VRAM 예약이 전체 텐서 크기를 기준으로 계산돼 다른 모델을 불필요하게 VRAM에서 내릴 수 있다는 이슈도 ComfyUI 저장소에 보고돼 있다.
즉 tiled 방식은 VAE의 실제 처리 작업을 분할하는 도구로 이해하는 것이 정확하다. 전체 워크플로우의 모든 VRAM 사용량을 일정하게 고정해 주는 옵션은 아니다.
실제로 사용할 때는 먼저 어떤 노드에서 메모리 오류가 발생하는지 확인하자. 일반 VAEDecode에서만 문제가 발생한다면 VAEDecodeTiled로 교체해 보고, tile_size와 overlap은 기본값에서 시작하는 편이 안전하다. 고해상도 이미지 때문에 마지막 VAE 단계에서 막히는 사용자라면 가장 먼저 테스트할 수 있는 기본 노드 중 하나다.