48% thought Griffin was real: add a disclosure line to your clip

Tavus reports 48% of people took Griffin for a person after a one-minute call. If viewers cannot tell, label the clip: burn a disclosure line with caption cues.

5 min readSume
All posts

Tavus reports that 48 percent of participants believed Griffin was a real person after a one-minute video call. The practical lesson for anyone shipping an avatar is to label it, and on Sume you can burn a disclosure line into the finished MP4 with the caption cues field, which costs $0.20 for one standalone caption job.

What the number is

The Griffin page states the result as a Turing test: 48 percent of participants believed Griffin was a real person after a one-minute video call. It is Tavus's own measurement of its own research preview. It says nothing about rendered clips, and it is not an independent study.

Whatever the method, it shows the direction. Faces that are good enough to be taken for a person make an unlabelled clip more risky for you, not less.

Where the line should go

A label that appears in the first seconds and stays readable on a phone is better than a footer nobody sees. Sume does not decide your legal wording. Use the wording your platform or compliance team requires, and keep the text short.

  • Put it in the picture, not only in the caption or description of the post.
  • Show it from the first second to the last, or at least for the opening.
  • Keep a record of the job id and the text that you burned in.

Burn a line with caption cues

Standalone video captions accept authored cues: each has text, a start and an end in seconds. The job burns that text without speech-to-text, so it also works for clips that have no speech. You pass the public URL of the finished clip.

import json, os, urllib.request

body = {
    "video_url": os.environ["CLIP_URL"],
    "cues": [{"text": "AI-generated presenter", "start": 0, "end": 6}],
}
req = urllib.request.Request(
    "https://api.sume.com/v1/video-captions",
    data=json.dumps(body).encode(),
    method="POST",
    headers={
        "Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
        "Content-Type": "application/json",
        "Idempotency-Key": "disclosure-clip-001",
    },
)
with urllib.request.urlopen(req, timeout=30) as resp:
    print(resp.status, resp.read().decode())

Order of operations

Render the avatar clip first, then burn the line, then publish the captioned file. If the clip also needs spoken-word captions, caption it with the avatar job's inline captions option, which is an add-on inside the avatar-video estimate and not a separate caption job, and then add the disclosure as a second pass. Keep the clean version so you can change the wording later without a new avatar render.

Two caption paths on a Sume avatar clip (Sume docs, read 2026-10-05)
PathWhat it burnsSeparate caption job?
Inline captions on the avatar jobSpoken script, styledNo, an add-on in the avatar estimate
Standalone video captions with cuesText you author, at times you chooseYes, one caption job
Standalone captions with script_textScript aligned to speechYes, one caption job

What to do

Treat the 48 percent as a reminder, not a benchmark. Decide your label text, burn it into every clip you publish, and store the job ids so you can show what was labelled and when.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume