The Problem This Solves
AI-generated video is cheap enough to post daily. It is also drift-prone: the same prompt on two different days returns a slightly different character, and an audience notices a mascot whose face changes between episodes long before they can articulate why the account feels untrustworthy. Character consistency is not a polish item. For a mascot-led account it is the brand. This page is the contract that keeps Professor High the same pineapple in episode 100 as in episode 1.This spec is written for Cantina, but the structure — locked character block, shot grammar, negative prompt, continuity checklist — is tool-portable. If we change generators, port the blocks rather than rewriting from scratch.
The Cantina Prompt Block
Every script in every pack ends with a Cantina Prompt — a fenced block you copy whole and paste straight into Cantina. No assembly, no cross-referencing other pages. Professor High already exists in Cantina with his image, voice, personality, and tone attached. So the prompt block deliberately does not re-describe him. Re-describing a character that is already loaded is the single most common way to make him drift — the app blends your fresh description against the saved one and you get a slightly different pineapple. What the prompt block carries instead:The
DO NOT block is repeated in all 50 prompts rather than referenced once. Repetition costs nothing and a moderation strike costs the account.The Template
Rule Zero: The Character Is Generated Once
Professor High is built once as a persistent character and reused. He is not re-described per video — re-describing a saved character makes the generator blend your new wording against the stored one, and that is what makes his face drift between episodes.Character Config — the canonical spec
The full character-lock block, negative prompt, expression set, voice spec, and hard constraints live on one page. Paste the setup block once to create or repair
professor-high-v1, then never again.1
Build the character once
Paste the Cantina setup block into Cantina. Save it as
professor-high-v1.2
Archive a reference set
Generate stills of all five expressions — neutral, excited, skeptical, disappointed, deadpan — at identical framing. These are the continuity ground truth for every future check.
3
Reuse the saved character for every shot
The per-script prompt blocks below assume he is already loaded. They carry the script, tone, and environment — never his description.
4
Version deliberately
To change the look, bump to
professor-high-v2 and re-shoot one full episode as a side-by-side test. Never mix versions inside a single episode.Rule Zero Applies To One Character Only
Rule Zero locks Professor High. It does not lock anyone else, and every prompt in the library now says so explicitly in itsCHARACTERS block:
The Supporting Cast — briefs and swap rules
Nine roles with paste-ready casting briefs, the four swap rules, and the casting order that unlocks the most episodes per decision.
The Two Grammars
Comedy and education are different visual languages on this platform, and mixing them is what the first draft got wrong.Citation cards — education only
Both top cannabis educators put the actual paper on screen:Smith et al., PLOS One 2021, Gowin JL et al., JAMA Netw Open 2025. It converts an assertion into evidence in a single frame, and we do it nowhere.
Any education script making a research claim now carries a citation card in the lower third for the duration of that claim. Format: Author et al., Journal Year. Small, persistent, never animated.
Shot Prompt Grammar
EverySHOT cell in a script pack is written in the same four-part order. Keep the order; the generator weights early tokens more heavily.
A complete shot cell:
Recurring Visual Assets
Build these once, reuse forever. Consistency of the furniture matters as much as consistency of the character.Voice Direction
Word budgets, at pace, after leaving room for beats:
Scripts in this section are written to those budgets. If a script runs long in production, cut a clause from the setup — never from the payoff or the CTA.
Caption Burn-In
TikTok’s own auto-captions are inconsistent and ugly. Burn ours in.- Bold sans-serif, white, heavy stroke or drop shadow for legibility on any background.
- Maximum six words per line, maximum two lines at a time.
- Key terms — terpene names, percentages, strain names — highlighted in pineapple yellow (#D98E04).
- Positioned in the lower third, clear of the TikTok UI safe zone: keep 250px clear at the bottom and 120px at the top of a 1080x1920 frame.
- Captions appear word-synced, not sentence-dumped. Synced captions measurably hold retention better.
Audio
Output Spec
File Naming
Every render is named for its tracking row. This is what makes the performance log joinable to the actual files.projects/ directory, not in this repository. Only scripts, logs, and specs are committed here.
Continuity Checklist
Run before any episode ships. Two minutes here prevents a visibly broken character on a video that goes big.1
AI label applied
The AIGC / “AI-generated” toggle is on before posting. Properly labeled AI carries no algorithmic penalty; undisclosed synthetic content runs warning → 7-day restriction → 30-day suspension → permanent ban. This is non-negotiable and it is the first check for a reason.
2
Compliance lane
No consumption, no product, no paraphernalia in frame. Nothing that reads as promoting or glorifying use. The video is informative or observational. See The Compliance Lane.
3
Character match
Compare a frame against the archived reference stills. Crown shape, eye spacing, coat collar. If it reads as a different pineapple, regenerate.
4
Environment match
Lab background present and dark. No kitchen, no void, no drift into a new room.
5
Safe zones clear
Nothing important within 250px of the bottom or 120px of the top.
6
Data tokens filled
Zero
[DATA: ...] tokens surviving in the burned-in text or the voiceover.7
Claim check
No medical claim. No unverified number. No consumption on camera. Cross-check against the Verified Data Sheet.
8
Hook timing
A complete idea, spoken and on screen, before 1.5 seconds.
Draft-First Guardrail
Cantina renders drafts. Nothing auto-posts. Every video clears human review before it reaches a platform — the same rule the Video Production Pipeline applies to every other render path.Related
Script Room
The packs that consume this spec.
Verified Data
The numbers allowed on camera.
Video Pipeline
Render paths and draft-first guardrails.
