Skip to content
← UGC videos with AI

Prompt library

Every starter prompt from the course, in lesson order. Each lesson explains when to use its prompts.

Lesson 1

UGC is a format, not a customer

  • Sort my lines: present or testify

    Here is the script for a short creator-style video ad: [paste the script]. The speaker is [an AI-generated creator / a paid actor / a real customer who has used the product]. Sort every line into one of three groups: presents or explains the product; demonstrates it on screen; or states the speaker’s own opinion, use or result. For each line in the third group, say whether this speaker can truthfully say it. If not, suggest a rewrite that presents or demonstrates instead. Do not add any claim, number or result that is not in my script.
  • Choose a real or an AI creator

    I am planning a short creator-style video ad for [product]. Interview me, one question at a time, to decide between a real customer, a paid creator and an AI-generated creator. Ask whether a real customer will appear and speak truthfully about their own use, what budget I have for a fee and a release, and whether any line in my plan depends on personal experience. Then recommend one option in two sentences. Remind me that an AI-generated creator may present and demonstrate, but may never claim to have used the product. Do not give legal advice.
  • Write the disclosure line

    Write three versions of an on-screen disclosure for a vertical video ad whose creator is AI-generated. Each version must be four words or fewer and readable in under two seconds. Then say where the line should sit in the first three seconds so it does not cover the creator’s face or the captions. Use plain words. Do not use brand names or the phrase "virtual influencer".

Lesson 2

Script from sources

  • Draft a script on the spine

    Write a script for a [length]-second vertical creator-style video ad for [product]. The free action viewers should take is: [action]. The speaker is [an AI-generated creator who presents and demonstrates but never claims to have used the product / a real customer speaking about their own use]. Use only these sources: [paste the source text and your product notes]. Follow these nine beats in order, one or two spoken sentences each: a hook with a sourced fact; tension; one human beat about why people do this at all; the turn to the product; a bridge such as "try this one with me"; one product question with a pause for the viewer; the reveal; a short offer; one call to action. Write for the mouth: contractions, short sentences, numbers as people say them. Mark on-screen key words in [brackets]. Do not invent any number, result or customer experience. If a beat needs a fact the sources lack, write "GAP:" and what is missing.
  • Build the claim ledger

    Here is an ad script: [paste the script]. Here are my sources, with their URLs: [paste the source text]. Make a table with one row per factual statement, including facts about my own product such as price or time. Columns: line as spoken; source URL; the source’s exact wording; date I read it (leave blank for me); on-screen source label. Flag any line whose wording says more than its source. Flag any line with no source. Flag any line where the speaker claims personal use or a result. Do not rewrite the script.
  • Check it for the mouth

    Here is a script a creator will speak to camera: [paste the script]. List every sentence too long to say in one breath, every number written differently from how people say it, and every word a text-to-speech voice could say wrong. Estimate the spoken length at a relaxed pace, and remind me to confirm it by reading aloud with a timer. Do not rewrite the script.

Lesson 3

Cast one creator

  • Start-frame edit

    Edit this reference photo into the first frame of a selfie video. Keep the same person: same face, same hair, same clothes. She holds a phone at arm’s length and looks into its front camera. Frame it the way a front phone camera does: vertical 9:16, close, a slightly wide lens, eyes near the top third, face a little off center. Light comes from a window on one side, soft and natural, not studio light. Behind her is [a lived-in room that fits the product], slightly out of focus. Keep the lower third free of important detail. Natural skin texture and light phone-camera grain. No text, no logos, no other people.
  • Transcribe two voice takes (ffmpeg and whisper.cpp)

    # Convert each take to 16-bit WAV. The whisper.cpp command-line tool reads only this format.
    ffmpeg -i take-a.mp3 -ar 16000 -ac 1 -c:a pcm_s16le take-a.wav
    ffmpeg -i take-b.mp3 -ar 16000 -ac 1 -c:a pcm_s16le take-b.wav
    
    # Download the base.en model once, from inside the whisper.cpp folder.
    sh ./models/download-ggml-model.sh base.en
    
    # Transcribe each take to a text file next to it.
    ./build/bin/whisper-cli -m ./models/ggml-base.en.bin -f take-a.wav -otxt
    ./build/bin/whisper-cli -m ./models/ggml-base.en.bin -f take-b.wav -otxt
  • Compare the transcripts with the script

    Here is the locked script for a voice-over: [paste the script]. Here are speech-to-text transcripts of two takes. Take A: [paste]. Take B: [paste]. Compare each transcript with the script word for word. Ignore differences in punctuation, capital letters and how numbers are written. For each take, list every missing, added or changed word, with the script line it sits in. Then say which take matches the script, or say that neither does. Flag any changed word inside a claim, a price, a product name or the call to action.

Lesson 4

Shoot in pieces

  • Talking clip prompt, one per beat

    Animate this start frame into a [length]-second vertical video. [The creator] holds a phone at arm’s length and talks to its front camera, with natural head movement and small expressions. The camera is handheld: a small drift, one slight reframe partway through, and focus that shifts a little. Keep the same face, hair, clothes, room and light as the start frame for the whole clip. No cuts, no zoom, no text, no other people. No sound.
  • Find the silences and cut the voice (ffmpeg)

    # List every silence in the take, with start and end times in seconds.
    ffmpeg -i voice.wav -af silencedetect=noise=-38dB:d=0.18 -f null - 2>&1 | grep silence_
    
    # Cut one slice per talking clip, in the middle of the chosen silences.
    # Replace 18.05 and 31.15 with your own cut points.
    ffmpeg -i voice.wav -ss 0 -to 18.05 -c:a pcm_s16le slice-1.wav
    ffmpeg -i voice.wav -ss 18.05 -to 31.15 -c:a pcm_s16le slice-2.wav
    ffmpeg -i voice.wav -ss 31.15 -c:a pcm_s16le slice-3.wav
  • Frame grid and mouth check (ffmpeg and whisper.cpp)

    # One frame per second, tiled into one image. An 18-second clip fills 6x3.
    ffmpeg -i clip-1.mp4 -vf "fps=1,scale=270:-1,tile=6x3" -frames:v 1 clip-1-grid.png
    
    # Word timestamps for a slice, to find every word with a P, B or M sound.
    ./build/bin/whisper-cli -m ./models/ggml-base.en.bin -f slice-1.wav -ml 1 -oj
    
    # Six frames from 4.2 seconds, cropped to the mouth. Set the crop box (width:height:x:y) to your frame.
    ffmpeg -ss 4.2 -i clip-1-synced.mp4 -frames:v 6 -vf "crop=360:200:360:820" mouth-%02d.png
  • Plan the shots and the spend

    Here is my locked ad script: [paste the script]. Here are the cut points from silencedetect: [paste them]. Group the script into talking beats, one per slice. For each beat, write an image-to-video prompt from my start frame with handheld motion, and give its length. List the b-roll shots the script needs, and mark which need a pinned first and last frame because objects must stay put. Then estimate the cost of every call from these prices: [paste the prices from the vendor pages], with one regeneration per clip. Compare the total with my cap of [amount]. Do not assume any price I have not given you.

Lesson 5

Record the real product

  • Write my recording script

    Write a Playwright script in JavaScript that records my product on a phone-sized screen. The page is at [staging or local URL], signed in as a test account. Here are the steps to record, with how long to hold on each screen: [paste them]. Use a 390 by 844 viewport with a device scale factor of 3, with mobile and touch on. Capture full-resolution screencast frames through the Chrome DevTools Protocol, and save each frame with its timestamp. Draw a soft dot where each tap lands, and hide any developer overlay. Write the time of each step to a marks file. Where you do not know a selector, write TODO and say which element it should find. Do not invent screens or buttons I did not describe.
  • Plan my Demo labels

    Here is every screen in my product recording, with what each one shows: [paste them]. Here is the data in the test account that is made up: [paste it]. For each screen, list every value that comes from test data, and say whether it needs a "Demo" label, a blur, or nothing. Flag anything that could read as a real customer’s result. Do not suggest adding any element the product does not show.
  • Assemble frames at 30 fps

    Here is my frames file, with each frame’s file name and timestamp in seconds: [paste the first lines]. Write a short script that turns it into an ffmpeg concat list, where each frame’s duration is the time until the next frame. Give the last frame a duration of one second. Then write the ffmpeg command that renders the list to an H.264 video at 30 fps, at the frames’ full size.

Lesson 6

Cut in code

  • Check my word timings at the cuts

    Here is my words file, with each word and its start and end in seconds: [paste it]. Here are my cut points in seconds: [paste them]. List every word that starts or ends within 0.5 seconds of a cut point, and say which shot it falls in. Do not change any timing, because I will check each flagged word against the waveform. Then list any word whose spelling differs from this script: [paste the script].
  • Plan caption zones and overlays

    Here is my shot list, with start and end times and any text visible on screen in each shot: [paste it]. Here is my claim ledger: [paste it]. Write a caption zone list: for each time window, put the captions in the middle, at the top or at the bottom, or hide them, so they never cover on-screen text. Then list every number that appears on screen, with its source line from the ledger. Write "missing" where the ledger has no source.
  • Write the still and frame grid commands

    My edit renders with [Remotion, or name your editor]. Write the commands to render still frames at these times in seconds: [list them]. Then write an ffmpeg command that makes a frame grid of my final MP4: one frame per second, each 270 pixels wide, tiled 6 by 4 per image. Explain each part of the commands in one line.

Lesson 7

Check before you post

  • Run my pre-post check

    Here is everything in my final video ad: the spoken transcript, every piece of on-screen text with its time, the post caption, and my claim ledger: [paste them]. The creator is [a real person, or AI-generated]. Check each item and give pass or fail with the evidence. Check that every number and claim traces to a ledger line with a source. Flag any line in which the creator says or implies she used the product or got a result. Check that an AI disclosure appears on screen in the first seconds. Do not decide legal questions: mark them "ask a lawyer".
  • Find testimonial words

    My video features a creator who [is AI-generated, or is a real person who has not used the product]. Here is all of the spoken and on-screen text: [paste it]. List every line that says or implies the creator used the product, owns it, or got a result from it, including first-person words like "my" and "I use". For each, suggest a rewrite that presents or demonstrates instead. Do not add new claims.
  • Compare two hook versions

    I posted two versions of one ad that differ only in the hook. Here are each platform’s numbers for each version, after the same number of days, with the metric names the platform uses: [paste them]. Compare the versions on each metric. Say where a gap is small enough to be noise, and flag where an audience is small. Do not compare my numbers with outside benchmarks, and do not predict views or sales.