is-this-photo-real

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Is this photo real

这张照片是真实的吗

Verification order is the whole skill: provenance first, pixels last. Finding the earliest copy and reading its caption settles more cases than every forensic filter combined, and it produces evidence you can show someone. Pixel forensics produces a colourful heatmap and an argument.
The beginner mistake is running error level analysis on a downloaded JPEG and announcing the image is fake. The second is looking for deepfakes: the overwhelming majority of deceptive media is real footage with a false caption — right pixels, wrong war, wrong year, wrong country.
验证顺序是这项技能的核心:先查来源,再看像素。找到最早的副本并查看其标注,比所有取证滤镜加起来能解决更多案例,而且能拿出可展示的证据。像素取证只能生成彩色热力图,引发争议。
新手常犯的错误是对下载的JPEG图片进行误差水平分析后就宣称图像是伪造的。第二个错误是一味寻找Deepfake:绝大多数具有欺骗性的媒体都是标注错误的真实素材——像素是真实的,但对应的战争、年份或地点是错误的。

Triage: what question are you actually answering

分流:你实际要回答的问题是什么

The claim under testDo this firstNot this
"This shows event X in place Y"
find-the-original-image
, then
geolocate-from-pixels
Any forensic filter. Recontextualisation leaves no pixel trace at all.
"This is an unaltered photograph"Signal-level analysis, on the least-processed copy you can obtainAnalysing a screenshot or a platform download; both destroy the signal.
"This person said this on video"Provenance, then audio-visual consistency, then face-boundary behaviour frame by frameAn AI-detector score.
"This image was AI-generated"Absent camera physics and incoherent object structureA detector verdict on its own.
"This screenshot is genuine"Layout, font and interface-version consistency; the underlying record if one existsImage forensics. Fabricated screenshots are made in a browser, not an image editor.
Then always ask what the image would look like if the claim were true, write it down, and check for those things specifically. Verification tests a hypothesis; hunting for anomalies fails, because anomalies are everywhere.
待验证的主张优先执行操作避免操作
"这展示了Y地发生的X事件"
find-the-original-image
,然后
geolocate-from-pixels
任何取证滤镜。重新语境化不会留下任何像素痕迹。
"这是一张未被篡改的照片"对能获取到的最少处理版本进行信号级分析分析截图或平台下载的版本;这两种操作都会破坏信号。
"此人在视频中说过这番话"先查来源,再检查视听一致性,然后逐帧分析面部边界行为仅依赖AI检测工具的分数。
"这张图片是AI生成的"检查是否存在不符合物理规律的相机特性以及物体结构不连贯问题仅依赖检测工具的判断。
"这张截图是真实的"检查布局、字体和界面版本的一致性;若存在底层记录则核查底层记录图像取证。伪造的截图是在浏览器中制作的,而非图像编辑器。
之后始终要假设主张为时图像会是什么样子,将其记录下来,然后针对性地检查这些点。验证是对假设的测试;盲目寻找异常点会失败,因为异常点无处不在。

Method

方法

  1. Get the best copy. Every re-encode, resize and screenshot destroys forensic signal. Chase the original upload or the agency version, not the platform rendition. Hash it, work on copies. If all you have is a screenshot, say so and lower every downstream conclusion.
  2. Provenance. Run
    find-the-original-image
    ; for video, extract and search keyframes. You want an earlier appearance, a different caption, a photographer credit, and an on-page date corroborated through
    read-deleted-pages
    . An earlier copy with a different caption ends the case.
  3. Metadata. Run
    secrets-in-file-metadata
    : editing chain, thumbnail-versus-image comparison, timestamp inconsistencies, whether MakerNotes fit the claimed device.
  4. Provenance signing. Check for C2PA Content Credentials.
  5. Internal consistency. Signage language, plates, currency, uniforms, vehicle models, season, weather and shadows against the claimed date and place, via
    geolocate-from-pixels
    . Ordinary detective work, more productive than forensics.
  6. Physical consistency. Lighting, shadows, reflections, perspective.
  7. Signal-level forensics. Noise residuals, JPEG quantisation and double compression, clone detection, colour-filter-array traces. Easy to over-read, worthless on a platform-processed file.
  8. Write what you verified, not a verdict.
Tools and their failure modes: reference/tool-catalogue.md. Ordered by cost: reference/verification-checklist.md.
  1. 获取最佳副本。每一次重新编码、调整大小和截图都会破坏取证信号。追踪原始上传版本或机构提供的版本,而非平台渲染版本。对其进行哈希处理,在副本上操作。如果只有截图可用,需说明这一点,并降低后续所有结论的可信度。
  2. 来源核查。运行
    find-the-original-image
    ;针对视频,提取关键帧进行搜索。你需要找到更早的出现记录、不同的标注、摄影师署名,以及通过
    read-deleted-pages
    核实的页面日期。如果找到带有不同标注的更早副本,即可结案。
  3. 元数据分析。运行
    secrets-in-file-metadata
    :检查编辑链、缩略图与图像对比、时间戳不一致性,以及MakerNotes是否与声称的设备匹配。
  4. 来源签名验证。检查是否存在C2PA内容凭证。
  5. 内部一致性检查。通过
    geolocate-from-pixels
    验证标识语言、车牌、货币、制服、车辆型号、季节、天气和阴影是否与声称的日期和地点相符。普通侦探工作比取证分析更有效。
  6. 物理一致性检查。检查光线、阴影、反射、透视。
  7. 信号级取证分析。检查噪声残留、JPEG量化与双重压缩、克隆检测、彩色滤光阵列痕迹。容易过度解读,对平台处理过的文件毫无价值。
  8. 记录你验证的内容,而非直接给出结论。
工具及其失效模式:reference/tool-catalogue.md。 按成本排序的清单:reference/verification-checklist.md

Lighting, shadow and geometry — the checks that hold up

光线、阴影与几何——可靠的检查方法

No tooling, reasoning you can explain to an editor or a court, immune to recompression. This is where to spend your time. Shadow convergence is the strongest. Sunlight is parallel, so in a perspective image, lines drawn from each shadow's tip through the base of the object that cast it must all meet at one point — the projection of the light source. Draw three or four. An object whose line refuses to meet the others was probably not in the original scene; sloped ground is the confound, so use one plane only. Then: shadow direction and penumbra hardness should be consistent across an outdoor scene; specular highlights in eyes, glass and polished metal should agree on where the lights are; a reflection must show what is in front of it, correctly placed and reversed; parallel lines should converge on a common vanishing point with eye level consistent for people on one ground plane; and real lenses leave an optical signature — consistent depth of field, chromatic aberration at high-contrast edges, vignetting, a noise floor that varies with brightness. An element carrying none of that, in an image that has it elsewhere, was added.
无需工具,推理过程可向编辑或法庭解释,不受重新压缩影响。这是你应该投入时间的地方。阴影汇聚是最有力的证据。阳光是平行的,因此在透视图像中,从每个阴影尖端穿过投射阴影的物体底部绘制的线条必须汇聚于一点——光源的投影点。绘制三到四条这样的线。如果某个物体的线条无法与其他线条汇聚,它很可能不在原始场景中;倾斜地面是干扰因素,因此仅使用同一平面的物体。此外:户外场景中阴影的方向和半影硬度应一致;眼睛、玻璃和抛光金属中的镜面高光应与光源位置一致;反射必须正确显示前方物体的位置并呈镜像;平行线应汇聚于共同的消失点,且同一地面平面上的人物视线高度一致;真实镜头会留下光学特征——一致的景深、高对比度边缘的色差、暗角、随亮度变化的噪声基底。如果图像中某个元素不具备这些特征,而其他元素具备,则该元素是后期添加的。

Error level analysis, and why it is mostly used wrongly

误差水平分析(ELA)及其被误用的原因

ELA re-saves the image at a known JPEG quality and displays the difference, on the theory that a region compressed a different number of times responds differently. Four reasons it produces confident nonsense: it responds to content, so edges and texture light up while flat sky and skin go dark, meaning every image has "suspicious bright regions"; one re-save destroys it, so ELA on a social-media download describes the platform's encoder and nothing earlier; it cannot localise a modern edit, because content-aware fill, generative editing and a full re-save leave no differential history to find; and it fails in both directions, with bright regions on untouched images and clean output on manipulated ones both routine.
Where it earns its place: on a single-generation JPEG straight from a camera, a pasted region from a differently-compressed source can genuinely show up. Narrow case. Use it as one weak input, only on least-processed files, never as the basis of a published claim. More defensible relatives — quantisation-table comparison against camera signatures, and double-compression detection — are also defeated by platform processing.
ELA以已知的JPEG质量重新保存图像并显示差异,理论依据是压缩次数不同的区域会有不同的反应。它会产生误导性结论的四个原因:它对内容有反应,因此边缘和纹理会高亮显示,而平坦的天空和皮肤会变暗,这意味着每张图像都有“可疑的亮区”;一次重新保存就会破坏其有效性,因此对社交媒体下载的图像进行ELA分析只能反映平台编码器的特性,无法反映更早的处理情况;它无法定位现代编辑痕迹,因为内容感知填充、生成式编辑和完整重新保存不会留下可检测的差异历史;它在两个方向上都会出错,未被篡改的图像出现亮区、被篡改的图像输出干净的结果都是常见情况。
ELA的适用场景:对于直接来自相机的单代JPEG图像,从不同压缩来源粘贴的区域可能会被真实检测到。这是非常狭窄的场景。仅将其作为一个弱输入,且仅在最少处理的文件上使用,绝不能作为发布结论的依据。更可靠的替代方法——与相机签名对比的量化表分析、双重压缩检测——也会被平台处理破坏。

C2PA and Content Credentials

C2PA与内容凭证

C2PA binds a cryptographically signed manifest to a file recording capture and edit history. Where it exists it is the strongest provenance evidence available, because it is verifiable rather than inferential. A valid manifest means the signer asserts this history, the file is unchanged since signing, and you know who to hold responsible — not that the content is true. A signed photograph of a staged scene is a signed photograph.
Absence means almost nothing: most cameras do not sign, most editing pipelines do not preserve manifests, and platforms strip them during re-encoding. Missing credentials are the default state, not a red flag. Same for the IPTC digital-source-type field used to label synthetic media, and for model-specific invisible watermarks — a positive is strong where you can check it, a negative only says one vendor's mark was not found.
C2PA将加密签名的清单绑定到文件上,记录捕获和编辑历史。如果存在C2PA凭证,它是最有力的来源证据,因为它可验证而非推断。有效的清单意味着签名者断言该历史记录,文件自签名后未被更改,且你知道该追究谁的责任——但这并不意味着内容是真实的。一张经过签名的摆拍场景照片仍然是签名照片。
缺失几乎没有意义:大多数相机不进行签名,大多数编辑流程不保留清单,平台在重新编码时会剥离这些凭证。缺少凭证是默认状态,而非危险信号。用于标记合成媒体的IPTC数字源类型字段,以及特定模型的隐形水印也是如此——如果能验证到阳性结果则很有力,但阴性结果仅表示未找到某一供应商的标记。

AI generation — durable tells and tells that rot

AI生成内容——持久识别特征与过时特征

Anything resting on a model's current weaknesses will be fixed. Prefer tells grounded in physics and structure.
Durable, because they need a world model the generator does not have: impossible lighting (inconsistent shadow directions, missing shadows under objects, a subject lit from a direction with no source); structural incoherence in background objects (a bicycle frame that does not connect, a railing whose baluster spacing changes, stair treads that do not line up, a strap that vanishes and resumes, patterned fabric whose pattern ignores the folds); text degradation, especially small, repeated or peripheral text; contact and occlusion errors, such as a hand around a cup that does not enclose it, or feet not meeting the ground; absent camera physics — no sensor noise, no chromatic aberration, uniform focus, and too little high-frequency detail, which is what "over-smooth skin" actually is; and no plausible provenance at all.
Ages badly — check, but do not rest on: finger and tooth counts, ear asymmetry, garbled foreground text, mangled jewellery, suspiciously symmetrical faces.
Detector tools. A confident score with no auditable reasoning. They false-positive on compressed, resized, upscaled, heavily edited and low-light real photographs, false-negative against generators newer than their training data, and are adversarially fragile — mild recompression moves scores. Run more than one, treat them as a weak signal, never publish a conclusion resting on one. If your evidence is a percentage from a website, you have no evidence.
任何依赖当前模型弱点的特征都会被修复。优先选择基于物理规律和结构的识别特征。
持久特征(因为生成器缺乏对应的世界模型):不可能的光线(不一致的阴影方向、物体下方缺少阴影、主体从无光源的方向被照亮);背景物体结构不连贯(无法连接的自行车架、栏杆间距变化、楼梯踏板不对齐、消失后又出现的带子、图案不随褶皱变化的织物);文本退化,尤其是小字体、重复或边缘文本;接触与遮挡错误,比如手握住杯子但未包围杯子,或脚未接触地面;缺少相机物理特性——无传感器噪声、无色差、对焦均匀、高频细节过少(这就是“过度光滑皮肤”的实际原因);完全没有合理的来源记录。
容易过时的特征(可检查,但不能作为依据):手指和牙齿数量、耳朵不对称、前景文本混乱、珠宝变形、面部异常对称。
检测工具:给出自信的分数但无可审计的推理过程。它们会对压缩、调整大小、放大、重度编辑和低光照的真实照片产生误报,对训练数据之后的生成器产生漏报,且对抗性脆弱——轻微重新压缩就会改变分数。运行多个工具,将其视为弱信号,绝不要仅基于一个工具的结果发布结论。如果你的证据只是网站给出的百分比,那你没有任何证据。

Video

视频验证

  • Container and encoder.
    ffprobe -show_format -show_streams
    and MediaInfo give the encoder string, frame rate, rotation matrix and track structure; values typical of a platform re-encode mean you do not have an original.
    ffprobe -show_frames
    exposes frame types — duplicated frames mean frame-rate conversion or inserted slow motion, an unexplained keyframe mid-way through a static shot can mark a splice, and interlacing or telecine artifacts reveal a pipeline nobody mentioned.
  • Generation loss. Blockiness, banding and mosquito noise stack with each re-encode. Heavily degraded footage is old, widely copied, or both — and every signal-level test on it is void.
  • Audio. Lip-sync drift, room acoustics that do not match the visible space, ambience that does not change when the camera goes indoors, noise-floor jumps at edit points. The weakest link in most fabricated video and the least examined.
  • Face-swap behaviour. Flicker or blur at hairline and jaw, face lighting not tracking head movement, teeth and tongue degrading during speech, the face at a different resolution from the frame, breakdown on profile turns and hand occlusion.
  • Keyframes to reverse search. The most common outcome of a video verification is finding the video, older, elsewhere. Extraction commands live in
    find-the-original-image
    .
  • 容器与编码器
    ffprobe -show_format -show_streams
    和MediaInfo可提供编码器字符串、帧率、旋转矩阵和轨道结构;符合平台重新编码典型特征的值意味着你没有拿到原始版本。
    ffprobe -show_frames
    可暴露帧类型——重复帧意味着帧率转换或插入慢动作,静态镜头中途出现无法解释的关键帧可能标记了拼接点,隔行扫描或电视电影 artifacts 揭示了未提及的处理流程。
  • 生成损耗:块效应、条带效应和蚊式噪声会随每次重新编码叠加。严重退化的素材要么是旧的,要么被广泛复制,或者两者皆是——对其进行的任何信号级测试都无效。
  • 音频分析:唇形同步偏差、与可见空间不符的房间声学特性、相机进入室内时环境音未变化、编辑点处噪声基底突变。这是大多数伪造视频中最薄弱的环节,也是最常被忽视的部分。
  • 换脸行为:发际线和下巴处闪烁或模糊、面部光线未随头部移动变化、说话时牙齿和舌头退化、面部与帧分辨率不同、侧脸转动和手部遮挡时出现故障。
  • 关键帧反向搜索:视频验证最常见的结果是找到更早出现在其他地方的视频。提取命令在
    find-the-original-image
    中。

Where this goes wrong

常见误区

  • Every filter has a base-rate problem. Run six forensic tools on an authentic photograph and something will look anomalous. Anomaly is the normal condition of real images.
  • The platform did it. Resizing, re-encoding, chroma subsampling and metadata stripping produce artifacts people attribute to manipulation. Establish processing history before interpreting any artifact.
  • You will be handed the worst copy — a screenshot of a repost of a crop. Most signal-level analysis is invalid on it, and the honest report says so.
  • "Not manipulated" is not a finding. Absence of detected manipulation is a statement about your tests, not about the image.
  • A real photo can be entirely misleading. Selective framing, staged scenes and a true image with a false caption all pass every forensic test.
  • Debunking amplifies. A detailed refutation spreads the original claim — an editorial judgement worth making deliberately. Material is also sometimes seeded to be discovered and debunked, or to see who investigates; see
    investigate-without-getting-made
    .
  • Identification from resemblance is the highest-consequence error here — "this is person Z because they look alike" is not a finding.
  • 所有滤镜都存在基线率问题。对一张真实照片运行六个取证工具,总会有某个结果看起来异常。异常是真实图像的正常状态。
  • 平台处理导致的 artifacts。调整大小、重新编码、色度子采样和元数据剥离会产生被误认为是篡改痕迹的 artifacts。在解读任何 artifacts 之前,先确定处理历史。
  • 你拿到的往往是最差的副本——转发截图的截图。大多数信号级分析对其无效,诚实的报告应说明这一点。
  • “未被篡改”不是结论。未检测到篡改只是对你的测试结果的陈述,而非对图像的判断。
  • 真实照片也可能完全具有误导性。选择性取景、摆拍场景和标注错误的真实图像都能通过所有取证测试。
  • 辟谣反而会放大传播。详细的反驳会传播原始主张——这是需要谨慎做出的编辑判断。有时素材是故意被投放出来以被发现和辟谣,或测试谁会进行调查;参见
    investigate-without-getting-made
  • 基于相似性识别是最高风险的错误——“这是Z某人因为他们长得像”不是结论。

Confidence grading

置信度分级

Grade each claim separately — one image can have a confirmed origin, a contradicted caption and unconfirmed authenticity at once.
  • Confirmed original and correctly described — earliest copy located from a plausible originator, date independently corroborated, location visually verified, internal details consistent, nothing contradicted in metadata or geometry.
  • Confirmed recontextualised — the same image demonstrably published earlier with a different, better-sourced caption. The most common positive finding here.
  • Probably manipulated — a specific, describable physical or geometric inconsistency you can point at, ideally with a source for the inserted element. Not a heatmap.
  • Probably synthetic — multiple durable generative tells, no provenance history, no camera-consistent compression or metadata, no earlier copies. Name the tells.
  • Unconfirmed — no earlier copy found, nothing wrong found. Where most cases end.
  • Cannot be assessed — the available copy is too processed for the tests the question needs. Say which tests were invalid and why.
分别对每个主张进行分级——一张图像可能同时具有已确认的来源、被反驳的标注和未确认的真实性。
  • 已确认原版且标注正确——找到来自可信来源的最早副本,日期经独立核实,位置经视觉验证,内部细节一致,元数据或几何特征无矛盾。
  • 已确认重新语境化——同一图像被证明更早以不同的、来源更可靠的标注发布。这是此处最常见的阳性结论。
  • 可能被篡改——存在可描述的具体物理或几何不一致性,理想情况下能指出插入元素的来源。而非热力图。
  • 可能是合成的——存在多个持久的生成特征,无来源记录,无符合相机特性的压缩或元数据,无更早副本。列出具体特征。
  • 未确认——未找到更早副本,未发现问题。大多数案例的最终状态。
  • 无法评估——可用副本经过度处理,无法进行回答问题所需的测试。说明哪些测试无效及原因。

Worked example

实操案例

A video circulates showing an explosion, captioned as a strike on a named city that morning.
yt-dlp
pulls the best rendition rather than a screen recording.
ffprobe
shows a frame rate and encoder string typical of a platform re-encode, so signal-level tests are off the table — noted, not lamented.
Keyframes extracted at scene changes. Frame four hits nothing. Frame nine, the only one with a skyline, hits a news site from eighteen months earlier in a different country. Provisional answer in ten minutes. But the earlier page's video is shorter, so which is the parent? The suspect version has a hard cut and a noise-floor jump in the audio four seconds in, and the ambience after the cut does not match the visible space. Added audio, not added video.
Dead end worth recording: an AI detector scored the frames as likely synthetic. They are a re-encoded crop of real broadcast footage — exactly the input that fools these tools. Discarded.
Findings: confirmed recontextualised, with
read-deleted-pages
corroborating the earlier page's date; audio probably manipulated; authenticity of the underlying video cannot be assessed at signal level given the copy available.
Reporting standard. State what you verified, what you could not, and what each conclusion rests on — never a bare "fake" or "real". A defensible line reads: the image was published at least three years before the claimed event, on a news site, credited to a named photographer; the location matches that credit and not the claim; no manipulation was detected, but the only available copy was a platform re-encode, so signal-level tests were not meaningful. "Our analysis shows this is fake" is not. Include the tests you ran and their negative results, the file's processing history, and your assumptions, then hand the package to
write-the-intel-brief
.
一段显示爆炸的视频在网上传播,标注为当天早上对某城市的袭击。
使用
yt-dlp
获取最佳版本而非屏幕录制。
ffprobe
显示帧率和编码器字符串符合平台重新编码的典型特征,因此信号级测试无法进行——记录这一点,而非抱怨。
提取场景变化处的关键帧。第四帧无匹配结果。第九帧(唯一包含天际线的帧)匹配到18个月前另一国家的新闻网站。十分钟内得出初步结论。但更早页面的视频更短,哪个是原始版本?可疑版本在4秒处有硬切,音频噪声基底突变,且切后的环境音与可见空间不符。是添加了音频,而非添加了视频。
值得记录的无效线索:AI检测工具判定这些帧可能是合成的。但它们是真实广播素材的重新编码裁剪版——正是会误导这些工具的输入。因此该线索被丢弃。
结论:已确认重新语境化
read-deleted-pages
核实了更早页面的日期;音频可能被篡改;鉴于可用副本的情况,底层视频的真实性无法通过信号级测试评估
报告标准。说明你验证了什么、无法验证什么,以及每个结论的依据——绝不要只说“假的”或“真的”。一个可靠的表述是:该图像至少在声称事件发生三年前就已发布在某新闻网站上,署名给一位知名摄影师;地点与署名一致,与主张不符;未检测到篡改,但唯一可用的副本是平台重新编码版本,因此信号级测试无意义。 而“我们的分析显示这是假的”则不可取。列出你运行的测试及其阴性结果、文件的处理历史和你的假设,然后将资料提交给
write-the-intel-brief

Pivots

转向操作

What you gotSend to
Earlier copies, credits, original caption
find-the-original-image
Editing chain, device, timestamps
secrets-in-file-metadata
Location and date verification
geolocate-from-pixels
,
where-was-this-taken
Deleted or altered source pages
read-deleted-pages
Publishing or seeding domain
who-owns-this-domain
,
recon-a-domain-passively
Accounts amplifying the media
hunt-a-handle
,
pattern-of-life-from-socials
Coordinated network behind the spread
graph-the-network
,
find-leaks-in-the-wild
Named individuals in or credited on the media
find-anyone
你获取到的信息转向操作
更早副本、署名、原始标注
find-the-original-image
编辑链、设备、时间戳
secrets-in-file-metadata
位置与日期验证
geolocate-from-pixels
,
where-was-this-taken
已删除或修改的源页面
read-deleted-pages
发布或投放域名
who-owns-this-domain
,
recon-a-domain-passively
传播该媒体的账号
hunt-a-handle
,
pattern-of-life-from-socials
传播背后的协同网络
graph-the-network
,
find-leaks-in-the-wild
媒体中或署名的特定个人
find-anyone

Legal and ethical notes

法律与伦理说明

Publishing an accusation of fabrication against a named person carries defamation risk in most jurisdictions, and "our tool said so" is not a defence. Uploading material to online forensic services discloses it to those services and, for some, to public galleries — check whether a tool publishes submissions before submitting anything sensitive. If the media depicts a crime, a victim, or intimate content: minimise copies, do not redistribute, and in the case of child sexual abuse material stop immediately and report to the appropriate authority rather than analysing it. See ../../ETHICS.md.
在大多数司法管辖区,发布针对特定个人的伪造指控存在诽谤风险,“我们的工具这么说”不能作为辩护。将素材上传到在线取证服务会向这些服务披露素材,部分服务还会将其公开到图库——在提交敏感素材前,需检查工具是否会发布提交内容。如果媒体描绘犯罪、受害者或私密内容:尽量减少副本,不要重新分发;如果是儿童性虐待素材,立即停止并向相关机构报告,而非进行分析。参见../../ETHICS.md