설명
비디오 디코딩 및 저장 노드는 잠재 데이터 표현에서 비디오 프레임과 선택적 오디오를 디코딩하고 결합하여 결과 비디오를 파일로 직접 저장합니다. 메모리 효율성을 위해 설계되었습니다. 디코딩된 프레임은 모든 중간 이미지를 RAM에 저장하지 않고 디스크에 실시간으로 기록됩니다. 따라서 사용 가능한 메모리를 초과할 수 있는 긴 비디오나 고해상도 비디오에 적합합니다.
이 노드는 비디오 프레임의 잠재 표현(일반적으로 비디오 확산 모델에 의해 생성됨)과 선택적 오디오의 잠재 표현을 입력으로 받습니다. 비디오 잠재 데이터를 디코딩하기 위한 VAE 모델(video_vae)과 오디오 잠재 데이터를 디코딩하기 위한 다른 VAE 모델(audio_vae - audio_latent가 제공된 경우에만 필요)이라는 두 개의 별도 VAE 모델을 제공해야 합니다. 이 노드는 타일링 파라미터를 통해 메모리 사용량을 더욱 줄이기 위해 타일드 디코딩(공간 및 시간)도 지원합니다.
비디오 생성 파이프라인의 최종 단계로 이 노드를 사용하여 결과를 일반적인 비디오 컨테이너 형식으로 내보냅니다.
입력
| 입력 | 타입 | 필수 | 기본값 | 참고 |
|---|---|---|---|---|
video_latent | LATENT | 예 | – | 비디오 프레임의 잠재 표현입니다. 일반적으로 호환되는 비디오 확산 모델에서 얻습니다. |
audio_latent | LATENT | 아니요 | – | 오디오 프레임의 잠재 표현입니다. 제공된 경우 audio_vae도 연결해야 합니다. 오디오 없는 비디오 출력을 원하면 연결 해제된 상태로 둡니다. |
fps | FLOAT | 예 | 25.0 | 출력 비디오의 프레임 속도입니다. 범위: 0 – 999 (단계 0.01). |
filename_prefix | STRING | 예 | video/ComfyUI | 저장된 비디오 파일의 접두사입니다. %date:yyyy-MM-dd%와 같은 형식 토큰이나 %Empty Latent Image.width%와 같은 노드 값 참조를 포함할 수 있습니다. 덮어쓰기를 방지하기 위해 노드가 자동으로 고유 접미사를 추가합니다. |
format | COMBO | 예 | auto | 출력 컨테이너 형식입니다. 옵션은 사용 가능한 시스템 인코더에 따라 다릅니다(예: mp4, avi, mkv, webm). auto는 가장 널리 지원되는 형식(일반적으로 MP4)을 선택합니다. |
codec | COMBO | 예 | auto | 사용할 비디오 코덱입니다. 옵션은 시스템에 설치된 인코더에 따라 다릅니다(예: libx264, libx265, libvpx, libaom-av1). auto는 일반적으로 사용 가능한 코덱(보통 H.264)을 선택합니다. |
video_vae | VAE | 예 | – | video_latent을 픽셀 프레임으로 디코딩하는 데 사용되는 VAE 모델입니다. 잠재 표현과 호환되어야 합니다. |
audio_vae | VAE | 아니요 | – | audio_latent을 오디오 샘플로 디코딩하는 데 사용되는 VAE 모델입니다. audio_latent가 연결된 경우 필수입니다. |
tiling | DYNAMICCOMBO | 예 | – | 비디오 디코딩을 위한 타일링 모드입니다. 동적 옵션에는 disable(전체 프레임 디코드), spatial(공간적으로만 타일), temporal(시간적으로만 타일) 또는 both가 포함될 수 있습니다. 정확한 선택은 노드 구현과 연결된 VAE에 따라 다릅니다. |
tile_size | INT | 예 | 512 | 각 공간 타일의 너비/높이입니다. 값이 작을수록 최대 메모리 사용량은 감소하지만 디코딩 시간이 증가합니다. 범위: 64 – 4096 (단계 32). 공간 타일링이 활성화된 경우에만 사용됩니다. |
overlap | INT | 예 | 64 | 인접한 공간 타일 간의 중첩(픽셀 단위)입니다. 중첩이 클수록 타일 경계의 눈에 띄는 이음새가 줄어들지만 메모리와 처리 시간이 더 많이 소요됩니다. 범위: 0 – 4096 (단계 32). |
temporal_size | INT | 예 | 4096 | 시간적 타일링이 활성화된 경우 한 번에 디코딩할 프레임 수입니다. 총 프레임 수보다 큰 값은 시간적 타일링을 효과적으로 비활성화합니다. 시간적 타일링을 지원하는 비디오 VAE에만 관련됩니다. 범위: 8 – 4096 (단계 4). |
temporal_overlap | INT | 예 | 16 | 연속적인 시간적 청크 간의 중첩 프레임 수입니다. 중첩이 클수록 시간적 이음새를 부드럽게 할 수 있지만 메모리 사용량이 증가하고 디코딩 시간이 늘어납니다. 범위: 4 – 4096 (단계 4). |
타일링 동작
tiling이 비활성화되면 전체 프레임이 한 번에 디코딩됩니다. 이는 가장 많은 메모리를 사용합니다.- 공간 타일링(
tiling = "spatial"또는"both")은 각 프레임을tile_size×tile_size크기의 더 작은 타일로 분할하고, 각각 독립적으로 디코딩한 후 중첩 영역을 혼합합니다. - 시간적 타일링(
tiling = "temporal"또는"both")은 프레임 시퀀스를temporal_size프레임의 청크로 분할하며, 각 청크는temporal_overlap프레임만큼 중첩됩니다. 시간적 분해를 지원하는 VAE(예: 일부 비디오 VAE)에만 적용 가능합니다. - 노드는 중첩 영역과 타일 경계의 혼합을 자동으로 처리합니다.
출력
이 노드에는 출력 연결이 없습니다. 디코딩된 비디오는 filename_prefix에서 구성된 경로를 사용하여 디스크에 직접 기록됩니다. 노드는 워크플로에 데이터를 반환하지 않습니다.
사용 참고 사항
- 메모리 관리: 노드는 디코딩된 프레임이 생성되는 대로 디스크로 스트리밍합니다. 타일링이 비활성화된 경우에도 모든 프레임을 동시에 메모리에 축적하지 않습니다. 타일링은 디코딩 속도를 희생하여 최대 메모리를 더욱 줄입니다.
- 오디오: 오디오를 포함하려면
audio_latent와audio_vae를 모두 제공하세요. 오디오 VAE는 오디오 잠재 공간(예: 오디오 확산 모델)과 일치해야 합니다. 오디오 잠재 데이터가 연결되지 않은 경우 출력 비디오는 무음입니다. - 포맷 및 코덱 지원: 사용 가능한 형식과 코덱은 시스템의 FFmpeg(또는 다른 인코더) 설치에 따라 다릅니다. 번거로움 없는 경험을 위해
auto를 사용하고, 특정 코덱이나 컨테이너가 필요한 경우 필요한 인코더가 설치되어 있는지 확인하세요. - 파일 이름 접두사 토큰: ComfyUI의 형식 구문을 사용하여 날짜, 시간 또는 노드 값을 포함할 수 있습니다. 예를 들어:
video/ComfyUI_%empty_latent_image.width%x%empty_latent_image.height%_%date:yyyy-MM-dd%
는video/ComfyUI_512x512_2025-01-15_0001.mp4와 같은 파일 이름을 생성합니다. - 타일 크기 조정: 대부분의 사용 사례에서
tile_size512와overlap64는 메모리와 속도 간의 좋은 균형을 제공합니다. 메모리가 충분하면tile_size를 늘리고, VRAM이 부족하면 줄이세요. - 시간적 타일링: 이는 기본적으로 시간적 타일링을 지원하는 VAE에서만 효과적입니다. VAE가 지원하지 않으면 시간적 파라미터를 설정해도 효과가 없습니다.
- 단계 증가: 모든 정수 타일 파라미터는 노드에 정의된 단계 크기(공간의 경우 32, 시간의 경우 4)를 따릅니다. 단계에 정렬되지 않은 값은 자동으로 반올림됩니다.
댓글
GitHub로 로그인하고 토론에 참여하세요.