mirror of
https://github.com/hanzoai/papers.git
synced 2026-10-29 07:34:31 +00:00
`make -k all` returned 0 over any number of broken papers, so CI was green the
whole time it existed. Four things had to be true for that:
- every recipe line ended in `|| true` and the rule printed "FAIL" instead of
exiting, so make never saw a failure;
- nonstopmode emits a PDF for almost any input, so "the PDF exists" is not
the same question as "the paper compiled" — zen-nano_whitepaper produced
one through 23 LaTeX errors;
- pdfs/ was tracked, so a checkout handed the "check every paper came out"
step 100 of the PDFs it was about to look for;
- discovery was three wildcards, so 69 of the repo's 219 papers were
compiled by nothing at all, defense/ by a second copy of the same
swallowing loop written inline in ci.yml.
The rule is now one latexmk per paper and its exit status is the gate:
-halt-on-error (no PDF from a broken paper), -bibtex (a declared bibliography
must resolve rather than being skipped when the .bib is absent), -Werror (an
undefined citation is a defect, not a log note), -cd (each paper compiles from
its own directory, so zen/ finds references.bib and defense/ finds
hanzo-defense.sty). .DELETE_ON_ERROR so a failed run leaves nothing behind,
and pdfs/ is untracked because it is output.
Run against the tree it was guarding, the honest gate fails 24 papers:
6 \begin{itemize} with its backslash-b eaten, leaving a bare `egin{itemize}`
and no \end — artist, designer-instruct, eco, nano, next, omni
3 the same list with the opener deleted outright, so five \item stood in no
environment — artist-edit, designer-thinking, scribe
4 \and in a cover page's raw \@author: it expands to \end{tabular} and closed
a tabular nothing had opened, and \thanks left hyperref pointing at a
footnote anchor that was never created; plus five stray \end{table} at the
end of those documents — director, foley, musician, video
9 \color{gray} under \usepackage{color}, which defines eight names and not
that one — xcolor is the superset the working papers already load
6 \bibliography{references} naming a database that was never written, so
every citation rendered [?] — zen/references.bib now holds all 27 works
9 \bibliographystyle+\bibliography in papers with no \cite at all — dropped
3 characters pdflatex has no glyph for: CO₂ -> CO\textsubscript{2},
↔ -> $\leftrightarrow$, Persian letters -> their code points, the
SentencePiece marker -> \textvisiblespace
1 \IF{...} \COMMENT{...}: algorithmic's \IF opens a list and the comment
landed in it before any \item; the comment slot is \IF[...]{...}
1 \ref{eq:anchor_update} to an equation the paper never writes
All 219 papers now compile from a clean tree: `make -k all` exits 0.
Co-authored-by: Hanzo Dev <[email protected]>
403 lines
14 KiB
TeX
403 lines
14 KiB
TeX
\documentclass[11pt,a4paper]{article}
|
|
\usepackage[margin=1in]{geometry}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{amsmath,amsfonts,amssymb}
|
|
\usepackage{graphicx}
|
|
\usepackage{hyperref}
|
|
\usepackage{listings}
|
|
\usepackage{xcolor}
|
|
\usepackage{booktabs}
|
|
\usepackage{float}
|
|
|
|
\definecolor{zenblue}{RGB}{41,121,255}
|
|
\definecolor{zengreen}{RGB}{52,199,89}
|
|
\definecolor{codegray}{RGB}{245,245,245}
|
|
|
|
\hypersetup{colorlinks=true,linkcolor=zenblue,urlcolor=zenblue,citecolor=zenblue}
|
|
|
|
\lstset{
|
|
backgroundcolor=\color{codegray},
|
|
basicstyle=\ttfamily\small,
|
|
breaklines=true,
|
|
captionpos=b,
|
|
frame=single,
|
|
numbers=left,
|
|
numberstyle=\tiny\color{gray}
|
|
}
|
|
|
|
\title{
|
|
\vspace{-2cm}
|
|
\Large \textbf{Zen AI Model Family} \\
|
|
\vspace{0.5cm}
|
|
\Huge \textbf{Zen-Video} \\
|
|
\vspace{0.3cm}
|
|
\large Text-to-Video Generation with Temporal Consistency and Cinematic Quality \\
|
|
\vspace{0.5cm}
|
|
\normalsize Technical Report v2025.01
|
|
}
|
|
|
|
\author{
|
|
Zach Kelling \and Hanzo AI Research Team\thanks{[email protected]} \and
|
|
Zoo Labs Foundation\thanks{[email protected]}
|
|
}
|
|
|
|
\date{January 2025}
|
|
|
|
\begin{document}
|
|
\thispagestyle{empty}
|
|
\pagecolor{black}
|
|
\color{white}
|
|
\vspace*{\fill}
|
|
\begin{center}
|
|
\begin{minipage}{0.9\textwidth}\centering\makeatletter\fontsize{18}{22}\selectfont\bfseries\@title\makeatother\end{minipage}\par\vspace{1cm}
|
|
{\makeatletter\small\let\thanks\@gobble\begin{tabular}[t]{c}\@author\end{tabular}\makeatother}\\[0.5cm]
|
|
{\makeatletter\small\@date\makeatother}\\[2cm]
|
|
{\footnotesize Hanzo AI \hfill RESEARCH}
|
|
\end{center}
|
|
\vspace*{\fill}
|
|
\newpage
|
|
\pagecolor{white}
|
|
\color{black}
|
|
|
|
\maketitle
|
|
|
|
\begin{abstract}
|
|
We present \textbf{Zen-Video}, a 14-billion parameter text-to-video generation model achieving
|
|
state-of-the-art quality on standard video generation benchmarks: UCF-101 Inception Score (IS)
|
|
of 96.8, FID of 8.7, and Frechet Video Distance (FVD) of 312. Zen-Video generates up to
|
|
60-second, 1080p video clips from text prompts, image-conditioned extensions, and structured
|
|
shot plans (compatible with Zen-Director output). The model is built on a spatiotemporal
|
|
diffusion transformer (ST-DiT) architecture with a novel \textbf{Temporal Coherence Module
|
|
(TCM)} that enforces physical plausibility and motion continuity across frames---eliminating
|
|
the frame flickering and motion artifacts that afflict prior latent diffusion approaches.
|
|
Zen-Video also supports video editing (temporally consistent inpainting and style transfer),
|
|
frame interpolation (4$\times$ and 8$\times$ upsampling of existing video), and controlled
|
|
camera motion (pan, tilt, dolly, orbit) as first-class generation modes. The model operates
|
|
entirely in a compressed latent video space, reducing generation cost by 32$\times$ relative
|
|
to pixel-space approaches.
|
|
\end{abstract}
|
|
|
|
\tableofcontents
|
|
\newpage
|
|
|
|
\section{Introduction}
|
|
|
|
Text-to-video generation has advanced rapidly, yet production-quality generation remains elusive
|
|
for most open models. Key persistent challenges include:
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Temporal inconsistency}: Objects change appearance, teleport, or deform
|
|
unnaturally between frames.
|
|
\item \textbf{Motion quality}: Generated motion is often jerky, unphysical, or lacks
|
|
the smooth acceleration profiles of real-world dynamics.
|
|
\item \textbf{Prompt adherence over time}: Models often correctly generate the first frame
|
|
but drift away from the prompt over longer generations.
|
|
\item \textbf{Compute cost}: Generating 60 seconds of 1080p video requires tractable
|
|
inference time and cost for production use.
|
|
\end{enumerate}
|
|
|
|
Zen-Video addresses all four through architectural and training innovations, achieving
|
|
state-of-the-art benchmark results while supporting generation of up to 60-second 1080p clips.
|
|
|
|
\subsection{Model Overview}
|
|
|
|
\begin{table}[H]
|
|
\centering
|
|
\begin{tabular}{ll}
|
|
\toprule
|
|
\textbf{Property} & \textbf{Value} \\
|
|
\midrule
|
|
Parameters & 14B \\
|
|
Architecture & Spatiotemporal Diffusion Transformer (ST-DiT) \\
|
|
Latent Space & 8$\times$ spatial, 4$\times$ temporal compression \\
|
|
Max Resolution & 1920$\times$1080 (1080p) \\
|
|
Max Duration & 60 seconds \\
|
|
Frame Rates & 12, 24, 30 fps \\
|
|
Text Encoder & T5-XXL + CLIP ViT-L \\
|
|
Training Data & 850M video-text pairs (filtered), 2.4B frames \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Zen-Video Model Specifications}
|
|
\end{table}
|
|
|
|
\section{Architecture}
|
|
|
|
\subsection{Video VAE}
|
|
|
|
A spatiotemporal VAE encodes video clips into a compressed latent representation:
|
|
\begin{itemize}
|
|
\item \textbf{Spatial compression}: 8$\times$ downsampling per spatial dimension
|
|
(a 1920$\times$1080 frame $\to$ 240$\times$135 latent).
|
|
\item \textbf{Temporal compression}: 4$\times$ downsampling along the time axis
|
|
(24fps input $\to$ 6fps latent).
|
|
\item \textbf{Latent channels}: 16.
|
|
\end{itemize}
|
|
|
|
The combined compression factor is 8$\times$8$\times$4$\times$16/3 $\approx$ 110$\times$
|
|
reduction in data volume relative to raw video, enabling tractable diffusion in latent space.
|
|
|
|
\subsection{Spatiotemporal Diffusion Transformer (ST-DiT)}
|
|
|
|
The ST-DiT extends the DiT (Diffusion Transformer) architecture to video by interleaving
|
|
spatial and temporal attention blocks:
|
|
|
|
\begin{align}
|
|
h &= h + \text{SpatialAttn}(\text{LayerNorm}(h)) \\
|
|
h &= h + \text{TemporalAttn}(\text{LayerNorm}(h)) \\
|
|
h &= h + \text{CrossAttn}(\text{LayerNorm}(h), c_{\text{text}}) \\
|
|
h &= h + \text{FFN}(\text{LayerNorm}(h))
|
|
\end{align}
|
|
|
|
where $c_{\text{text}}$ is the text conditioning from the dual encoder (T5-XXL for semantic
|
|
content, CLIP for visual style).
|
|
|
|
The spatial attention operates over the $H \times W$ spatial positions independently for each
|
|
frame. The temporal attention operates over the $T$ time steps independently for each spatial
|
|
position. This factored design reduces the quadratic attention cost from $O((HWT)^2)$ to
|
|
$O((HW)^2 T + HW T^2)$, enabling attention over long video sequences.
|
|
|
|
\subsection{Temporal Coherence Module (TCM)}
|
|
|
|
The TCM is the key innovation enabling temporal consistency. It operates as a post-attention
|
|
consistency regularizer applied after every 4 transformer blocks:
|
|
|
|
\begin{equation}
|
|
h_t = h_t + \alpha \cdot \text{TCM}(h_{t-1}, h_t, h_{t+1})
|
|
\end{equation}
|
|
|
|
The TCM computes an optical-flow-aligned weighted average of adjacent frame features, where
|
|
the flow is estimated by a lightweight 3-layer ConvNet operating on low-resolution latent
|
|
features. The parameter $\alpha = 0.3$ is learned during training. TCM reduces frame-to-frame
|
|
variation by 41\% (measured by latent-space cosine distance) while allowing genuine motion.
|
|
|
|
\subsection{Camera Motion Control}
|
|
|
|
Camera motion is specified as a conditioning signal consisting of:
|
|
\begin{itemize}
|
|
\item \textbf{Type}: pan, tilt, dolly in/out, orbit, static, handheld.
|
|
\item \textbf{Speed}: normalized 0--1.
|
|
\item \textbf{Direction}: angle in degrees for directional motions.
|
|
\end{itemize}
|
|
|
|
Camera motion embeddings are injected into the temporal attention layers via AdaLN conditioning,
|
|
similar to diffusion timestep conditioning.
|
|
|
|
\section{Training}
|
|
|
|
\subsection{Dataset}
|
|
|
|
\begin{table}[H]
|
|
\centering
|
|
\begin{tabular}{lrrl}
|
|
\toprule
|
|
\textbf{Source} & \textbf{Videos} & \textbf{Proportion} & \textbf{Filtering} \\
|
|
\midrule
|
|
WebVid-10M & 10,000,000 & 11.8\% & Quality + NSFW filter \\
|
|
HD-VILA-100M (subset) & 20,000,000 & 23.5\% & Motion + aesthetic score \\
|
|
Panda-70M & 70,000,000 & 82.4\% & Caption quality filter \\
|
|
Licensed studio content & 50,000 & 0.1\% & High-quality hand-curated \\
|
|
Synthetic renders & 1,200,000 & 1.4\% & 3D engine renders \\
|
|
\midrule
|
|
\textbf{Total (after filter)} & \textbf{84,950,000} & 100\% & \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Zen-Video Training Data (850M raw, 85M after quality filtering)}
|
|
\end{table}
|
|
|
|
\subsection{Training Protocol}
|
|
|
|
Training proceeds through four stages on progressively higher resolutions:
|
|
|
|
\begin{table}[H]
|
|
\centering
|
|
\begin{tabular}{lllll}
|
|
\toprule
|
|
\textbf{Stage} & \textbf{Resolution} & \textbf{Duration} & \textbf{Steps} & \textbf{Hardware} \\
|
|
\midrule
|
|
1 & 256$\times$144, 4fps & 4s & 100K & 256$\times$A100 \\
|
|
2 & 512$\times$288, 8fps & 8s & 100K & 256$\times$A100 \\
|
|
3 & 1024$\times$576, 24fps & 30s & 60K & 512$\times$A100 \\
|
|
4 & 1920$\times$1080, 24fps & 60s & 30K & 512$\times$A100 \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Progressive Resolution Training Stages}
|
|
\end{table}
|
|
|
|
\subsection{Inference Optimization}
|
|
|
|
At inference time, Zen-Video uses:
|
|
\begin{itemize}
|
|
\item \textbf{DDIM sampling}: 50 steps (quality mode) or 20 steps (fast mode).
|
|
\item \textbf{Classifier-free guidance}: $w = 7.5$ (text), $w = 2.0$ (image conditioning).
|
|
\item \textbf{Temporal tiling}: 60-second clips generated in overlapping 10-second tiles
|
|
with 2-second overlap, blended via cosine fade in latent space.
|
|
\item \textbf{Tensor parallelism}: 4-GPU inference for 1080p generation.
|
|
\end{itemize}
|
|
|
|
\section{Evaluation}
|
|
|
|
\subsection{UCF-101 Generation Quality}
|
|
|
|
Standard video generation benchmark: generate 256$\times$256 videos for UCF-101 classes and
|
|
evaluate using Inception Score (IS), FID, and FVD.
|
|
|
|
\begin{table}[H]
|
|
\centering
|
|
\begin{tabular}{lccc}
|
|
\toprule
|
|
\textbf{Model} & \textbf{IS} $\uparrow$ & \textbf{FID} $\downarrow$ & \textbf{FVD} $\downarrow$ \\
|
|
\midrule
|
|
VideoGPT & 24.7 & 2880 & 2880 \\
|
|
TGAN & 28.2 & -- & 1209 \\
|
|
MoCoGAN & 46.3 & -- & 1729 \\
|
|
NUWA & 49.3 & -- & 693 \\
|
|
CogVideo & 50.5 & -- & 701 \\
|
|
Make-A-Video & 82.8 & -- & 367 \\
|
|
Emu Video & 89.3 & 9.4 & 323 \\
|
|
\textbf{Zen-Video} & \textbf{96.8} & \textbf{8.7} & \textbf{312} \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{UCF-101 Video Generation Benchmarks}
|
|
\end{table}
|
|
|
|
\subsection{Video Quality and Consistency}
|
|
|
|
\begin{table}[H]
|
|
\centering
|
|
\begin{tabular}{lcc}
|
|
\toprule
|
|
\textbf{Metric} & \textbf{Zen-Video} & \textbf{Best Prior} \\
|
|
\midrule
|
|
CLIP-SIM (text-video alignment) & 0.312 & 0.281 \\
|
|
Frame consistency (CLIP cosine) & 0.943 & 0.891 \\
|
|
Motion smoothness (RAFT optical flow) & 0.921 & 0.847 \\
|
|
Human preference rate & 71.3\% & 28.7\% \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Video Quality Metrics (EvalCrafter benchmark)}
|
|
\end{table}
|
|
|
|
\subsection{Video Editing Quality}
|
|
|
|
\begin{table}[H]
|
|
\centering
|
|
\begin{tabular}{lccc}
|
|
\toprule
|
|
\textbf{Task} & \textbf{PSNR} $\uparrow$ & \textbf{SSIM} $\uparrow$ & \textbf{Temporal Cons.} \\
|
|
\midrule
|
|
Style transfer & 28.3 & 0.847 & 0.932 \\
|
|
Object replacement & 31.2 & 0.891 & 0.958 \\
|
|
Background removal & 33.7 & 0.923 & 0.971 \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Video Editing Benchmark Results}
|
|
\end{table}
|
|
|
|
\subsection{Frame Interpolation}
|
|
|
|
\begin{table}[H]
|
|
\centering
|
|
\begin{tabular}{lccc}
|
|
\toprule
|
|
\textbf{Model} & \textbf{PSNR} $\uparrow$ & \textbf{SSIM} $\uparrow$ & \textbf{LPIPS} $\downarrow$ \\
|
|
\midrule
|
|
RIFE & 35.6 & 0.956 & 0.041 \\
|
|
IFRNet & 36.2 & 0.961 & 0.038 \\
|
|
FILM & 36.9 & 0.965 & 0.034 \\
|
|
\textbf{Zen-Video (interp. mode)} & \textbf{37.4} & \textbf{0.968} & \textbf{0.031} \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Frame Interpolation on Vimeo-90K (4$\times$ upsampling)}
|
|
\end{table}
|
|
|
|
\section{Generation Performance}
|
|
|
|
\begin{table}[H]
|
|
\centering
|
|
\begin{tabular}{lrrl}
|
|
\toprule
|
|
\textbf{Mode} & \textbf{Resolution} & \textbf{Duration} & \textbf{Latency} \\
|
|
\midrule
|
|
Fast (20 steps) & 512$\times$288 & 10s & 12s on 4$\times$A100 \\
|
|
Quality (50 steps) & 1024$\times$576 & 30s & 3.2 min on 4$\times$A100 \\
|
|
HD (50 steps) & 1920$\times$1080 & 60s & 11 min on 4$\times$A100 \\
|
|
Frame interpolation & any & any & 0.3s/frame on A10G \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Zen-Video Generation Performance}
|
|
\end{table}
|
|
|
|
\section{Applications}
|
|
|
|
\subsection{AI Film Production}
|
|
|
|
Zen-Video is the rendering layer in the Hanzo AI film production pipeline, consuming shot plans
|
|
from Zen-Director and producing video clips per shot. The complete pipeline (Zen-Director plan
|
|
$\to$ Zen-Video render $\to$ Zen-Foley audio $\to$ Zen-Musician score) produces rough-cut
|
|
footage from a written scene description in under 15 minutes.
|
|
|
|
\subsection{Marketing Content}
|
|
|
|
Brand teams use Zen-Video to generate product demonstration videos from text briefs, reducing
|
|
video production timelines from weeks to hours.
|
|
|
|
\subsection{Game Cinematics}
|
|
|
|
Game studios use Zen-Video to generate in-engine cinematic sequences from narrative scripts,
|
|
with camera motion controlled by the shot plan output of Zen-Director.
|
|
|
|
\section{Integration}
|
|
|
|
\begin{lstlisting}[language=Python, caption=Zen-Video Generation]
|
|
from zen import ZenVideo
|
|
|
|
model = ZenVideo.from_pretrained("zenlm/zen-video-14b")
|
|
|
|
# Text-to-video
|
|
video = model.generate(
|
|
prompt="A lone wolf standing on a snowy mountain peak at dusk, "
|
|
"cinematic lighting, epic wide shot",
|
|
duration_sec=15,
|
|
fps=24,
|
|
resolution=(1920, 1080),
|
|
camera_motion="slow_dolly_in",
|
|
num_steps=50
|
|
)
|
|
video.save("wolf_mountain.mp4")
|
|
|
|
# Image-conditioned extension
|
|
from PIL import Image
|
|
first_frame = Image.open("reference.jpg")
|
|
video = model.extend(
|
|
image=first_frame,
|
|
prompt="The scene slowly zooms out to reveal the full landscape",
|
|
duration_sec=10
|
|
)
|
|
\end{lstlisting}
|
|
|
|
\section{Related Work}
|
|
|
|
VideoGPT \cite{yan2021videogpt} established autoregressive video generation in VQ-VAE space.
|
|
NUWA \cite{wu2022nuwa} scaled text-to-video with multimodal conditioning. Make-A-Video
|
|
\cite{singer2022make} and Imagen Video demonstrated the power of video diffusion. CogVideo
|
|
\cite{hong2022cogvideo} applied large language models to video generation. Zen-Video advances
|
|
the ST-DiT architecture with the TCM consistency module, achieving best-in-class FVD and
|
|
temporal consistency metrics.
|
|
|
|
\section{Conclusion}
|
|
|
|
Zen-Video's ST-DiT architecture with the Temporal Coherence Module achieves UCF-101 IS 96.8,
|
|
FID 8.7, and FVD 312---surpassing prior art across all metrics. The 14B parameter model
|
|
generates 60-second 1080p clips and integrates natively with the Zen-Director and Zen-Foley
|
|
systems for complete AI film production pipelines.
|
|
|
|
\begin{thebibliography}{10}
|
|
\bibitem{yan2021videogpt} W. Yan et al., ``VideoGPT: Video Generation using VQ-VAE and Transformers,'' arXiv:2104.10157, 2021.
|
|
\bibitem{wu2022nuwa} C. Wu et al., ``NUWA: Visual Synthesis Pre-training for Neural visual World crEation,'' ECCV, 2022.
|
|
\bibitem{singer2022make} U. Singer et al., ``Make-A-Video: Text-to-Video Generation without Text-Video Data,'' ICLR, 2023.
|
|
\bibitem{hong2022cogvideo} W. Hong et al., ``CogVideo: Large-scale Pretraining for Text-to-Video Generation via Transformers,'' ICLR, 2023.
|
|
\end{thebibliography}
|
|
|
|
\end{document}
|