Midjourney v7 vs v6, FLUX vs SDXL, Sora vs Veo 3 — how do labs prove their new model is actually better? FID for image quality, CLIP Score for prompt fidelity, GenEval and HEIM for compositional reasoning, LMSYS arena for human preference. Without these metrics, every "state-of-the-art" claim is just vibes. With them, you can audit any model launch in 15 minutes.
Learning Objectives
After this lesson, you will be able to:
Understand what FID measures (how similar generated images are to real ones) and why lower is better
Compare the main evaluation metrics: FID for quality, CLIP Score for prompt-following, and human evaluation
Spot failure modes like mode collapse and know which metrics catch them
Pick the right metric for your specific generative task
Evaluation might sound like the boring part, but it is actually one of the hardest open problems in generative AI. How do you objectively measure whether an image is "good"? This lesson gives you the tools that the entire field uses to compare models, and understanding them will help you critically evaluate any AI art tool's claims.
Try it! Generate 10 images with the same prompt using any AI art tool. Rate each one 1-10 for quality. Now ask a friend to rate them independently. Compare your scores. The disagreement you see is exactly why human evaluation is noisy and why automated metrics like FID are so valuable -- they give consistent, reproducible scores every time.
FID is the most widely used metric for evaluating generative image models. It compares the distribution of real images to the distribution of generated images.
State-of-the-art (nearly indistinguishable from real)
5-20
Very good quality, minor statistical differences
20-50
Noticeable quality gaps, useful for research
50-100
Clearly distinguishable from real images
100+
Poor quality or fundamentally different distribution
What Do You Think?
Model A has FID=10, Model B has FID=50. Which produces more realistic images?
The answer is Model A. Lower FID means the distribution of generated images more closely matches the distribution of real images. An FID of 10 indicates the model's outputs are statistically very similar to real images in terms of both quality and diversity.
#Precision & Recall: Decomposing Quality from Mode Coverage
FID conflates two very different failure modes into one scalar. A model that produces 100% high-quality images but only ever generates golden retrievers (when the real data has 120 dog breeds) can post a low FID by being statistically close on the dimensions the Inception features capture — while completely missing 119 of the 120 modes. Kynkäänniemi et al. 2019, "Improved Precision and Recall Metric for Generative Models" introduced separate precision/recall metrics that pull these failure modes apart and have become the modern complement to FID.
The intuition is geometric. Build a k-NN manifold estimate of the real-data feature distribution: for each real point r_i, draw a hypersphere out to its k-th nearest neighbor. The union of these spheres is the empirical "real manifold." Do the same for generated samples to get the "generated manifold."
Why this matters for modern evaluation: FID can be deceptively low while a model has catastrophic mode collapse. Imagine a GAN that always produces the same 10 sharp, realistic faces. The mean and covariance in Inception feature space may still be close to the real distribution if those 10 faces happen to sit near the centroid — FID looks fine, the model is broken. Precision will be ~1.0 (every sample is realistic), recall will be ~0.02 (you cover ~2% of the actual face manifold). The diagnostic is unambiguous in PR space and invisible in FID alone. This is why Kynkäänniemi-style precision/recall — and its 2020+ refinements (Naeem et al.'s density/coverage, Sajjadi et al.'s PR curves) — appear next to FID in every serious paper since 2020.
Quick check
A GAN posts precision ≈ 0.92 and recall ≈ 0.18. What is it doing?
FID is a starting point, not a finish line. The frontier-lab playbook for text-to-image and video has moved on to compositional, preference-trained, and Elo-based evaluations that better correlate with what users actually want. Pick a basket of these — no single metric is sufficient on its own.
#GenEval (Ghosh et al. 2023): compositional T2I evaluation
GenEval evaluates a text-to-image model on prompts that test specific compositional skills: object presence, counting (e.g., "three cats"), color (e.g., "a red apple and a blue mug"), position (e.g., "a dog left of a cat"), and attribute binding (e.g., "a red cube on a green sphere"). For each prompt, an off-the-shelf object detector verifies the property automatically. GenEval became the de-facto compositional benchmark for SD3 / FLUX / DALL-E 3 head-to-heads because it surfaces failures FID is blind to — a model can have a great FID and still systematically fail "three apples on a blue plate."
HPSv2 is a CLIP-style model fine-tuned on the HPDv2 dataset of 798K human preference pairs spanning DALL-E 2, SD 1.5, SDXL, Midjourney v5, and others. Given a prompt and a generated image, HPSv2 outputs a scalar that correlates strongly with which image humans pick in pairwise tests. It became the standard during the diffusion-DPO / direct preference optimization era — "improve HPSv2" is now a default training signal, not just an eval.
A sibling preference-trained scorer trained on the Pick-a-Pic dataset of 1M+ real user preference pairs collected from a public T2I playground. Closely related to HPSv2 and often reported alongside it; PickScore is the metric Stable Diffusion fine-tuning papers (DPO-SDXL, Diffusion-DPO) commonly use as their preference reward.
A BLIP-based reward model trained on 137K expert ratings across text-image alignment, fidelity, and harmlessness axes. Widely used as an RLHF reward signal for diffusion fine-tuning; included in the standard eval basket together with HPSv2 and PickScore so a model isn't gamed against just one preference distribution.
The video equivalent of GenEval. VBench scores video generators across 16 axes including subject consistency, background consistency, temporal flickering, motion smoothness, dynamic degree, object class accuracy, multiple-object handling, color, spatial relationship, scene, and overall video-text alignment. It's how Sora, Veo, Kling, Pika, and HunyuanVideo are compared in published leaderboards.
Modeled after the famous LMSYS Chatbot Arena, the Image Arena shows users two anonymized images for the same prompt and asks them to pick a winner. Thousands of votes per day produce an Elo ranking that, like the LLM arena, has become the single most cited community benchmark because it is hard to game, blind, and rooted in real human preferences. Its limitation: prompts skew toward what arena users like, and the model identity is hidden but the style often isn't.
FID is fine as a distribution-similarity check and is what you'd report for unconditional generation (e.g., CIFAR-10, FFHQ benchmarks). For modern T2I/T2V however it's increasingly Goodharted: teams optimize directly against FID-on-COCO and end up with models that look statistically right but are obviously worse to humans. Keep it on your dashboard, don't make it your North Star.
CLIPScore was the original "does the image match the prompt?" metric. The problem: CLIP itself has biases and is trivially gamed by adding text labels into the image or matching CLIP's lexical preferences rather than the prompt's semantics. Modern pipelines either retire it in favor of HPSv2 / PickScore / ImageReward, or report it alongside them so any one reward model can't be overfitted in isolation.
Quick check
You release a new T2I model in late 2026 and want a contamination-resistant headline number. Which evaluation should you weight most heavily?
For text-to-image models like DALL-E, Stable Diffusion, and Midjourney, quality and diversity are not enough. The generated image must also match the text prompt. CLIP Score measures this alignment.
Encode the text prompt with CLIP's text encoder to get a text embedding
Encode the generated image with CLIP's image encoder to get an image embedding
Compute cosine similarity between the two embeddings
A higher CLIP Score means the image better matches the text description. This is the same contrastive learning objective CLIP was trained on -- matching images with their captions.
Human evaluation is the gold standard but it is expensive (hiring annotators), slow (days to weeks for large studies), and noisy (people disagree). In practice, teams use automated metrics for rapid iteration during training and reserve human evaluation for milestone comparisons.
Mode collapse occurs when a generative model produces only a limited variety of outputs. Detection strategies include:
High precision but low recall (Kynkäänniemi 2019): Samples that fall sit are inside the real-data manifold (high precision = realistic), but only a small fraction of the manifold is covered (low recall = limited diversity). This is the most direct modern signal for mode collapse and has largely replaced "high IS, high FID" diagnostics.
Low variance in feature space: Extract DINOv2 or Inception features from many generated samples and measure their spread. Low variance means the model is stuck in a few modes.
Nearest-neighbor analysis: For each generated image, find its nearest neighbor in the generated set. If many images are near-duplicates, mode collapse is occurring.
GenEval per-category dropouts: A model that generates beautiful single objects but fails every "two-object" or counting prompt is exhibiting compositional mode collapse — common in older or over-distilled models.
Tests · Verify Good Generator has the lowest FID. Verify mode-collapsed generator has higher FID than mediocre. Verify FID decreases as the generated distribution approaches the real distribution.
FID compares distributions, not individual images -- it measures how statistically similar a set of generated images is to a set of real images using Inception network features, with lower scores indicating closer match
Precision/recall replace the old Inception Score -- precision (quality) and recall (mode coverage) decompose what FID measures jointly, catching mode collapse FID can hide. Classic Inception Score is deprecated; use FID + DINOv2-FID + precision/recall instead.
CLIP Score bridges text and image evaluation -- essential for text-to-image models, it measures how well generated images align with their text prompts using CLIP's shared embedding space
No single metric is sufficient -- FID for overall quality, CLIP Score for alignment, and human evaluation for final validation form a comprehensive evaluation stack
Now you can measure how good generative models are. Next: The Ethics of Generative AI -- deepfakes, copyright, consent, bias, and environmental cost; the challenges every AI practitioner must understand before deploying generative systems.