AI & 자동화

AI 영상 절반을 이미지로 바꿨다 — 비용도 워터마크도 같이 해결됐다

AI 영상 절반을 이미지로 바꿨다 — 비용도 워터마크도 같이 해결됐다

피사체가 변하지 않는 컷을 영상으로 뽑는 건 낭비다. 이미지 한 장에 느린 줌을 주면 구분이 안 되고, 값은 6분의 1이며, 워터마크도 안 붙는다.

영상 절반을 이미지로 바꾼 파이프라인

피사체가 변하지 않는 컷을 영상으로 뽑는 건 낭비입니다. 이미지 한 장에 느린 줌을 주면 시청자는 영상과 구분하지 못하고, 값은 6분의 1이며, 워터마크도 붙지 않습니다. 3편(닉스타말화)을 만들며 이 방식이 자리 잡았습니다.

3편에서 무엇이 달라졌나

3편은 25컷 중 이미지 8장, 영상 8개로 나눴습니다. 인류학 소재라 정물이 많았던 덕이기도 합니다 — 추상 렌더 위주인 심리학 편(1·2편)은 여전히 영상이 훨씬 많습니다.

개수단가합계
영상(플로우 크레딧)8348원2,784원
이미지(API)8약 61원487원
합계163,271원
전부 영상이었다면113,828원

절감액(557원)이 이 방식의 핵심은 아닙니다. 진짜 이득은 워터마크가 없는 것과, 명령 한 줄로 8장이 나오는 것입니다.

판단 기준 하나 — 피사체가 변하는가

변하면 영상, 카메라만 움직이면 이미지입니다. 이 한 문장이 이 글의 뼈대입니다.

쓰는 것3편의 예
피사체가 그대로, 카메라만 움직임이미지옥수수 정물 · 농가 · 병동 · 묘지 · 유리병 · 토르티야 · 부두 자루 · 마당 냄비
피사체가 변한다영상현미경 초점 · 점 무리가 갈라짐 · 알약 빚는 손 · 결합이 풀림 · 끓는 냄비 · 제분 롤러
한 컷에 여러 장면영상(멀티샷)

애매하면 컷 길이로 가릅니다 — 4초를 넘으면 정지 화면이 죽습니다.

왜 웹 UI가 아니라 API인가 — 워터마크가 갈린다

플로우 웹 UIGemini API
가시 워터마크Pro 요금제는 붙는다(가로 83%·세로 90%·밝기 96/255)안 붙는다(실측)
조작브라우저에서 한 장씩명령 한 줄로 8장
비율설정 패널imageConfig.aspectRatio: "9:16"
속도장당 9~12초

SynthID(비가시)는 API 결과물에도 들어갑니다. 가시 표시만 없는 것이고, 유튜브 합성 콘텐츠 고지는 그대로 합니다. 이 구분을 흐리면 안 됩니다.

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-image:generateContent?key=$GEMINI_API_KEY" \
  -H 'Content-Type: application/json' -d '{
    "contents":[{"parts":[{"text":"..."}]}],
    "generationConfig":{"responseModalities":["IMAGE"],"imageConfig":{"aspectRatio":"9:16"}}
  }'

응답의 candidates[].content.parts[].inlineData.data가 base64 JPEG입니다. 출력은 768×1376 — 9:16(0.5625)에 0.558로 거의 정확합니다.

모델별명
gemini-3.1-flash-imageNano Banana 2 — 기본값
gemini-3-pro-imageNano Banana Pro
gemini-3.1-flash-lite-imageNano Banana 2 Lite
gemini-2.5-flash-imageNano Banana

키는 스킬·저장소 밖에 둡니다. 스킬은 공유·커밋되는 물건이기 때문입니다.

이미지 프롬프트는 영상과 다르게 쓴다

영상이미지
동사dollies forward, splits into쓰지 않는다
시간Shot 1 (0-3s)없다
구도움직임의 시작/끝최종 한 컷
여백줌·팬 여유를 둔다

여백이 가장 자주 빠뜨리는 것입니다. 피사체를 꽉 채우면 확대할 때 가장자리가 잘립니다. generous empty space around ...를 명시합니다.

Negative:가 안 먹습니다. 이 API는 그걸 프롬프트의 일부로 그냥 읽습니다. Do not include any text, numbers, hands, faces or people. 같은 평서문이 훨씬 잘 먹습니다.

정지 이미지에 움직임 주기 — 실측으로 고친 규칙

처음엔 "3초에 6% 이내"라는 규칙 하나로 줌과 팬을 다 다뤘습니다. 틀렸습니다.

3초에 6% 이내더 크면 억지로 움직이는 티가 난다
116%로 확대해 두고 민다105%로는 이동 여백이 화면 폭의 5%(약 34px)뿐

105% 팬은 5초 동안 34px 움직입니다. 정지 화면과 구분이 안 됐습니다. 116%로 올리니 화면이 흐릅니다.

zoompan=z='1.00+0.06*on/(N-1)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=1:s=720x1280:fps=24

팬은 z를 1.16으로 고정하고 x(iw-iw/1.16)*on/(N-1)로 밉니다. d=1로 두고 on(출력 프레임 번호)으로 계산합니다. zoompan 기본값은 떨림이 생깁니다.

남는 문제 — 톤 일관성

이미지와 영상이 섞이면 톤이 튀는 컷이 생깁니다. 3편에서 이미지 한 장만 밝기 146으로 나머지(55~120)보다 밝고 채도가 높았습니다. 같은 스타일 문장을 붙였는데도 그랬습니다. 재생성보다 편집기 보정이 싸고 정확합니다. 61원 아끼자고 다시 뽑을 이유가 없습니다.

105% 팬은 5초 동안 34px 움직인다. 정지 화면과 구분이 안 된다.

절감액이 핵심이 아니다. 워터마크가 없는 것과, 명령 한 줄로 8장이 나오는 것이다.


이 시리즈는 제가 실제로 만든 유튜브 쇼츠(1편 완성본 보기)의 제작 기록입니다. 문화인류학·심리학 소재로 상식을 뒤집는 지식 쇼츠를 만듭니다.

발행 2026-08-20 · 최종 확인 2026-08-20