AI 개발 기록

[ShortsMaker] 쇼츠에 들어갈 영상 후보를 자동으로 찾고 고르게 했다 – Part 3

Binary Tree 2026. 10. 6. 15:12

Part 2에서는 대본을 음성으로 바꾸고 자막을 입혀 실제 MP4 파일을 만드는 데까지 갔다.

일단 영상이 재생되는 것까지 확인하고 나니 다음 문제가 눈에 들어왔다.

처음에는 Scene에 들어갈 이미지를 직접 준비했다. 짧은 테스트 영상을 만드는 동안에는 괜찮았지만, 여러 장면이 들어가는 쇼츠를 계속 만들 생각이라면 매번 이미지나 영상을 직접 준비하는 방식은 번거로웠다.

그래서 다음 목표는 단순했다.

장면에 사용할 만한 영상은 도구가 먼저 찾아주고, 나는 결과를 보고 괜찮은지 판단할 수 있으면 좋겠다고 생각했다.

이번 편은 그렇게 이미지 두 장으로 시작했던 ShortsMaker에 영상 소재 검색과 후보 검토, 그리고 실제로 사용할 수 있는 웹 화면이 붙기 시작한 과정이다.

01직접 준비하던 영상 소재를 먼저 찾아오게 했다

첫 번째 변화는 Scene마다 사용할 영상 소재를 Pexels에서 찾게 된 것이었다.

각 Scene에는 장면에 맞는 검색어가 있었고, 그 검색어를 이용해 영상 후보를 찾는 흐름이 만들어졌다.

검색 결과에 나온 영상을 아무거나 사용하는 방식은 아니었다.

영상의 형식과 해상도, 길이 등을 확인해 조건에 맞지 않는 후보를 걸러냈고, 이미 다른 Scene에서 사용한 영상도 가능하면 다시 선택하지 않도록 되어 있었다.

선택한 영상은 다운로드한 뒤 실제 파일로 사용할 수 있는지도 다시 확인했다.

내 입장에서 가장 큰 변화는 내부 처리 방식보다 결과였다.

이제 각 장면에 넣을 영상까지 도구가 먼저 찾아오기 시작했다.

02자동으로 찾았다고 해서 마음에 드는 것은 아니었다

영상 후보를 자동으로 찾을 수 있게 됐다고 해서 바로 끝난 것은 아니었다.

조건에 맞는 영상이라고 해도 내가 봤을 때 그 장면에 잘 어울린다는 보장은 없었다.

검색어에는 맞지만 분위기가 다를 수도 있고, 영상 자체는 멀쩡해도 실제 쇼츠에 넣으면 어색하게 느껴질 수 있었다.

그래서 모든 선택을 도구에 맡기기보다는 후보를 몇 개 보여주고 사람이 마지막으로 고를 수 있는 방식이 필요했다.

그 결과 상위 후보를 최대 8개까지 볼 수 있는 검토 기능이 붙었다.

썸네일과 미리보기를 확인하고 여러 후보를 비교한 뒤, 마음에 들지 않으면 다른 영상으로 바꿀 수 있었다.

특히 첫 장면인 HOOK은 시청자가 가장 먼저 보는 화면이라 따로 확인하고 승인할 수 있게 되어 있었다.

Scene에 사용할 영상 후보를 한눈에 비교할 수 있도록 만든 후보 검토 화면

이 단계에서 자동화의 방향도 조금 더 분명해졌다.

사람이 하던 판단까지 없애기보다는, 판단해야 할 후보를 줄여주는 쪽이 더 현실적이었다.

03배경음악도 최종 영상에 들어가기 시작했다

영상 소재가 들어가면서 최종 결과물에 필요한 요소도 하나씩 추가됐다.

그중 하나가 BGM이었다.

로컬에 있는 MP3나 WAV 파일을 프로젝트에 넣고, 나레이션과 함께 최종 영상에 사용할 수 있는 구조가 만들어졌다.

음량이나 시작과 끝의 페이드, 영상 길이에 맞춘 처리도 함께 들어갔다.

BGM 하나를 바꿨다고 앞에서 만든 음성이나 Scene 영상까지 전부 다시 만들 필요는 없도록 나뉘어 있었다.

다만 이 시점에 내가 실제 음악을 여러 번 들어보면서 음량 밸런스까지 충분히 확인했다고 쓰는 것은 맞지 않는다.

기능이 동작하는 것과, 실제 결과를 보고 만족했다고 판단하는 것은 별개의 문제였다.

04명령어로 하던 작업들이 웹 화면으로 모였다

기능이 늘어나자 또 다른 문제가 생겼다.

프로젝트를 만들고 Scene을 수정하고, 영상 후보를 찾고, 선택하고, 렌더링하는 작업을 각각 명령어로 해야 한다면 내가 계속 사용하기에는 불편했다.

그래서 다음으로 원했던 것은 거창한 웹 서비스가 아니라 내 PC에서 브라우저를 열고 작업할 수 있는 화면이었다.

기존 제작 기능들이 로컬 Web UI에 연결되면서 브라우저에서 프로젝트 목록을 보고 새 프로젝트를 만들 수 있게 됐다.

Scene을 수정하거나 영상 후보를 찾아보고 선택하는 것도 화면에서 할 수 있었고, HOOK 승인과 BGM 설정, 영상 생성도 같은 흐름 안에서 처리할 수 있었다.

렌더링이 끝나면 완성된 영상도 화면에서 확인할 수 있었다.

계정이나 서버 같은 복잡한 구조가 목적은 아니었다.

혼자 사용하는 도구였기 때문에 필요한 작업을 한 화면에서 할 수 있다는 것 자체가 중요했다.

이때부터 ShortsMaker가 기능을 시험하는 코드보다는 실제로 써볼 수 있는 제작 도구에 가까워졌다.

05영상 선택은 다음 숙제로 남았다

영상 소재를 자동으로 찾아오는 것만으로도 반복 작업은 많이 줄었다.

하지만 직접 후보를 보다 보니 한 가지는 분명했다.

기술적인 조건을 통과한 영상과, 장면에 정말 잘 어울리는 영상은 같은 의미가 아니었다.

당시에는 도구가 후보를 찾아주고, 나는 그중에서 결과를 보고 필요하면 바꾸는 방식이었다.

그러다 보니 자연스럽게 다음 질문이 생겼다.

단순히 검색 결과의 앞쪽 영상을 쓰는 것이 아니라, 장면의 내용과 영상이 얼마나 잘 어울리는지까지 AI가 판단하게 할 수 없을까?

이 고민은 이후 OpenCLIP을 이용한 자동 영상 선택으로 이어지게 된다.

💭 후기

ShortsMaker를 만드는 동안 내가 한 일은 코드를 직접 작성하는 것이 아니었다.

“영상 소재도 알아서 찾아오면 좋겠다.”

“마음에 안 들 수도 있으니 후보를 직접 보고 고를 수 있어야 한다.”

“명령어 말고 화면에서 쓸 수 있으면 좋겠다.”

이런 식으로 실제 사용하는 입장에서 원하는 결과를 이야기했다.

그러면 Claude가 기능을 만들었고, 나는 나온 결과를 직접 사용해봤다.

마음에 들면 그대로 넘어가고, 불편하거나 이상한 부분이 보이면 다시 고쳐달라고 했다.

돌이켜보면 ShortsMaker를 만드는 과정은 계속 비슷했다.

원하는 결과를 말한다 → AI가 구현한다 → 직접 써본다 → 마음에 들지 않는 부분을 다시 고친다.

기능이 늘어나면서 새로운 고민도 생겼다.

음성을 만들고, 영상 소재를 받고, Scene을 렌더링하다 보니 중간에 문제가 생겼을 때 모든 작업을 처음부터 다시 하는 것은 점점 부담스러워졌다.

다음 글에서는 →

다음 단계에서는 이미 정상적으로 만들어진 결과물은 그대로 사용하고, 문제가 생긴 부분만 다시 만드는 방법이 필요해졌다.

중간에 작업이 끊겨도 처음부터 다시 시작하지 않고, 기존 음성과 영상 소재, Scene 결과물을 확인해 사용할 수 있는 것은 그대로 재사용하는 방향이었다.

ShortsMaker Part 4에서는 중간에 멈춰도 처음부터 다시 만들지 않도록 Recovery와 Reuse가 붙게 된 과정을 정리해보려고 한다.