동영상 마스크
말로 설명한 대상을 SAM 3.1 또는 SAM 3으로 클립 전체에서 추적해 흑백 마스크 동영상을 만듭니다. 최대 5분 클립까지 지원합니다.
동영상 마스크 노드는 말로 설명한 대상을 동영상 전체에서 추적해 흑백 마스크 동영상을 반환합니다. 마스크는 클립과 길이와 프레임 속도가 같습니다. 모든 프레임에서 대상의 모든 픽셀은 흰색이고, 나머지는 모두 검은색입니다. 이 노드는 SAM 3.1 또는 SAM 3으로 실행됩니다.
마스크는 일반 동영상이므로 동영상을 연결할 수 있는 곳이면 어디에나 연결할 수 있습니다. 주로 함께 쓰는 노드는 마스크 합성입니다. 마스크 합성은 이 마스크를 사용해 한 동영상의 대상을 다른 동영상 위에 놓습니다. 마스크는 조명 변경 및 교체의 사용자 지정 — 매트 동영상 모드에서 마스크 동영상 입력에도 쓸 수 있습니다.
사용 시기
- 마스크 합성과 함께 대상을 새 장면으로 옮길 때. 예를 들어 댄서를 해변으로 옮깁니다.
- 클립에서 제품이나 사람 뒤의 배경을 바꿀 때.
- 조명 변경 및 교체의 사용자 지정 — 매트 동영상 모드에 쓸 프레임 단위로 정확한 매트 동영상을 만들 때.
- 마스크 합성의 마스크 반전으로 한 대상을 뺀 나머지를 모두 남길 때.
빠른 시작
노드 추가
캔버스에서 Tab을 누르고 동영상 › 연장 및 스타일 변환 › 동영상 마스크를 선택하세요.
동영상 연결
클립을 동영상 입력에 연결하세요. 예를 들어 동영상 업로드 노드에서 연결합니다.
대상 설명
설정 패널을 여세요. 마스크할 대상 설명에 짧은 명사구를 쓰세요. 예를 들면 “the dancer”(댄서)나 “the red car”(빨간 자동차)입니다.
실행
노드에서 실행을 클릭하세요. 마스크 동영상이 노드에 나타납니다. 마스크 출력을 마스크 합성 노드의 마스크 입력에 연결하세요.
입력
| 입력 | 받는 것 | 하는 일 |
|---|---|---|
| 동영상 | 동영상 업로드, 동영상 생성, 동영상 자르기 같은 동영상 노드 | 마스크할 클립입니다. 필수입니다. |
| 프롬프트 | 텍스트 같은 텍스트 노드 또는 목록 항목 | 대상에 대한 설명입니다. 연결한 프롬프트는 설정 패널의 설명을 대신합니다. 선택 사항입니다. |
출력
| 출력 | 담고 있는 것 |
|---|---|
| 마스크 | 마스크 동영상입니다. 클립과 길이와 프레임 속도가 같은 MP4입니다. 흰색은 대상, 검은색은 나머지 모두입니다. |
흰색이 대상입니다. 정지 이미지를 마스크하는 노드인 마스크 생성도 같은 규칙을 쓰고, 마스크 합성도 이 규칙을 기대합니다.
회전된 휴대폰 클립, 가변 프레임 속도 클립, 긴 변이 1920픽셀을 넘는 클립은 먼저 바로 세운 방향, 일정한 프레임 속도, 최대 1920픽셀로 변환됩니다. 마스크는 그 크기가 됩니다. 마스크 합성은 마스크를 원래 크기의 영상에 맞게 늘이므로 따로 할 일은 없습니다.
마스크에는 어떤 요금제에서도 워터마크가 들어가지 않습니다.
설정
| 설정 | 하는 일 |
|---|---|
| 마스크할 대상 설명 | 추적할 대상이며 최대 500자입니다. “the woman in the red coat”(빨간 코트를 입은 여성)나 “the skateboard”(스케이트보드) 같은 짧은 명사구가 가장 좋습니다. 여러 대상은 쉼표로 구분하세요. 예를 들면 “person, dog”입니다. 마스크는 대상 중 하나라도 있는 곳에서 흰색이 됩니다. 프롬프트에 텍스트 노드를 연결하지 않았다면 필수입니다. |
| 감지 임계값 | 모델이 영역을 표시하기 전에 얼마나 확신해야 하는지 정합니다. 0.05~0.95 사이에서 0.05 단위로 정하며, 기본값은 0.5입니다. 값이 낮을수록 더 많은 영역을 찾지만 정확도는 낮아집니다. 일치하는 것이 없으면 0.3을 시도해 보세요. |
| 모델 | 기본값인 SAM 3.1은 한 번에 여러 대상을 추적하고 더 빠르게 실행됩니다. SAM 3은 절반 가격입니다. |
| 앞뒤 텍스트 | 설명 앞뒤에 항상 붙는 텍스트입니다. 워크플로를 앱으로 쓰는 사람에게는 보이지 않습니다. 프롬프트 앞뒤 텍스트를 참고하세요. |
제한
- 길이: 30fps 기준으로 최대 5분 클립입니다.
- 프레임 속도: 모델이 프레임마다 작업하므로, 프레임 속도가 더 높은 클립은 그만큼 더 길게 계산됩니다. 60fps 클립은 실제 길이의 두 배로 계산되므로 최대 2.5분입니다.
- 긴 클립: 30fps 기준으로 60초보다 긴 클립은 60초 단위로 나뉘어 처리되고, 프레임 단위로 다시 이어집니다. 추적은 각 조각의 시작에서 새로 시작합니다. 마스크에는 설명과 일치하는 모든 것이 담기므로 이 경계는 거의 드러나지 않습니다.
Nodaro가 읽을 수 없는 클립이나 한도를 넘는 클립은 요금이 청구되기 전에 거부됩니다. 긴 클립은 먼저 동영상 자르기로 자르세요.
크레딧
요금은 30fps 기준 클립 길이와 모델에 따라 정해집니다. 길이는 초 단위로 올림하며, 그 길이를 포함하는 첫 번째 행의 요금이 청구됩니다.
| 클립 길이(30fps 기준) | SAM 3.1 | SAM 3 |
|---|---|---|
| 최대 5초 | 55 | 28 |
| 최대 10초 | 105 | 53 |
| 최대 15초 | 160 | 81 |
| 최대 30초 | 314 | 158 |
| 최대 60초 | 622 | 312 |
| 최대 90초 | 935 | 468 |
| 최대 2분 | 1,243 | 622 |
| 최대 3분 | 1,865 | 933 |
| 최대 4분 | 2,486 | 1,243 |
| 최대 5분 | 3,108 | 1,555 |
30fps보다 빠른 클립은 그만큼 더 길게 계산됩니다. 예를 들어 24fps의 12초 클립은 12초로 계산되므로 SAM 3.1에서 160크레딧입니다. 60fps의 10초 클립은 20초로 계산되므로 SAM 3.1에서 314크레딧입니다.
실행 전에 노드는 워크플로가 클립 길이를 알려 줄 때만 그 길이를 압니다. 예를 들면 동영상 자르기의 구간이나 동영상 생성 노드에 설정한 길이입니다. 이때 노드는 그 길이의 30fps 기준 요금을 보여 줍니다. 그렇지 않으면 노드는 범위를 보여 줍니다. SAM 3.1에서는 553,108크레딧, SAM 3에서는 281,555크레딧입니다. 실제 실행에서는 항상 실제 프레임 속도를 포함해 클립을 측정하고, 해당 행의 요금이 청구됩니다.
팁
- 짧은 명사구를 쓰세요. 댄서에 대한 긴 문장보다 “the dancer”(댄서)가 더 잘 맞습니다.
- 일치하는 것이 없으면 임계값을 낮추세요. 설명을 다시 쓰기 전에 0.3을 시도해 보세요.
- 마스크하기 전에 자르세요. 요금은 클립 길이를 따르므로 동영상 자르기로 필요한 순간만 남기세요.
- 크레딧을 아끼려면 SAM 3을 선택하세요. SAM 3은 SAM 3.1의 절반 가격입니다. SAM 3.1은 한 번에 여러 대상을 추적하고 더 빠르게 실행됩니다.
- 화면 밖으로 나간 대상도 다시 찾습니다. 대상이 돌아오면 마스크가 다시 대상을 따라갑니다. 대상이 없는 프레임은 검은색입니다.
문제 해결
실행이 “No region matched the mask prompt on any frame” 메시지와 함께 실패합니다. 동영상에서 설명과 일치하는 것이 없었습니다. 크레딧은 환불됩니다. 설명을 단순한 명사구로 줄이거나 감지 임계값을 낮추세요.
클립이 너무 길다며 거부됩니다. 클립이 30fps 기준으로 5분보다 길거나, 프레임 속도가 더 높은 클립이 그보다 길게 계산되었습니다. 동영상 자르기로 자른 뒤 다시 실행하세요.
셀프 호스팅 설치에서 실행이 실패합니다. 셀프 호스팅 설치에서는 동영상 마스크의 모델을 실행하는 공급자의 키가 필요합니다. 키가 없으면 그 사실을 알려 주는 메시지와 함께 실행이 실패합니다. 공급자 키를 참고하세요.
API에서 사용
POST /v1/video-mask는 videoUrl, prompt(최대 500자, 쉼표로 여러 대상 추적), 선택 사항인 threshold(0.05~0.95, 기본값 0.5), 선택 사항인 provider(sam-3.1(기본값) 또는 sam-3)를 받습니다. 작업을 반환합니다. 완료된 작업의 출력에는 videoUrl(마스크), thumbnailUrl, width, height, frames, chunks, coverage가 담깁니다. 읽을 수 없는 클립이나 한도를 넘는 클립은 요금이 청구되기 전에 400 오류로 거부됩니다.
- SDK:
videoMask({ videoUrl, prompt, threshold, provider }). 미디어 및 업로드를 참고하세요. - MCP:
video_mask도구는video_url또는video_asset_id,prompt, 선택 사항인threshold와provider를 받습니다. 이 작업 ID는mask_composite에mask_asset_id로 넘길 수 있습니다. MCP 도구 레퍼런스를 참고하세요. - CLI:
nodaro media video-mask <videoUrl> <prompt> [--threshold <n>] [--model sam-3.1|sam-3]. 미디어 및 보이스 명령을 참고하세요.
자주 묻는 질문
동영상 마스크 노드는 무엇을 하나요?
동영상 마스크는 말로 설명한 대상을 동영상 전체에서 추적합니다. 길이와 프레임 속도가 같은 흑백 마스크 동영상을 반환하며, 모든 프레임에서 대상은 흰색, 나머지는 모두 검은색입니다.
SAM 3.1과 SAM 3 중 무엇을 선택해야 하나요?
기본값은 SAM 3.1입니다. SAM 3.1은 한 번에 여러 대상을 추적하고 더 빠르게 실행됩니다. SAM 3은 SAM 3.1의 절반 가격입니다.
동영상은 얼마나 길 수 있나요?
30fps 기준으로 최대 5분입니다. 프레임 속도가 더 높은 클립은 그만큼 더 길게 계산되므로, 60fps 클립은 최대 2.5분입니다. 한도를 넘는 클립은 요금이 청구되기 전에 거부됩니다.
여러 대상을 추적할 수 있나요?
네. 대상을 쉼표로 구분하세요. 예를 들면 “person, dog”입니다. 마스크는 대상 중 하나라도 있는 곳에서 흰색이 됩니다.
프롬프트와 일치하는 것이 없으면 어떻게 되나요?
어느 프레임에서도 일치하는 것이 없으면 실행이 “No region matched the mask prompt on any frame” 메시지와 함께 실패하고 크레딧이 환불됩니다. 설명을 더 짧고 단순하게 바꾸거나 감지 임계값을 낮추세요.
마스크한 대상을 다른 동영상에 넣으려면 어떻게 하나요?
마스크 출력을 마스크 합성 노드의 마스크 입력에 연결하세요. 원본 동영상은 전경 입력에, 새 장면은 배경 입력에 연결합니다.
관련 문서
마스크 합성
조명 변경 및 교체
마스크 생성
동영상 자르기
프롬프트 앞뒤 텍스트
최종 업데이트