EA-Swin: An Embedding-Agnostic Swin Transformer for AI-Generated Video Detection
Organizations: N2TP Technology Solution JSC, Hanoi, Vietnam · College of Technology, National Economics University, Hanoi, Vietnam · University of Science, Vietnam National University, Ho Chi Minh City, Vietnam · Faculty of AI and Data Science, Phenikaa University, Hanoi, Vietnam · The Saigon International University, Ho Chi Minh City, Vietnam · College of Informatics, Yuan Ze University, Taoyuan, Taiwan
Abstract
Recent advances in foundation video generators such as Sora2, Veo3, and other commercial systems have produced highly realistic synthetic videos, exposing the limitations of existing detection methods that rely on shallow embedding trajectories, image-based adaptation, or computationally heavy MLLMs. We propose EA-Swin, an Embedding-Agnostic Swin Transformer that models spatiotemporal dependencies directly on pretrained video embeddings via a factorized windowed attention design, making it compatible with generic ViT-style patch-based encoders. Moreover, we construct the EA-Video dataset, a benchmark dataset comprising 130K videos that integrates newly collected samples with curated existing datasets, covering diverse commercial and open-source generators and including unseen-generator splits for rigorous cross-distribution evaluation. Extensive experiments show that EA-Swin achieves 0.97-0.99 accuracy across major generators, outperforming prior SoTA methods (typically 0.8-0.9) by a margin of 5-20%, while maintaining strong generalization to unseen distributions, establishing a scalable and robust solution for modern AI-generated video detection.
Figures & tables
| Model | Metric | Veo3 | Sora2 | HY | CVX | EA | LTX | Pika1 | Wan2 | Kling2 | Sora | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Acc | 0.511 | 0.510 | 0.512 | 0.511 | 0.512 | 0.511 | 0.511 | 0.511 | 0.506 | 0.511 | 0.5105 | |
| Recall | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 0.999 | 0.993 | 1.000 | 0.9991 | |
| F1 | 0.676 | 0.675 | 0.677 | 0.676 | 0.677 | 0.676 | 0.676 | 0.676 | 0.671 | 0.676 | 0.6757 | |
| D3 | AUC | 0.374 | 0.671 | 0.190 | 0.304 | 0.168 | 0.366 | 0.264 | 0.573 | 0.548 | 0.319 | 0.3778 |
| Acc | 0.683 | 0.641 | 0.641 | 0.723 | 0.736 | 0.725 | 0.726 | 0.698 | 0.655 | 0.646 | 0.6874 | |
| Recall | 0.890 | 0.802 | 0.986 | 0.956 | 0.988 | 0.963 | 0.968 | 0.903 | 0.810 | 0.837 | 0.9103 |
| Model | Metric | Unk | RM2 | Kling | Hailuo | SD | Mochi | JM | Gen3 | Luma | Vidu | PRM | SKR | PV | Pika2 | Gen4 | Avg |
| Acc | 0.511 | 0.511 | 0.512 | 0.510 | 0.512 | 0.515 | 0.512 | 0.512 | 0.513 | 0.512 | 0.511 | 0.519 | 0.515 | 0.514 | 0.545 | 0.515 | |
| Recall | 1.000 | 1.000 | 1.000 | 0.997 | 1.000 | 0.998 | 0.998 | 1.000 | 1.000 | 1.000 | 1.000 | 0.992 | 1.000 | 1.000 | 0.981 | 0.998 | |
| F1 | 0.676 | 0.676 | 0.677 | 0.675 | 0.677 | 0.678 | 0.676 | 0.677 | 0.678 | 0.677 | 0.676 | 0.678 | 0.678 | 0.678 | 0.688 | 0.678 | |
| D3 | AUC | 0.507 | 0.321 | 0.281 | 0.572 | 0.449 | 0.467 | 0.293 | 0.389 | 0.246 | 0.347 | 0.290 | 0.411 | 0.447 | 0.544 | 0.550 | 0.408 |
| Acc | 0.628 | 0.699 | 0.718 | 0.654 | 0.619 | 0.638 | 0.703 | 0.599 | 0.726 | 0.698 | 0.713 | 0.722 | 0.701 | 0.676 | 0.701 | 0.680 | |
| Recall | 0.774 | 0.901 | 0.928 | 0.791 | 0.741 | 0.822 | 0.940 | 0.696 | 0.956 | 0.925 | 0.943 | 0.925 | 0.917 | 0.914 | 0.883 | 0.870 |
| Base | Blur | Comp. | Noise | |
|---|---|---|---|---|
| Acc | 0.974 | 0.955 | 0.931 | 0.916 |
| Prec | 0.983 | 0.969 | 0.976 | 0.994 |
| Recall | 0.965 | 0.942 | 0.938 | 0.841 |
| F1 | 0.974 | 0.955 | 0.956 | 0.912 |
| AUC | 0.997 | 0.991 | 0.990 | 0.988 |
Appendix figures & tables15 assets
Supplementary material from the paper’s appendix.
Appendix
| Split | Generator | #AI_vids | %in_split | #correspond_real | Published |
| Train set | |||||
| train | veo3 | 5054 | 13.691 | - | 7/2025 |
| train | sora2 | 4857 | 13.158 | - | 9/2025 |
| train | cogvideox | 4605 | 12.475 | - | 3/2025 |
| train | hunyuan | 4524 | 12.256 | - | 3/2025 |
| train | easyanimate | 4199 | 11.375 | - | 7/2024 |
| Category | Setting | Value |
| Optimizer | Optimizer | AdamW |
| Learning rate | 3e-4 | |
| Weight decay | 0.05 | |
| LR schedule | Cosine decay | |
| Warmup | 1 epoch | |
| Min learning rate | 1e-6 |
| Model | Configs | Metric | Veo3 | Sora2 | HY | CVX | EA | LTX | Pika1 | Wan2 | Kling2 | Sora |
| Model Dimension | ||||||||||||
| Dimension reduction | –d_model 256 –depth_t 2 –depth_s 2 | Acc | 0.976 | 0.977 | 0.988 | 0.986 | 0.990 | 0.988 | 0.985 | 0.985 | 0.987 | 0.985 |
| Prec | 0.986 | 0.984 | 0.983 | 0.986 | 0.984 | 0.982 | 0.986 | 0.981 | 0.988 | 0.988 | ||
| Recall | 0.967 | 0.971 | 0.994 | 0.988 | 0.997 | 0.995 | 0.986 | 0.989 | 0.987 | 0.983 | ||
| F1 | 0.977 | 0.978 | 0.989 | 0.987 | 0.990 | 0.988 | 0.986 | 0.985 | 0.987 | 0.985 | ||
| AUC | 0.997 | 0.997 | 0.999 | 0.999 | 1.000 | 1.000 | 0.999 | 0.999 | 0.999 | 0.998 | ||
| Model | Configs | Metric | Unk | RM2 | Kling1 | Hailuo | SD | Mochi | JM | Gen3 | Luma | Vidu | PRM | SKR | PV | Pika2 | Gen4 |
| Model Dimension | |||||||||||||||||
| Dimension reduction | –d_model 256 –depth_t 2 –depth_s 2 | Acc | 0.953 | 0.987 | 0.952 | 0.970 | 0.983 | 0.910 | 0.991 | 0.986 | 0.971 | 0.982 | 0.982 | 0.963 | 0.978 | 0.967 | 0.934 |
| Prec | 0.981 | 0.985 | 0.985 | 0.986 | 0.982 | 0.984 | 0.986 | 0.980 | 0.992 | 0.970 | 0.980 | 0.982 | 0.975 | 0.983 | 1.000 | ||
| Recall | 0.925 | 0.989 | 0.921 | 0.956 | 0.986 | 0.838 | 0.996 | 0.992 | 0.952 | 0.996 | 0.986 | 0.945 | 0.982 | 0.952 | 0.870 | ||
| F1 | 0.952 | 0.987 | 0.952 | 0.971 | 0.984 | 0.905 | 0.991 | 0.986 | 0.971 | 0.983 | 0.983 | 0.963 | 0.978 | 0.967 | 0.931 | ||
| AUC | 0.991 | 0.999 | 0.993 | 0.996 | 0.998 | 0.984 | 0.998 | 0.998 | 0.998 | 0.999 | 0.999 | 0.995 | 0.998 | 0.997 | 0.997 | ||
| Model | Metric | Veo3 | Sora2 | HY | CVX | EA | LTX | Pika1 | Wan2 | Kling2 | Sora | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Base | Acc | 0.984 | 0.982 | 0.989 | 0.986 | 0.991 | 0.987 | 0.989 | 0.985 | 0.988 | 0.985 | 0.999 |
| Prec | 0.985 | 0.980 | 0.981 | 0.981 | 0.983 | 0.978 | 0.989 | 0.978 | 0.987 | 0.985 | 0.987 | |
| Recall | 0.982 | 0.984 | 0.997 | 0.992 | 0.999 | 0.997 | 0.990 | 0.993 | 0.990 | 0.986 | 0.983 | |
| F1 | 0.984 | 0.982 | 0.989 | 0.987 | 0.991 | 0.988 | 0.989 | 0.986 | 0.989 | 0.986 | 0.991 | |
| AUC | 0.998 | 0.998 | 1.000 | 0.999 | 1.000 | 1.000 | 0.999 | 0.999 | 0.999 | 0.997 | 0.987 | |
| Ablation 1 | Acc | 0.976 | 0.981 | 0.981 | 0.984 | 0.990 | 0.990 | 0.988 | 0.991 | 0.990 | 0.985 | 0.986 |
| Model | Metric | Unk | RM2 | Kling1 | Hailuo | SD | Mochi | JM | Gen3 | Luma | Vidu | PRM | SKR | PV | Pika2 | Gen4 | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Base | Acc | 0.961 | 0.987 | 0.959 | 0.980 | 0.983 | 0.920 | 0.992 | 0.985 | 0.970 | 0.979 | 0.988 | 0.976 | 0.982 | 0.975 | 0.967 | 0.974 |
| Prec | 0.980 | 0.985 | 0.984 | 0.984 | 0.986 | 0.986 | 0.986 | 0.980 | 0.990 | 0.968 | 0.988 | 0.980 | 0.972 | 0.984 | 0.993 | 0.983 | |
| Recall | 0.943 | 0.989 | 0.936 | 0.977 | 0.981 | 0.855 | 0.998 | 0.990 | 0.952 | 0.992 | 0.990 | 0.972 | 0.993 | 0.968 | 0.942 | 0.965 | |
| F1 | 0.961 | 0.987 | 0.959 | 0.980 | 0.983 | 0.916 | 0.992 | 0.985 | 0.970 | 0.980 | 0.989 | 0.976 | 0.982 | 0.976 | 0.967 | 0.974 | |
| AUC | 0.990 | 0.999 | 0.995 | 0.997 | 0.999 | 0.990 | 0.999 | 0.999 | 0.996 | 0.999 | 0.999 | 0.995 | 0.999 | 0.999 | 0.998 | 0.997 | |
| Ablation 1 | Acc | 0.961 | 0.985 | 0.956 | 0.981 | 0.987 | 0.902 | 0.992 | 0.987 | 0.972 | 0.984 | 0.985 | 0.967 | 0.982 | 0.978 | 0.967 | 0.972 |
| Model | Metric | Veo3 | Sora2 | HY | CVX | EA | LTX | Pika1 | Wan2 | Kling2 | Sora | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Base | Acc | 0.984 | 0.982 | 0.989 | 0.986 | 0.991 | 0.987 | 0.989 | 0.985 | 0.988 | 0.985 | 0.971 |
| Prec | 0.985 | 0.980 | 0.981 | 0.981 | 0.983 | 0.978 | 0.989 | 0.978 | 0.987 | 0.985 | 0.976 | |
| Recall | 0.982 | 0.984 | 0.997 | 0.992 | 0.999 | 0.997 | 0.990 | 0.993 | 0.990 | 0.986 | 0.968 | |
| F1 | 0.984 | 0.982 | 0.989 | 0.987 | 0.991 | 0.988 | 0.989 | 0.986 | 0.989 | 0.986 | 0.972 | |
| AUC | 0.998 | 0.998 | 1.000 | 0.999 | 1.000 | 1.000 | 0.999 | 0.999 | 0.999 | 0.997 | 0.995 | |
| Ablation 1 | Acc | 0.988 | 0.976 | 0.991 | 0.991 | 0.993 | 0.990 | 0.988 | 0.978 | 0.990 | 0.981 | 0.970 |
| Model | Metric | Unk | RM2 | Kling1 | Hailuo | SD | Mochi | JM | Gen3 | Luma | Vidu | PRM | SKR | PV | Pika2 | Gen4 | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Base | Acc | 0.961 | 0.987 | 0.959 | 0.980 | 0.983 | 0.920 | 0.992 | 0.985 | 0.970 | 0.979 | 0.988 | 0.976 | 0.982 | 0.975 | 0.967 | 0.974 |
| Prec | 0.980 | 0.985 | 0.984 | 0.984 | 0.986 | 0.986 | 0.986 | 0.980 | 0.990 | 0.968 | 0.988 | 0.980 | 0.972 | 0.984 | 0.993 | 0.983 | |
| Recall | 0.943 | 0.989 | 0.936 | 0.977 | 0.981 | 0.855 | 0.998 | 0.990 | 0.952 | 0.992 | 0.990 | 0.972 | 0.993 | 0.968 | 0.942 | 0.965 | |
| F1 | 0.961 | 0.987 | 0.959 | 0.980 | 0.983 | 0.916 | 0.992 | 0.985 | 0.970 | 0.980 | 0.989 | 0.976 | 0.982 | 0.976 | 0.967 | 0.974 | |
| AUC | 0.990 | 0.999 | 0.995 | 0.997 | 0.999 | 0.990 | 0.999 | 0.999 | 0.996 | 0.999 | 0.999 | 0.995 | 0.999 | 0.999 | 0.998 | 0.997 | |
| Ablation 1 | Acc | 0.952 | 0.994 | 0.965 | 0.981 | 0.985 | 0.783 | 0.993 | 0.989 | 0.982 | 0.995 | 0.992 | 0.716 | 0.924 | 0.871 | 0.721 | 0.923 |
| Model | Metric | Veo3 | Sora2 | HY | CVX | EA | LTX | Pika1 | Wan2 | Kling2 | Sora | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Base | Acc | 0.963 | 0.960 | 0.978 | 0.972 | 0.989 | 0.983 | 0.978 | 0.957 | 0.988 | 0.945 | 0.971 |
| Prec | 0.979 | 0.973 | 0.977 | 0.975 | 0.980 | 0.973 | 0.977 | 0.975 | 0.981 | 0.972 | 0.976 | |
| Recall | 0.947 | 0.948 | 0.980 | 0.971 | 0.999 | 0.994 | 0.980 | 0.941 | 0.996 | 0.919 | 0.968 | |
| F1 | 0.963 | 0.960 | 0.978 | 0.973 | 0.990 | 0.983 | 0.978 | 0.958 | 0.989 | 0.945 | 0.972 | |
| AUC | 0.994 | 0.991 | 0.997 | 0.994 | 1.000 | 0.999 | 0.997 | 0.987 | 1.000 | 0.986 | 0.995 | |
| Ablation 1 | Acc | 0.960 | 0.959 | 0.978 | 0.972 | 0.989 | 0.980 | 0.974 | 0.956 | 0.986 | 0.948 | 0.970 |
| Model | Metric | Unk | RM2 | Kling1 | Hailuo | SD | Mochi | JM | Gen3 | Luma | Vidu | PRM | SKR | PV | Pika2 | Gen4 | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Base | Acc | 0.931 | 0.990 | 0.848 | 0.976 | 0.973 | 0.770 | 0.974 | 0.962 | 0.969 | 0.980 | 0.969 | 0.683 | 0.915 | 0.794 | 0.638 | 0.891 |
| Prec | 0.973 | 0.982 | 0.977 | 0.984 | 0.971 | 0.957 | 0.972 | 0.977 | 0.978 | 0.984 | 0.960 | 0.942 | 0.971 | 0.937 | 0.979 | 0.970 | |
| Recall | 0.889 | 0.998 | 0.719 | 0.968 | 0.976 | 0.576 | 0.976 | 0.948 | 0.962 | 0.978 | 0.980 | 0.404 | 0.859 | 0.640 | 0.299 | 0.811 | |
| F1 | 0.929 | 0.990 | 0.828 | 0.976 | 0.974 | 0.719 | 0.974 | 0.962 | 0.970 | 0.981 | 0.970 | 0.565 | 0.912 | 0.760 | 0.458 | 0.865 | |
| AUC | 0.981 | 1.000 | 0.960 | 0.997 | 0.996 | 0.906 | 0.996 | 0.994 | 0.996 | 0.997 | 0.996 | 0.909 | 0.979 | 0.929 | 0.912 | 0.970 | |
| Ablation 1 | Acc | 0.933 | 0.988 | 0.849 | 0.971 | 0.973 | 0.766 | 0.974 | 0.958 | 0.971 | 0.981 | 0.973 | 0.693 | 0.923 | 0.780 | 0.665 | 0.893 |
| Model | Metric | Veo3 | Sora2 | HY | CVX | EA | LTX | Pika1 | Wan2 | Kling2 | Sora | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Base | Acc | 0.946 | 0.931 | 0.967 | 0.960 | 0.976 | 0.964 | 0.944 | 0.947 | 0.971 | 0.935 | 0.954 |
| Prec | 0.956 | 0.955 | 0.959 | 0.959 | 0.961 | 0.948 | 0.949 | 0.958 | 0.967 | 0.952 | 0.956 | |
| Recall | 0.937 | 0.907 | 0.978 | 0.961 | 0.994 | 0.983 | 0.941 | 0.938 | 0.976 | 0.919 | 0.953 | |
| F1 | 0.946 | 0.931 | 0.968 | 0.960 | 0.977 | 0.965 | 0.945 | 0.948 | 0.972 | 0.935 | 0.955 | |
| AUC | 0.989 | 0.983 | 0.995 | 0.992 | 0.999 | 0.994 | 0.989 | 0.983 | 0.994 | 0.983 | 0.990 | |
| Ablation 1 | Acc | 0.945 | 0.932 | 0.971 | 0.963 | 0.978 | 0.967 | 0.942 | 0.948 | 0.973 | 0.936 | 0.955 |
| Model | Metric | Unk | RM2 | Kling1 | Hailuo | SD | Mochi | JM | Gen3 | Luma | Vidu | PRM | SKR | PV | Pika2 | Gen4 | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Base | Acc | 0.920 | 0.973 | 0.828 | 0.963 | 0.958 | 0.742 | 0.963 | 0.943 | 0.949 | 0.974 | 0.944 | 0.667 | 0.895 | 0.775 | 0.621 | 0.874 |
| Prec | 0.954 | 0.962 | 0.955 | 0.970 | 0.966 | 0.921 | 0.966 | 0.955 | 0.946 | 0.987 | 0.956 | 0.921 | 0.966 | 0.941 | 0.870 | 0.949 | |
| Recall | 0.886 | 0.987 | 0.695 | 0.958 | 0.952 | 0.541 | 0.962 | 0.932 | 0.954 | 0.961 | 0.932 | 0.381 | 0.823 | 0.597 | 0.305 | 0.791 | |
| F1 | 0.919 | 0.974 | 0.805 | 0.964 | 0.959 | 0.682 | 0.964 | 0.943 | 0.950 | 0.974 | 0.944 | 0.539 | 0.889 | 0.730 | 0.452 | 0.846 | |
| AUC | 0.975 | 0.997 | 0.935 | 0.992 | 0.990 | 0.882 | 0.992 | 0.984 | 0.991 | 0.997 | 0.984 | 0.886 | 0.972 | 0.923 | 0.862 | 0.957 | |
| Ablation 1 | Acc | 0.923 | 0.975 | 0.845 | 0.963 | 0.948 | 0.735 | 0.964 | 0.941 | 0.951 | 0.963 | 0.932 | 0.667 | 0.893 | 0.791 | 0.638 | 0.875 |