영상 생성 AI 프롬프트를 YAML로 템플릿화하여 관리하기 (Python으로 조합)
요약
영상 생성 AI 프롬프트를 YAML 파일로 요소별 템플릿화하고 Python으로 조합하는 방법을 소개합니다. 이 방식을 사용하면, 복잡한 프롬프트도 '주제', '움직임', '카메라' 등 개별 데이터 요소로 분리하여 관리할 수 있습니다. 이를 통해 비교 실험의 용이성, 버전 추적, 그리고 다양한 생성 도구에 대한 재사용성이 크게 향상됩니다.
핵심 포인트
- 프롬프트 요소를 YAML로 구조화하여 관리합니다.
- Python 스크립트로 개별 요소들을 조합해 최종 프롬프트를 만듭니다.
- 요소 분리를 통해 카메라 워크 등 특정 변수만 비교 실험하기 쉽습니다.
- YAML은 데이터로서의 프롬프트를 다루게 하여 재사용성과 추적성을 높입니다.
영상 생성 AI를 사용하다 보면, 프롬프트가 점점 길어지고 어느새 메모장 같은 문서에 수십 개의 문장이 나열되는 상태가 되기 쉽습니다. '피사체만 바꾸고 싶다', '카메라 워크는 이전 것을 재사용하고 싶다'고 생각해도, 긴 글을 복사 붙여넣기 해서 손으로 수정하는 것은 실수하기 쉽습니다.
그래서 저는 프롬프트를 요소별로 YAML로 관리하고, Python으로 하나의 문자열로 조합하는 운영 방식으로 전환했습니다. 이 글에서는 그 최소 구성을 소개합니다.
영상용 프롬프트는 대략 다음 5가지 요소로 나누면 다루기 쉽습니다.
| 키 | 내용 | 예 |
|---|---|---|
| subject | 무엇이 보이는가 | 나무 테이블에 놓인 흰색 머그컵 |
| ... | ||
| 요소를 분리해 두면, '카메라만 3가지 패턴을 시도한다'와 같은 비교 실험이 매우 편리합니다. |
shots.yaml 파일에는 공통 설정(defaults)과 샷별 설정을 작성합니다. 샷 측에서 작성한 키만 defaults를 덮어쓰는 방식입니다.
defaults:
lighting: 창문에서 들어오는 부드러운 아침 자연광
aspect: "9:16"
...
aspect의 경우, "9:16"처럼 따옴표로 감아두는 것이 핵심입니다. 따옴표를 사용하지 않으면 YAML 1.1 파서에 따라 9:16이 8진수(octal) 숫자로 해석될 수 있기 때문입니다.
PyYAML(pip install pyyaml)만으로 동작합니다.
import sys
import yaml
ORDER = ["subject", "motion", "camera", "lighting"]
...
실행 결과는 다음과 같습니다.
$ python build_prompts.py shots.yaml
[mug_01] 나무 테이블에 놓인 흰색 머그컵, 김이 천천히 피어오르는 모습, 로우 앵글에서 느리게 드리 인(dolly in), 창문에서 들어오는 부드러운 아침 자연광. 화면 비율 9:16.
[mug_02] 양손으로 머그컵을 감싸는 사람의 손 부분, 손가락 끝이 살짝 움직임, 탑 다운 고정 샷, 저녁 시간 따뜻한 색감의 역광. 화면 비율 9:16.
키가 누락된 경우 ValueError로 멈추기 때문에, '카메라 지정을 빠뜨려서 생성하는' 사고를 막을 수 있습니다.
- 차이점 파악 용이: YAML을 Git으로 관리하면 어떤 요소를 변경했을 때 결과가 좋아졌는지 이력으로 추적할 수 있습니다. - 비교 실험 용이:
camera만 다른 샷들을 나열하면, 카메라 워크의 영향을 분리하여 확인할 수 있습니다. - 언어 전환 용이: 요소별로 영어 버전의 YAML을 준비해 두면, 도구에 맞춰 언어를 바꾸는 것도 쉽습니다.
반대로 주의할 점은, 요소를 단순히 '쉼표(,)'로 연결만 하기 때문에 문장으로서의 자연스러움은 다소 희생된다는 것입니다. 신경이 쓰인다면 build_prompt 안에서 템플릿 문자열(예: "{subject}。{motion}。카메라는{camera}。")을 사용하도록 변경하면 가독성이 좋아집니다.
프롬프트를 '문장'이 아닌 '데이터'로 취급하는 것만으로도, 시행착오의 속도가 상당히 달라졌습니다. 생성 도구가 바뀌어도 YAML은 그대로 재사용할 수 있다는 점도 장점입니다. 저는 평소에 여기서 조합한 프롬프트를 Everygen에 붙여넣어 영상을 시제품화하고 있는데, 어떤 도구를 사용하든 같은 방식으로 응용할 수 있을 것이라고 생각합니다.
꼭 자신만의 키 구성을 만들어 보세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기