Audio-first AI video: using Seed-Audio 1.0 as the timeline for Seedance 2.0 (full workflow)
Been building AI video for a while, and Seed-Audio 1.0 landing on Atlas is the first thing in a while that changed the actual shape of the workflow, not just the output quality. Writing this up in full because the shift is worth explaining properly.
The old way, and why it hurt. You write a shot list, pull a first frame, sometimes a last frame, then hand the video model a wall of text: what happens second 0 to 3, how the camera moves, which line lands when. Every timing beat described in words. And the question with no clean answer, how long should the shot be. Four seconds felt short, eight felt wasteful, so you guessed and regenerated.
The method in one line: put the sound first. Generate the whole shot's audio with Seed-Audio 1.0, dialogue and effects and music in one track, then let Seedance 2.0 take that track as a reference and generate the picture to match. The audio becomes the anchor, and the video prompt drops to a couple of plain sentences.
Meet Seed-Audio 1.0. It's ByteDance's audio model from their June conference, now live on Atlas with a direct API, and it is not TTS. Traditional TTS is one voice reading a passage, multi-character dialogue generated separately and stitched, effects and music added in post. Seed-Audio generates a finished mixed piece in one pass: multiple characters' dialogue auto-arranged, laughs, sighs, pauses, accent, music underneath, effects woven in. The laugh isn't a clip you drop in, the model performs it from the prompt. There are two modes. T2A is pure text to audio, you describe the voices in words. TA2A takes up to three reference clips, tag them u/audio1 and u/audio2 to assign who speaks in which voice, so you can record 30 seconds yourself and it clones your timbre into a multi-voice conversation. https://www.atlascloud.ai/models/bytedance/seed-audio-1.0
The prompt formula ByteDance gives runs: music start, then character A description (age, gender, accent, emotion, voice), then A's line, then an effect, then character B, and so on. Effects written as time order, degree, count or duration, effect. Music as style, instrument, rhythm.
The prompt is a timeline. The property that matters and isn't spelled out anywhere: you write the prompt in narrative order and the audio comes out in that order. Whoever appears first in the text sounds first. Two things we had to work out that the docs skip. Mark BGM explicitly with "Soundtrack" or the model treats a mood line as a two-second effect that vanishes. And to place a sound mid-line, split the dialogue in two and put the effect between them, since it won't infer overlap from a word like "meanwhile". Get those right and every line lands on a fixed spot on the track. That audio isn't a voiceover, it's a timeline with the full narrative rhythm baked in.
Audio as anchor, long prompts retired. Seedance 2.0's reference-to-video mode takes both an image and audio as reference, so each shot now gets three things: one image, one generated audio track, one short natural-language description. The image just says "it looks like this", it no longer has to be a strict first or last frame, because the timing already lives in the audio. The audio replaces the hardest part of the old prompt, the second-by-second choreography. The description is back to a sentence or two of mood and scene. https://www.atlascloud.ai/models/seedance2
The quiet bonus is clip length. You stop guessing. Generate the audio, set the video duration to match, done. Pixar has done exactly this for decades with story reels, cutting the audio first and editing the picture to sound. Sound-first isn't new, it's a film-industry method. The difference is that the studio step is now one prompt.
Five shots, five capabilities. We validated it on a five-shot demo, a magic-school orientation, first person, hands only. Shot one drove everything from pure text: voice, steam timing, a train whistle, station chatter, a strings-and-harp score, no reference at all. Shot two locked voice consistency by feeding shot one's audio back in as u/audio1, the model's voice-registration feature. Shot three ran a two-person dialogue with u/audio1 plus a 30-second clip of our own recorded voice as u/audio2, and the finished audio had our timbre saying lines we never recorded, laughing at itself. Shot four tested dynamic music, a beat of silence and then a bell with a musical accent on the exact frame the magic lights up. Shot five had no dialogue at all, two characters on brooms over a dusk castle, just wind, the broom cutting air, a far bell, a swelling score and two laughs. Traditional TTS can't touch a wordless scene. For Seed-Audio a laugh is vocabulary, the same as a line. Five audio tracks, five images, five short descriptions, and Seedance generated the shots straight through.
A face-swap trick worth stealing. For the images, if you want cinematic look and character consistency at once, Midjourney's aesthetic still wins, and its officially licensed Youchuan v8.1 is on Atlas. But MJ's character consistency is weak, one character can come out with five different faces across five frames. So generate the cinematic base on MJ, then use Nano Banana 2's edit mode to paste the character reference face in, with "strictly keep the same lighting" in the prompt. MJ brings the look, Nano Banana 2 keeps the character, and it sidesteps the stricter review on GPT Image 2. https://www.atlascloud.ai/models/google/nano-banana-2/text-to-image
One key for the whole pipeline. Tallying the models this clip used: bytedance/seed-audio-1.0 for sound, youchuan/v8.1 for the base image, google/nano-banana-2 for the face swap, bytedance/seedance-2.0 for the video. Four models across audio, image and video, all on Atlas, one API key start to finish. Switching model is a change to the model string, not juggling four platforms' accounts and keys. Half of why this workflow runs smoothly is that.
Seedance 2.0 and Seed-Audio 1.0 are both live now if you want to build the audio-first flow today. The model pages have the params, pricing and an in-browser try.