Last updated 31 August 2026

AI content policy

Everything Vardøga renders — stills, video, voice — is produced by a model. It is not footage of a real shoot. This page is what we actually do, including the gaps.

What is generated

A campaign brief is planned by an LLM (scenes, hook, script). Each scene is then sent to a generation provider for picture or video, and to a voice provider for speech. Our worker assembles the cut with ffmpeg: concat, mux, text overlays, thumbnails. The generation, voice and LLM vendor names in production are [TO CONFIRM]. In this codebase they are stub adapters so the pipeline can run without live keys.

Prices, CTAs, product names, URLs and captions are stripped from visual prompts before a provider sees them and composited onto the finished frame as real text. The model is not asked to spell them. That is enforced in code, not by prompt wording.

Labelling when published

All published output is AI-generated and is labelled as such, in two layers. First, the caption: every publish the product makes carries an AI-generated disclosure that is composed on the way out, in one place, and cannot be edited away; a caption you typed yourself keeps its own wording and gets the label added if it is missing. Second, the platform's own flag wherever one exists: TikTok's AI-generated content flag on every TikTok post, YouTube's synthetic-media declaration on every upload. Facebook and Instagram expose no such parameter, so on Meta the caption is the disclosure.

Publishing itself defaults to download-only until the platform app reviews land or the publishing-partner route is switched on; either way the labelling above is the same, because it is composed before any adapter sees the post.

Under the EU AI Act, a video that shows a real person, or places a person in a real venue, is a deepfake in the Act's sense and must be disclosed by whoever publishes it. The caption disclosure is how that duty is met for content published through Vardøga; for content you download and post yourself, keeping it is your obligation.

Every generated file also carries a machine-readable marking inside the file itself, as Article 50(2) requires of the system that generated it: an XMP metadata packet asserting the IPTC DigitalSourceType trainedAlgorithmicMedia, embedded as an iTXt chunk in PNG images, an APP1 segment in JPEG images and an XMP uuid box in MP4 video. Any metadata reader can verify it. Platforms commonly strip file metadata on upload, which is why the caption and platform flags above are separate, deliberate layers rather than duplicates.

You remain the publisher of anything you post, including downloads you upload yourself. You must not strip a required disclosure.

Whose face

Three identity types exist in the product: fictional, authorized_real_person, digital_twin. The last two are a real person's likeness. Generation is refused unless a consent record is on the persona. See the Likeness and consent policy.

We do not offer a mode that clones a real person without that record.

What we refuse

  • Generation for a real-person persona with no consent, or after consent is withdrawn.
  • Sexual content involving anyone 17 or under — [TO CONFIRM] the exact block list and whether it is enforced only in policy or also in the provider/moderation layer.
  • Using the service to impersonate a person who has not consented, including public figures, for deception.

Human review

Renders land in a review state. Campaign planning writes a plan for a human to edit before anything is enqueued to render. We do not auto-post from a locked persona without that review path. Whether every item still requires a click-to-approve before API publish is [TO CONFIRM].

Reproducibility

Generations pin persona_version. Changing a locked persona's appearance mints version+1 with a new reference pack; old versions are not overwritten. That is so a past output can be explained, not so we keep a real person's face after they ask us to erase it.