Design an AI Video Generator Like Seedance: Architecture and Scale

How AI video generators like Seedance work: diffusion transformers, multi-shot models, GPU job scheduling, drafts, distillation, delivery and deepfake safety.

Advanced 10 min read · Updated

The question: design an AI video generator like ByteDance's Seedance. A user types a prompt, optionally adds reference images, video or audio, and receives a realistic clip of up to about 15 seconds with camera moves, several shots and sound. Video is the most demanding generative workload in production today: a single clip can hold a GPU for many seconds or minutes, so model design, inference optimisation, long-job scheduling and safety all decide whether the product can exist at all.

What's public and what's our design. ByteDance has published detailed technical reports on Seedance's models, data and inference speed-ups, and those facts are cited throughout. It hasn't published its production serving system. The fleet, queues and delivery sections here are a reasoned design for the same kind of product, and their numbers are illustrative.

1. Clarify requirements

QuestionAnswer (agreed with the interviewer)
Inputs?Text, reference images; video and audio references as a later phase
Outputs?5-15 s clips, up to 1080p at 24 fps, multi-shot, with optional audio
Scale?1M generations per day; peak ~30 per second
Latency?Fast tier: about 1-2 minutes; relaxed tier: minutes to hours; drafts: seconds
Plans?Credits per second of video, more for higher resolution
Safety?Block abuse, real-person deepfakes and copyright misuse; label all output as AI-made
Data + captionsDiffusion transformerDistillationModelJob schedulingDeliverySafetyServiceAI video product
The system has two halves. A research side produces the model and its speed-ups, and a product side runs it as a reliable, safe service. An interview usually focuses on the second, but knowing the first explains why the second is built the way it is.

2. Why video is so expensive

A frame is an image, and a clip has hundreds of them, and they must also agree with each other over time. A flicker that nobody would notice in a still image becomes obvious in motion. Here's the size of the task for a 5-second clip:

Pixels       : 1920 × 1080 × 120 frames ≈ 249M (vs ~1M for one image)
Compression  : Seedance 1.0's VAE shrinks time by 4 and each side by 16,
               storing 48 channels: overall 1/64 of the raw data size
Latent tokens: at 1080p: 31 latent frames × 120 × 68 ≈ 253K tokens
               at 480p : 31 latent frames × 53 × 30 ≈ 49K tokens
Attention    : naive full attention over 49K tokens compares
               49K × 49K ≈ 2.4B pairs, at every layer and every step
1 image, 1024 × 10241M5 s at 480p49M5 s at 1080p249M15 s at 1080p746M
Pixels to process on a log scale. A short 1080p clip has hundreds of times more data than a standard image, and generation cost grows even faster because every frame must stay consistent with the others.

3. How a video model works

Most leading video models are latent diffusion transformers, an extension of image diffusion. A compression network (VAE) turns video into a small latent. A transformer learns to turn noise into a latent, guided by text. Then the VAE decoder turns the result back into pixels. Sora's public report described this as turning video into spacetime patches that act as transformer tokens. Wan and Meta's Movie Gen publish similar designs.

Prompt + refsText encoderruns onceNoise latentT × H × W × CDiffusion transformermany stepsRefiner480p to 1080pVAE decoderlatent to pixels
The generation pipeline. Text and references are encoded once. The diffusion transformer runs for every step on the latent, which is where nearly all compute goes, and the VAE decoder is the final, heavy step.

Decoupling space and time makes it practical. Comparing every token with every other token is impossible at this size. Seedance 1.0 uses separate layers: spatial layers attend within one frame (and also see the text), and temporal layers attend across frames, using windows. That captures motion at a small fraction of the cost.

Full space-time attention~2,430MSpatial layers (per frame)~78MTemporal layers (per position)~1.5M
Pairs compared per attention pass on a 49K-token latent (31 frames, 1,590 tokens each), on a log scale. Splitting attention into spatial and simple per-position temporal passes cuts the work by about 30×. These are rough counts for intuition, and real windowed temporal layers sit between these.
Visual tokensText tokensSpatial layerwithin one frameVisual tokens onlyTemporal layeracross framesTransformer block
Two kinds of layers in a decoupled block, as Seedance 1.0 describes them. Spatial layers handle what's in a frame and what the prompt asks for. Temporal layers handle how things move, and text doesn't take part.

Flow matching. Seedance 1.0 trains with flow matching and velocity prediction: the model learns the direction from noise to data at each point, which tends to allow straighter paths and fewer steps than older diffusion formulations. For an interview, knowing that step count times per-step cost equals your GPU bill is more important than the math.

4. Inside Seedance

The Seedance 1.0 report is one of the most detailed public accounts of a top video model, so it makes a good case study.

PartWhat the report describesWhy it matters
VAETemporally causal; compresses time 4×, each side 16×; 48 channelsAn image is treated as a one-frame video, and the same model handles both
TransformerDecoupled spatial and temporal layers; temporal attention uses windowsKeeps compute manageable
TextFine-tuned LLM encoder; joint attention in spatial layersFollows detailed prompts
Unified tasksNoisy input with clean or zero frames concatenated, plus a maskOne model does text-to-video and image-to-video
Multi-shot3D positional encoding, with each shot's caption placed in sequenceTells a story with consistent subjects
RefinerBase model at 480p; a diffusion refiner upscales to 720p or 1080pMost creative work happens at low cost
FeedbackReward models for basic quality, motion and aestheticsTunes for what people prefer
PromptBase model480p · motionUpsamplesimple resizeRefineradds detailVAE decodeDraft previewstop here if unwanted
The cascade. Composition and motion are decided at a low 480p, where steps are cheap. A refiner then adds detail, using the low-resolution video as a guide. This costs far less than running the whole process at 1080p.

Multi-shot generation. Older models produce one continuous shot, so a story needs several unrelated clips, each with a new character. Seedance 1.0 supports multiple shots natively. Each shot has its own caption, ordered by time, and the positional encoding tells the model which visual tokens belong with which caption.

CaptionsWide: woman in a red coatClose-up: her faceWide: train leavesFramesShot 1 · 0-2 sShot 2 · 2-3.5 sShot 3 · 3.5-5 s
How a multi-shot prompt maps onto time. Each shot's visual tokens align with its own caption, and they all attend to each other, which keeps the same woman and coat across a cut.

One model for many tasks. Noisy latents are combined channel by channel with conditioning frames and a binary mask. For text-to-video, the conditioning frames are zeros. For image-to-video, the first frame is real. Seedance 1.0 mixes these in training, and raised image-to-video to 40% in continued training.

Noisy latentall framesConditioningreal or zero framesBinary maskgiven or inventConcatenateby channelSame transformer
Unified task input. The same network receives a three-part input, and the mask tells it which frames are given and which it should invent. Only the conditioning and mask differ between tasks.

5. Data and training

A video model is largely shaped by its data pipeline. The Seedance 1.0 report describes shot-aware segmentation with a 12-second maximum clip length, removal of overlays like logos and subtitles, quality and safety filtering, semantic deduplication, rebalancing and dense bilingual captions.

Raw videomultiple sourcesShot splitting12 s maximumRemove overlayslogos · subtitlesQuality + safetyDeduplicatesemanticRebalancetopics · stylesDense captionstwo languagesTraining shards
The training data pipeline from the Seedance 1.0 report. Each step removes something that would harm the model. The caption model is key, because prompt following can only be learned from detailed, accurate captions.
256px · 12 fps640px24 fpstuningstartfinish
Progressive training in the Seedance 1.0 report. It starts cheaply with low resolution, low frame rate and images mixed in. Harder tasks are added as the model improves, and a final step tunes the model on human preferences.

Rights in data have become a major issue for this whole field, and this is covered in the safety section below. In your design, record where each training clip came from, and keep the ability to remove sources, since a future legal or licensing change may require it.

6. Inference optimisation

Seedance 1.0 reports a 5-second 1080p clip in 41.4 seconds on an NVIDIA L20, which it credits to over 10× end-to-end speedup from multi-stage distillation and system work, with no drop in model performance. The biggest gains come from reducing steps. Every other optimisation multiplies on top of that.

Overall (end to end)over 10×Distillation (one method)4×Thin VAE decoder2×Kernel fusion1.15×
Reported speedups from the Seedance 1.0 report, as multipliers. Fewer steps through distillation and a thinner VAE decoder deliver most of the benefit. Compiler work adds a useful amount, and costs nothing per clip.
  • Distillation: train a student model that takes larger, fewer steps; several methods can be stacked to keep quality.
  • Thin VAE decoder: a smaller decoder trained to match the original, which is a 2× speedup with no visible quality loss in their tests.
  • Kernel fusion and mixed precision: run the same math more efficiently on the GPU, with fine-grained low precision where it's safe.
  • Multi-GPU parallelism: split attention across GPUs while cutting communication, plus sending less data with FP8.
  • Async offloading: move models from GPU memory when idle, so large cascades fit, at under a 2% cost.

The VAE decoder is a bottleneck you may not expect. Turning a full latent into 120 frames at 1080p needs a lot of memory at once. Seedance splits this across GPUs by space and time, decoding overlapping tiles and blending them so no seams are visible.

Final latentSplitoverlapping tilesGPU 1tile AGPU 2tile BGPU 3tile CBlend overlapsFrames
Distributed VAE decoding. The latent is cut into overlapping pieces in space and time, each GPU decodes one piece, and the overlaps are blended, so tile edges don't show as visible seams or flicker.

7. Estimates

Jobs        : 1M/day ≈ 12/s average, ~30/s peak
GPU time    : 41.4 GPU-seconds for 5 s at 1080p (Seedance 1.0's figure)
              assume 10 s clips on average → ~83 GPU-seconds per job
Fleet       : 30 jobs/s × 83 s ≈ 2,500 GPUs busy at peak
              × 1.3 headroom ≈ 3,250 GPUs
Cost        : 3,250 × ~$2/hour × 24 ≈ $156K/day ≈ $0.16 per job
Storage     : 10 s at ~10 Mbps = ~12.5 MB; plus smaller versions
              ≈ 20 MB per job → ~20 TB/day
Reads       : most views are of a small popular share, served from a CDN
(illustrative; assumes one GPU per clip and the 1080p time for all jobs)
Image grid (4 images)~4 GPU-sVideo, 5 s at 1080p~41 GPU-sVideo, 10 s at 1080p~83 GPU-sVideo, 15 s at 1080p~124 GPU-s
Compute per job compared with the text-to-image estimate on this site, on a log scale. Video is around twenty times heavier than an image grid. That's why plans charge per second of output, and why drafts and relaxed tiers exist.

Compute cost can decide whether the product survives. In March 2026, OpenAI announced that it was shutting down the Sora app and API, about six months after the Sora 2 launch. OpenAI didn't give a detailed reason, but several reports linked the decision to the high cost of serving video. Do this estimate early, and check that your pricing covers it.

8. Architecture

ClientAPIcredits · idempotencySafety inprompt · referencesPriority queuesfast · relaxedSchedulerGPU-seconds · gangsGPU stagesbase · refine · decodeCheckpointslatentsSafety outframes · audioEncode + labelHLS · C2PACDN + notify
An asynchronous job system. The API validates and estimates cost, a scheduler assigns GPUs by priority, and stages run in order. Every stage checkpoints to object storage, and a finished clip passes safety before it reaches a CDN.

A worked example. Dev wants: *"A red fox runs through snow at dawn, slow motion, camera tracks alongside."* At 10 seconds, 1080p, on the fast tier:

ClientAPISchedulerGPU workerPOST /videos (idempotent)safety · reserve credits202 job_id, estimate ~90 senqueue fast tierassign GPUsdraft preview at 480prefine, then decodedone; run safety + encodeready: playback URL
A job's journey. The client gets a job id at once and a draft soon after. Credits are reserved at the start and settled at the end, so failed jobs are never charged.
video_jobs(job_id, user_id, tier, status, stage, prompt, seed, duration_s,
           resolution, model_version, gpu_seconds_est, gpu_seconds_used,
           checkpoint_path, created_at, finished_at)
video_refs(job_id, kind[image|video|audio], storage_path, safety_status)
videos(video_id, job_id, master_path, hls_path, poster_path,
       provenance_id, visibility)

9. Scheduling long GPU jobs

A video job holds expensive hardware for a long time, so scheduling decides your costs and your wait times. Treating all jobs as equal doesn't work, because a 15-second 1080p clip costs far more than a 5-second 480p draft.

  • Estimate cost in GPU-seconds from duration, resolution, step count and model. Use that for quotas, pricing and queue ordering.
  • Allocate gangs: multi-GPU stages need all their GPUs at once. Without care, large jobs wait forever while small ones keep filling the gaps, so reserve capacity for them.
  • Run stages separately: a base stage needs different memory than a decode stage, so run them on the pools that best fit.
  • Checkpoint between stages: save the latent after each stage. A GPU failure then costs one stage, not the whole job.
  • Use cheap interruptible GPUs for relaxed tiers: a preempted job restarts from its last checkpoint.
waitbase 480prefine to 1080pdecodesafety + HLS0 s20 s40 s60 s80 s100 sdraftcheckpointready
One illustrative 90-second job, split by stage. A checkpoint after each stage means a preempted worker loses little, and a draft after the base stage lets users cancel before paying for the costly steps.
Draftsseconds · low-resFast tierpaid · ~90 sRelaxed tiercredits savedSchedulerDraft poolOn-demand GPUsSpot GPUsmay be preempted
Tiers on a shared fleet. Fast jobs use reliable on-demand GPUs. Relaxed jobs fill the spare time and cheap interruptible capacity, resuming from checkpoints if they're preempted. Drafts get a small low-resolution pool so they stay fast.

Drafts are both a product feature and a major cost control. If most people reject a video in the first second of viewing, then spending 10 seconds on a cheap draft avoids spending 80 seconds on an unwanted full render. Track the draft-to-final conversion rate, and adjust your prices with it.

10. Reference inputs and audio

Seedance 2.0, whose technical report came out in April 2026, moves to native audio-video generation from a single unified model. It accepts text, image, audio and video inputs, generates clips of 4-15 seconds at native 480p and 720p, and its open platform takes up to 3 video clips, 9 images and 3 audio clips as references. A Fast version targets low-latency use.

Images9 filesVideo clips3 filesAudio clips3 files
Reference limits on Seedance 2.0's open platform. Each item is an upload that must be stored, checked and encoded before the job can run, which adds a preparation stage that text-only products don't need.
Uploadsigned URLScantype · size · malwareReference safetyfaces · IP · minorsNormalisefps · size · rateEncode featuresFeature cacheby content hashReady for job
Preparing references. Files go straight to storage, are checked for safety and rights, and are then normalised and encoded so that the GPU stage only sees compact, ready-made features, and repeat use of a file saves work.

Native audio changes the design. If a separate step adds sound afterwards, lip movement and footsteps rarely line up. Generating both together helps synchronisation, but it raises the stakes on safety, since a generated person can now say anything. Your output safety check must then cover speech and voice, not just pictures.

11. Encoding and delivery

A finished clip is ordinary video from here on, and standard streaming practice applies. Keep the high-quality master, encode a ladder of versions, and let a CDN serve them. See CDN and object storage.

Frames + audioMaster encodeH.264 · high bitrateProvenanceC2PA · watermarkHLS ladder1080 · 720 · 480CDNPoster + preview
After generation. Frames are encoded into a master, then a set of smaller versions for streaming. Provenance labels are added before the file ever leaves the system, and a poster image makes the gallery fast.
Master12.5 MB1080p4 MB720p2.5 MB480p
Rough storage for one 10-second clip. The master takes the most space. Move masters that are rarely watched to cold storage after a while, because most generated clips are seen only a few times.

Realistic video makes abuse much more convincing, so this section matters as much as the GPU fleet. Seedance 2.0 shows what's at stake. After its launch in February 2026, Disney sent ByteDance a cease-and-desist letter claiming use of its characters, the Motion Picture Association publicly objected, and SAG-AFTRA objected to the use of performers' voices and likenesses. ByteDance said it would strengthen its safeguards, and reports said it suspended uploads of images of real people.

Prompt checksabuse · public figuresReference checksfaces · IP · minorsGenerationFrame + audio scanProvenanceC2PA · watermarkShare + reportHuman review
Layered safety for video. Prompt and reference checks run first, before any GPU spending. Then output checks look at sampled frames and audio, and provenance marks every result. Reports and audits catch what automation misses.
RiskExampleControls
Real-person deepfakesA politician appears to confessBlock public figures; consent flow for likeness; face match on references
Sexual contentEspecially involving minorsStrict filters on all stages; hash matching; legal reporting duties
CopyrightA famous film characterCharacter and logo classifiers; licensing deals; takedown process
Voice cloningA fake statement in someone's voiceAudio checks; voice consent, as in the voice platform
MisinformationFake news footageProvenance labels, visible marks, faster review for sensitive events
PersonLikeness serviceGeneratorOther userlive video + challengeverified; set permissionsvideo with this personallowed?yes, within permissionsnotify: used in videorevoke access later
A consent-based likeness flow, similar to what OpenAI described for Sora's cameo feature. The person proves their identity with a live recording and a challenge, then controls who can use their likeness, and can revoke it.

Provenance works in layers. OpenAI's Sora 2 system card described C2PA metadata on all assets, a visible moving watermark on downloads, and internal detection tools to trace content. Each has limits: metadata can be stripped, watermarks can be cropped, and detection isn't perfect. Together, they raise the bar. (OpenAI announced in March 2026 that it was shutting down the Sora app, but this layered approach remains a useful reference.)

Scanning a video is itself a cost problem. Sampling frames can miss a brief harmful moment, and scanning every frame is expensive. A common compromise is to sample densely around scene changes, and to raise the sampling rate for riskier accounts and prompts. See harmful content detection.

13. Evaluating quality

There's no single score for good video. A clip must follow the prompt, have believable motion, and look appealing. Seedance's reward models target those same dimensions, and it uses expert and public preference tests. External leaderboards such as Artificial Analysis also compare models, though these are snapshots.

Follows the promptobjects · actionsMotionphysics · flickerAestheticskeyframes · lightConsistencysubject across shotsVideo quality
Measuring a video model. No single number covers it, so look across these groups and watch for trade-offs, for example when motion improves at the cost of prompt accuracy.
MetricHowUsed for
Prompt adherenceA vision model or humans check a fixed prompt setRelease gate
Temporal stabilityFlicker and frame-difference measuresCatch refiner or VAE bugs
Human preferenceBlind A/B on sample promptsModel choice
Regeneration rateHow often users retry the same promptOnline quality signal
Download and share rateWhether users keep the resultOnline quality signal
Cost per kept videoGPU cost ÷ videos keptThe real business metric
Fixed prompts~2,000 clipsReward + judgesSafety suitered-team promptsLive testkept-video rateRollout
A release gate for a new model. Fixed prompts catch regressions, a safety suite runs before anything else can ship, and a small live test measures whether people keep more of what's generated.

14. Compared with other video models

Published models share most of their design, with different choices in size and scope. Knowing a few of them helps you discuss trade-offs, including when an open model could replace an API.

ModelPublished detailsWorth noting
Seedance 1.01080p; 5 s in 41.4 s on an L20; decoupled layers; cascadeDetailed report on inference speed-ups
Seedance 2.0Audio and video; 4-15 s; 480p, 720p; many reference inputsUnified multimodal generation
WanOpen models: 1.3B and 14B parameters; 1.3B fits in 8.19 GB VRAMCan be self-hosted on smaller GPUs
Movie Gen30B-parameter model; 16 s at 16 fps; 1080p; synced audioClear research reference from Meta
SoraSpacetime patches; latent diffusion transformerFew implementation details published
Wan (small)1.3BWan (large)14BMovie Gen30B
Published parameter counts on a log scale. Larger models usually need more memory and compute per step, while the small Wan model shows how far efficient design can go for consumer GPUs. Parameter counts alone don't decide quality.

Follow-up questions to expect

  • *How would you add longer videos, up to 5 minutes?* Generate shot by shot with a plan, using the last frames or a character reference to stay consistent, then join them. Quality drift and cost are the main issues.
  • *Would you build your own model or use an API?* Start with an API or open model to test demand. Build only when you have scale, a data advantage and research talent, as training costs are huge.
  • *A GPU dies during the refine stage. What happens?* The worker's lease expires, and the job resumes from the base checkpoint on a new worker, with no extra credits charged.
  • *How do you handle a viral surge?* Slow down the relaxed tier first, lower the default resolution for free users, require drafts, and show honest wait times.
  • *Generated clips show flicker. Where do you start?* Compare the outputs of each stage, as below.
Base modelToo few stepsIn the draft?RefinerAfter refine?Tile seamsThin VAEAfter decode?BitrateAfter encode?Bad video
Debugging a quality issue by stage. Saved latents let you decode each stage separately, so you can see exactly where a defect first appears.

Where it’s used

Creative tools

Prompt-to-video with drafts and credits for creators and short-form video.

Marketing and e-commerce

Product shots and ad variations generated in bulk on relaxed tiers.

Film pre-production

Previews of scenes and camera moves before expensive shoots.

Games and education

Short explainer scenes and concept animation.

In an interview

  • Show why video is expensive: tokens, attention and steps multiply into GPU-seconds.
  • Explain latent diffusion transformers, decoupled space and time, and the 480p-to-1080p cascade.
  • Design asynchronous jobs that checkpoint between stages, with drafts, tiers and gang scheduling.
  • Estimate the fleet from jobs per second and GPU-seconds per job.
  • Layer safety and provenance, and address likeness and copyright directly.

Frequently asked questions

How do AI video generators like Seedance work?

A VAE compresses video into a small latent, a diffusion transformer with separate spatial and temporal layers turns noise into a latent guided by text and references, a refiner raises the resolution, and a VAE decoder produces the frames. Distillation reduces the number of steps needed.

How do you serve AI video generation at scale?

Run generation as asynchronous jobs with priority tiers, estimate work in GPU-seconds, schedule multi-GPU stages as gangs, checkpoint latents between stages, offer cheap low-resolution drafts, scan outputs for safety, add provenance labels, and deliver through a CDN.

Further reading