프롬프트판

전체 · 모션 그래픽 · 음악 · 가사

468「노래 한 소절」 가사 영상 — 소리에 반응하는 원형 비주얼라이저 위로 가사가 노래방처럼 켜지는 20초

곡 제목과 가사 네 줄만 넣으면, 음반처럼 도는 원 둘레 막대 · 빛나는 파형 선 · 떠오르는 불티가 소리에 맞춰 움직이고 가사가 한 글자씩 켜지는 세로 가사 영상 MP4가 나와요. 내 음원이 없어도 반주까지 만들어져요.

받는 것

  • 6장면 세로 가사 영상 MP4 한 편(140 BPM이면 20초, 60fps, 반주 포함)
  • 맨 위에 설정 칸이 있는 HTML — 제목, 가사, 색, 박자를 바꾸며 바로 미리 보기
  • 렌더 스크립트(고친 뒤 AI에게 다시 묻지 않고 명령 한 줄로 새 MP4)
예시 — 칸 예시 그대로 클로드 오퍼스 5.5로 만든 영상 · 반주도 코드로 만들었어요 (소리 켜고 보세요)

클로드 생성
  • 클로드 오퍼스 5.5 이 AI로 만들었어요 — 영상 + 코드로 만든 반주(노래 없음)

칸 채우기

  1. 1칸을 채워요
  2. 2복사 버튼을 눌러요
  3. 3코드를 실행할 수 있는 AI(클로드 오퍼스 5.5 · GPT-6 아스트라 · 제미나이 아르곤)에 붙여넣어요
  4. 4AI가 HTML을 만들고 직접 렌더해서 MP4가 나와요
  5. 5고칠 땐 결과 HTML 맨 위 설정 칸만 바꾸고 렌더 명령 한 줄 다시 묻지 않음
화면 비율

둘 중 하나를 골라 크기를 정하세요.

프롬프트 원문 보기 5,500자
Make a 20-second vertical lyric video for one part of a song, as one self-contained HTML file, and render it to MP4 with sound. It must look like a premium music-player visual from a top studio: a deep night background, one glowing circle that pulses with the music, light that blooms with every beat, and lyrics that light up like karaoke. Do the whole job now without asking questions.

[Inputs (use the default when empty)]
Song title: "【곡 제목】"
Artist or channel: "【부른 사람 · 채널】"
Four lyric lines (slash-separated): "【가사 4줄】" — words wrapped in *asterisks* are the emphasis words
End text: "【끝 문구】" — default: the artist
Audio: "【음원】" — the user may attach their own song file to this chat. If attached, use a 20-second part of it (start where the energy jumps, e.g. a chorus downbeat) and make every visual react to that real sound. If not attached, make the music yourself (see Sound).
Backing mood: "【반주 분위기】" — 밤 · 신스 = minor synth night drive, 로파이 = soft swung lo-fi with seventh chords, 밝은 팝 = bright major pop
Palette: "【색 조합】"
  밤 · 불꽃 = background #0E0B1A, text #FFF4E8, accent fire #FF5A36, second amber #FFB13B, glow violet #7A5CFF, disc #1A1530
  밤 · 바다 = background #061522, text #EAF7FF, accent #3EC5FF, second #9AF1FF, glow #FF6FB1, disc #0E2234
  새벽 · 분홍 = background #1B1026, text #FFF0F7, accent #FF6FB1, second #FFD1E8, glow #8A7BFF, disc #2A1838
Tempo: "【박자】" — default 140 BPM. Aspect ratio: Output size 1080x1920 pixels, 9:16 portrait story. Keep all text inside the central 80% of the height: compress every zone percentage below into the 10-90% range. (default 9:16).

[Sound — analyse it so the picture can listen]
If an audio file was attached, cut the part and use it. Otherwise: if you can generate music, make an instrumental at the tempo and mood; if you cannot, write the backing track yourself in code — synthesize an original instrumental sample by sample into a WAV (kick on every beat, snare on 2 and 4, eighth-note hi-hats, a bass line on the chord roots, a soft chord pad that ducks on the kick, a light sixteenth-note arpeggio, a short echo), four chords looping, with only pad and hats for the first two bars and the full band from bar three. Never use a placeholder or someone else's recording.
Then analyse the final audio offline into one value per video frame: overall loudness (RMS) and 16 log-spaced frequency bands from 50 Hz to 6 kHz, each normalised to 0–1 by its 95th percentile, rising fast and falling slowly. Embed the arrays in the HTML so seek(t) can look them up; if they are missing, fall back to a beat-shaped envelope from the tempo.

[Picture — layers drawn every frame]
1. Background with a radial glow behind the circle whose size and brightness follow loudness.
2. About 70 embers drifting upward, faster and brighter when it is loud.
3. A circular visualiser: 72 bars around a dark disc, mirrored left and right, low bands at the bottom and high bands at the top, colored from amber to fire by height, with a soft glow; the disc has thin record grooves that slowly rotate and a fire-colored centre label that pulses.
4. A glowing waveform line across the lower part built from the bands, swelling on the beat.
5. A music-player progress bar with elapsed and total time under it.
6. A small "♪ title · artist" line at the top after the intro.

[Structure — 6 scenes of 8 beats]
1. Intro: the circle grows in with an overshoot, the title types under it, the artist fades in, then both fade.
2–5. One lyric line per scene, large heavy Korean sans (Noto Sans KR 900) under the circle: it rises in, then its letters light up left to right over the scene like karaoke (lit letters turn the accent color with a glow and hop slightly); the previous line floats up and fades; the next line waits small and dim below.
6. End: the title pops back, the artist under it, then a pill with the end text; fade to the background on the last beat.

[Build]
One HTML file, everything on a single canvas. The script starts with a `const CONFIG` object holding every input plus fps 60 and a seed. All drawing comes from a pure `seek(t)` — no timers, no CSS animation, randomness only from the seed — so any frame renders identically. A settings panel above the preview (hidden with ?render=1) with Korean labels: text inputs for every text input, selects for mood, palette, tempo and ratio, play/pause, a scrubber, and a "설정 복사" button that copies CONFIG as code. Edits re-render instantly.
Write render.mjs: open the page with ?render=1 in headless Chromium (Playwright), wait for document.fonts.ready, step seek(frame / 60) through every frame, screenshot the canvas at 1080 px on the short side, pipe into ffmpeg (libx264, yuv420p, crf 18), then mux the audio as AAC into motion.mp4. Close the browser at the end. Accept an optional JSON file argument that overrides CONFIG.

[Check before finishing]
Render, export the middle of every scene into a contact sheet and look at it, and confirm the MP4 has an audio stream with sensible loudness (not silent, not clipping): bars and waveform visibly react, every lyric is readable at phone size and never clipped, the karaoke reaches the last letter before the scene ends. Fix and re-render if anything fails. Finish with the file paths and the single command to re-render after editing settings.

[Final output format]
Output size 1080x1920 pixels, 9:16 portrait story. Keep all text inside the central 80% of the height: compress every zone percentage below into the 10-90% range.
This selected output format takes priority over any fixed canvas size or aspect ratio elsewhere in this template. Adapt the composition, text zones and margins to the selected canvas without stretching or cropping essential content. Device safe areas apply only when a device is selected. Never print these format instructions on the image.

다른 포스터 보기

쓰는 법 · 자주 묻는 것

노래 한 소절을 쇼츠 · 릴스용 가사 영상으로

노래를 만들었는데 올릴 영상이 없을 때 쓰는 카드예요. 음반처럼 도는 원 둘레의 막대가 소리에 맞춰 출렁이고, 아래 파형 선이 박자마다 부풀고, 불티가 떠올라요. 가사는 한 줄씩 들어와 노래방처럼 왼쪽부터 한 글자씩 켜져요. 마지막엔 곡 제목과 채널 이름으로 끝나요.

내 음원이 없어도 돼요

음원 칸은 비워도 돼요. 그러면 AI가 박자와 분위기에 맞춰 반주를 직접 만들어 넣어요. 클로드 오퍼스 5.5는 음악 모델이 없어도 소리를 코드로 계산해서 반주(노래 없는 간단한 음악)를 만들어요 — 외부 서비스 · 계정 · 비용이 들지 않아요. 내 노래가 있으면 파일을 AI 창에 함께 올리세요 — 화면이 그 노래 소리에 반응해요. 위 예시는 클로드 오퍼스 5.5로 만든 영상이고, 반주도 코드로 만든 거예요.

칸 채우는 법

가사는 「/」로 나눠 네 줄, 한 줄에 열다섯 자 안쪽이 보기 좋아요. 별표 말은 강조로 읽혀요. 박자는 내 노래의 BPM에 맞추면 가사가 박에 맞게 켜져요. 남의 노래 · 가사는 쓰지 마세요 — 내가 만든 노래나 쓸 권리가 있는 음원만요.

고칠 때는 다시 묻지 않아요

결과 HTML 맨 위 설정 칸에서 제목 · 가사 · 색을 바꾸며 미리 보고, 「설정 복사」 뒤 렌더 명령 한 줄이면 새 영상이 나와요.