## 소개 — 시도하고자 했던 것과 그 이유
저는 아침마다? 크리에이티브 작업을 합니다.
작업을 하다 보면 늘 같은 흐름을 반복하게 됩니다.
마음에 드는 이미지 한 장을 고른다 or 음악을 듣고 머리속에 이미지를 떠올린다 → 이 이미지가 주는 톤&무드를 통해 → 거기서 짧은 시네마틱 나레이션을 뽑는다 → 그 무드에 맞는 사운드/이미지 구체화 한다 → 그걸 바탕으로 다음 Key Visual을 어떻게 만들지 프롬프트를 짠다.
분명 우뇌에 도움은 되겠지만, 이 과정을 얼마나 자동화 시켜볼 수 있을까 궁금했고,
**5단계 워크플로우를 하나의 스킬로** 구현해보고 싶었습니다. 특히 욕심냈던 건 4번 사운드 단계였습니다 — 코드만 만들고 끝나는 게 아니라 **Sonic Pi로 실제 wav 파일까지 렌더**되게 하는 것. 상상만 하던 무드 사운드를 진짜 소리로 듣고 싶었거든요.
## 진행 방법
### 만든 것의 구조
Claude Code로 전역 스킬을 하나 만들었습니다. 폴더 구조는 이렇습니다.
```
~/.claude/skills/visualroutine/
├── SKILL.md # 5단계 오케스트레이션 (메인)
└── references/
├── mood-vocabulary.md # 02단계 톤&무드 어휘 체계
├── sonicpi-mapping.md # 무드 → 음악 파라미터 매핑 규칙
├── sonicpi-runbook.md # Sonic Pi 헤드리스 렌더 실행 절차
├── render-sound.sh # 실제 렌더 헬퍼 스크립트
└── brand-presets/{3ss,generic}.md # 브랜드별 톤/보이스 프리셋
```
### 핵심: "감"이 아니라 "검증된 이론"으로 무드를 파악하게 만들기
이미지를 파악해서 음악으로 연결되는 과정의 포인트는, 톤&무드 파악(2단계)이 추상적인 단어의 조합이 아닌 구조상 연결될 수 있는 언어로 추출되는 것이었습니다. 그래서 **실제 리서치를 해서** 검증된 프레임워크를 어휘 체계로 박아넣었습니다. 3층 구조로 만들었습니다.
- **정량 축** (촬영 표준) — 색온도 / 하이키·로우키 / 채도 / 대비 / 질감 / 구도밀도
- **미장센·의미** — 영화이론 Bordwell 미장센 4요소 + Barthes의 studium/punctum("이 이미지에서 나를 찌르는 단 하나의 디테일") + Berger의 "화면에 없는 것이 만드는 압박"
- **이중 감정가** — 단일 형용사 금지. Russell의 valence×arousal 2D 좌표로 잡고, Plutchik 기반으로 "고요하지만 위협적" 같은 **모순 감정 쌍**으로 기록
그리고 이 감정 좌표(valence/arousal)가 그대로 4단계 사운드 파라미터(장조/단조, 빠르기)로 넘어가게 연결했습니다. 음악감정 연구에서 **mode→valence, tempo→arousal** 매핑이 검증돼 있어서, 무드 좌표가 곧 음악 설계도가 되는 구조입니다.
### TEST 실행 방법 (사용한 프롬프트 전문)
슬래시 커맨드로 씁니다. 아래가 **실제로 제가 넣은 프롬프트 전문**입니다.
**① 디렉션 없이 (기본):**
```
/visualroutine /Users/--/Desktop/Daily/0123dc.jpg
```
**② 디렉션을 추가해서 (사운드·비주얼에 코멘트):**
```
/visualroutine /Users/--/Desktop/Daily/0123dc.jpg , 음악은 다크하고 빠른 비트감에 하이톤의 현악기가 새소리처럼 울려퍼지는듯한 배경 음을 깔고 너의 분석값 소리와 결합시켜줘, 그리고 최종 비주얼은 한가지 포인트를 디테일하게 잡지말고 줌아웃되어 전체적인 상황을 파악할 수 있는 이미지로 추출해줘
```
첫 입력값: 이미지 한 장
참호에 있는 여자의 흑백 이미지
### 결과물 예시
**01. 무드 분석** — 이미지를 실제로 보고 3층 구조로 채웁니다.
```
### MOOD PROFILE
[정량] 색온도: neutral-cool / 명도: low-key(배경 암흑, 인물만 발광) / 채도: muted / 대비: hard / 질감: grainy / 구도: dense(우측 흙벽이 프레임 2/3를 압박)
[미장센] 세팅: 참호/도랑 — 인물을 가두는 구조물 | 조명: 나이트비전 발광, 보호가 아니라 감시의 빛 | 오브젝트: 앞치마 드레스 — 순수의 기호가 오염된 공간에 놓임 | 스테이징: 손끝만 흙벽에 뻗은 절박한 동작
[의미] punctum: 뻗은 손가락 끝이 흙벽에 닿기 직전, 그 미세한 간극 | 부재: 벽 너머·손이 향하는 목적은 끝까지 안 보인다 | 모순: 순수한 옷차림 vs 흙더미의 폭력성
[감정] Valence −2, Arousal +2 → 불안 계열 | 모순쌍: "연약하지만 침입하는"
[한 문장 인상] 손끝이 어둠을 만지는 순간, 그녀는 무엇을 찾고 있었을까.
```
**02. 나레이션**
```
손끝이 흙벽에 닿기 전, 그녀는 이미 멈춰 있었다.
어둠은 그녀를 지우는 대신, 그녀만 남기고 모든 것을 지웠다.
무엇을 찾고 있었던 걸까 — 아니, 무엇 으로부터 여기까지 온 걸까.
```
**03. 사운드** — 무드 좌표를 파라미터로 바꿔 Sonic Pi 코드를 짜고, 실제 wav로 렌더합니다. 아래는 디렉션(다크+빠른 비트+새소리 하이톤+기존 소리 결합)을 반영한 버전입니다.
프로그램을 보여주는 컴퓨터 화면의 스크린샷
**04. 키비주얼 프롬프트** — 무드+나레이션+사운드를 통합해 다음 이미지 프롬프트를 뽑습니다. "줌아웃된 전체 상황" 디렉션을 반영한 후보 중 하나:
```
high-angle aerial view looking down into a winding earthen trench system, tiny pale figure barely visible at one bend, vast dark ridged soil terrain filling the frame, monochrome night-vision texture, hard contrast, grainy, sparse warm cream-gold glow marking the figure's position only, non-place composition, cold and immense --ar 3:2
```
(사례글을 위한, 무료 chatgpt 이미지 생성 자료)
어두운 지역에 있는 뱀의 흑백 사진
---
## 결과와 배운 점
**1. 감정 좌표를 사운드 파라미터로 '수치 연결'하니 사운드가 설득력 있어졌다.**
valence/arousal 2D 좌표 → 스케일(장조/단조)·BPM으로 바로 환산되게 규칙을 박아두니, 사운드가 "그냥 어울리는 소리"가 아니라 "이 무드라서 이 소리"가 됐습니다.
**2. 디렉션을 주면 정확히 반영되면서도 톤 일관성은 유지된다.**
디렉션 없이도 이미지에 충실한 결과가 나오고, "다크한 빠른 비트 + 새소리 하이톤 + 기존 소리 결합" 같은 구체적 코멘트를 주면 그걸 실제 신스/리듬/레이어로 옮기면서도 브랜드 톤은 안 깨졌습니다. 심지어 하이톤 사운드 레이어를 비주얼에서 "하늘을 가로지르는 새떼"로 번역해, 사운드와 이미지가 같은 개념을 공유하게 만들더군요.
### 앞으로의 계획
- 05단계를 지금은 레퍼런스 이미지로 시작을 하는것으로 test 스킬을 만들었는데, 음악 레퍼런스를 주면 그 멜로디를 통해 나레이션 및 이미지 생성하는 등의 방식으로 조금더 창조적이고 활용가능한 작업물을 얻을 수 있는 방식의 스킬로 디벨롭 혹은 재생성 해볼까 합니다.
- 이미지 생성 플랫폼과 연결해서 사운드+이미지 조합된 영상으로 추출되는 결과를 목표로 디벨롭