우리의 검증기는 프레임이 아닌 파일을 확인했습니다. 첫 외부 사용자가 이 차이를 가르쳐 주었습니다
요약
오픈 소스 AI 에이전트 시스템 auto-xhs가 외부 사용자로부터 발견한 세 가지 시각적 결함과 그 해결 과정을 공유합니다. 기존 검증기는 파일 메타데이터만 확인했으나, 실제 프레임 단위의 분석을 통해 빈 화면, 낮은 비트레이트, 카드 겹침 등의 문제를 개선했습니다.
핵심 포인트
- 검증기가 파일 정보가 아닌 실제 프레임을 확인하도록 업그레이드됨.
- 빈 프레임(Blank frames) 및 낮은 비트레이트(Low bitrate) 검사 기능이 추가되어 안정성이 향상됨.
- 카드 겹침 문제는 감지 대신 '영역당 하나의 지연 진입'이라는 예방 규칙으로 변경됨.
auto-xhs는 AI 에이전트(Muse, Dots 또는 Grok Bot)가 샤오홍슈 계정을 연구, 글쓰기, 영상 제작, 게시 및 댓글 답글 달기까지 엔드투엔드로 운영할 수 있게 해주는 오픈 소스 시스템입니다. 이는 사람이 브라우저를 사용하는 것처럼 작동하며 비공식 API는 사용하지 않습니다. 저는 10월 14일에 이를 오픈소스로 공개했습니다.
같은 날, 베트남의 사용자 axiom3356이 파이프라인을 그대로 실행하고 출력된 영상을 측정하여 issue #1을 제기했습니다. 이 이슈에는 우리의 검증기인 validate.py가 포착하지 못한 세 가지 재현 가능한 시각적 결함이 포함되어 있었습니다. 단 하나도 놓치지 않았습니다.
세 가지 결함은 다음과 같습니다:
- 장면 전환 시, 화면이 약 2초 동안 거의 공백 상태가 됩니다. 새로운 장면에 카드가 하나씩 나타나는데, 첫 번째 카드가 표시되기 전에 화면에 아무것도 없습니다.
- 완성된 영상의 비트레이트는 585 kb/s로 나왔습니다. 1080p 기준으로는 너무 낮은 수치이며, 가장자리가 번져 보입니다. 최소한 2 Mb/s는 되어야 합니다.
- 동일 영역에 있는 두 개의 주석 카드가 서로 다른 지연 시간으로 진입하면서 겹칠 수 있습니다.
그의 근본 원인 분석 메모가 저희에게 큰 충격을 주었습니다. 검증기는 파일(지속 시간, 해상도, 단어 수, 침묵 간격)은 확인했지만, 단 하나의 프레임도 살펴보지 않았다는 것입니다.
저희가 변경한 모든 내용은 그의 보고서 덕분입니다:
- 빈 프레임(Blank frames) 확인 기능이 추가되었습니다. 0.5초마다 프레임을 가져와 작은 그레이스케일 이미지로 축소한 다음, 거의 단색인지 여부를 확인합니다. 이 상태가 연속으로 2초 동안 지속되면 대략적인 위치와 함께 경고를 발생시킵니다. 이는 ffmpeg와 Python 표준 라이브러리만 지원합니다.
- 낮은 비트레이트(Low bitrate) 확인 기능이 추가되었습니다. 2000 kb/s 미만일 경우 검증기(validator)가 경고합니다. 이전 설정으로 렌더링된 저희 자체 날씨 예제는 844 kb/s로, 이 역시 경고를 받으며 그 경고는 정확합니다.
- 어셈블러에 비트레이트 하한선이 적용되었습니다: 목표 3M, 상한 4M. 여기서 작은 함정이 있었습니다. 저희가 -crf 21과 -b:v를 함께 설정했는데, 이 조합에서는 ffmpeg가 crf를 따르고 비트레이트 목표는 무시했습니다. crf를 제거하니 문제가 해결되었습니다.
- 겹치는 카드(overlapping cards)는 기계적 검사(machine check)가 아닙니다. 그 이유를 명확히 말씀드리고 싶습니다. 프레임은 픽셀입니다. 픽셀은 전체 배경(fine)과 프레임 가장자리에 의해 잘린 카드(broken)를 구분할 수 없습니다. 그런 기반의 검사는 매일 거짓 경보를 울릴 것입니다. 그래서 대신에, 이제 템플릿 규칙에는 '영역당 하나의 지연 진입(delayed entrance per area)'이 필요하며, 영역을 공유하는 카드는 레이아웃 컨테이너(layout container)로 들어가야 한다고 명시합니다. 감지(detection)가 아닌 예방(prevention)입니다.
새로운 두 가지 확인 기능 모두 경고만 발생시킵니다(warn-only). 경고는 파이프라인을 실행하는 사람을 존중하지만, 잘못 작동할 수 있는 검사에서 나오는 강한 오류(hard error)는 그렇지 않습니다.
이 문제는 의도적으로 아직 열려 있습니다. 만약 axiom3356이 PR(Pull Request)을 보내면, 그가 먼저 검토되고 먼저 사용될 것입니다. 그는 문제점을 발견하고 이 확인 기능들을 제안했습니다.
만약 직접 실행해 보고 비디오가 검증기가 놓치는 방식으로 잘못 보인다면, 그것이 바로 제가 원하는 보고서입니다. 그리고 만약 매일 반복되는 콘텐츠(날씨, 요약본, 순위 등)를 가지고 있다면, 플레이북은 scenarios/에 존재하며 새로운 플레이북도 환영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기