To test UGC hooks, keep the body of the ad fixed and make only the first two or three seconds in several versions. On an 8frame board that is five hook stills, five short image-to-video nodes and one shared body clip, assembled into five sequences on the Video Editor timeline. The limit people do not expect: minimum lengths differ by node, and you pay for the length you generate, not the length you keep. Kling v3 Standard and Kling O3 start at 3 seconds, Seedance at 4, Kling 2.6 Pro and 2.5 Turbo Pro at 5, so a 2 to 3 second opener belongs on a node with a short floor.
What a hook is and how hook rate is measured is in what is a UGC hook; ready-made opener lines are in UGC hook formulas for AI ads. This page is the board that turns five of those lines into five testable openers.
TL;DR
| Step | Node or model on 8frame | Fixed price (credits) | Input it needs |
|---|---|---|---|
| 1. Script and five hook lines | text on the board | none | your script |
| 2. Hook stills, one per hook | Nano Banana 2 | 11 per image at 1K, 17 at 2K | product photo as reference |
| 3a. Short opener, 3 s and up | Kling O3 | 11.34 per second silent, 15.12 with sound; 57 / 76 for 5 s | start image (required) |
| 3b. Short opener, 1 s and up | Grok Imagine | 9.45 per second at 720p, 6.75 at 480p; 48 for 5 s at 720p | one start image, or 1 to 10 references in reference mode |
| 3c. Opener from a still, 3 s and up | Kling v3 Standard | 17.01 per second with sound, 11.34 silent | start image (required) |
| 4. Shared body | one video node, or a lip-sync clip | the node's own price | your body still or portrait |
| 5. Five sequences | Video Editor | not a generation | the clips |
Each line is a per-node price. The number of hooks and takes is yours to choose.
The board, node by node
There is no hook-variation template on 8frame yet, so you lay it out on a blank board. A layout that stays readable: the script at the top, five columns underneath (one per hook), and the shared body clip on the right, with arrows into each column's end.
Step 1: one script, five hooks
Write the body once: problem, product, proof, call to action. Then write five hooks that each lead into the same first line of the body. They should differ in kind, not in wording. Five kinds that test different things:
- Product-first. The product fills the frame in second one. Tests whether the object itself stops the scroll.
- Problem moment. The annoying situation the product fixes, before the product appears.
- Reaction. A face reacting, with the reason off screen for a beat.
- Text card. A bold on-screen line over a simple still. Tests the words alone.
- Action. Something physical happens: a pour, a drop, a snap.
If two hooks differ only in the caption, you are testing copy, not openers. That is a valid test too, but it does not need five video runs; one clip with five caption layers does it.
Step 2: five stills
Make one still per hook in its own Nano Banana 2 node (11 credits at 1K, 17 at 2K), each fed from the same product photo so the product looks the same in every version. The still is the first frame of the hook, so frame it as the first frame: vertical 9:16, subject large, nothing important in the bottom third where platform captions sit.
The text card hook (4) may not need a video at all: a still with a text layer in the Video Editor is a valid opener, and it costs only the image.
8frame has no batch node, so five stills are five nodes. They can run at the same time: the limit of active tasks per account is 10 on Starter, 20 on Creator and 50 on Agency.
Step 3: short motion per hook
Connect each still to a video node. This is where length decides the model.
- Kling O3 runs 3 to 15 seconds, so a 3 second opener is possible. It needs a start image, returns 720p, and sound is off by default: 11.34 credits per second silent, 15.12 with sound (57 or 76 for 5 seconds).
- Grok Imagine runs 1 to 15 seconds at 9.45 credits per second at 720p (6.75 at 480p), 48 for 5 seconds. Audio is always on, with no silent mode. It takes a single start image, and separately has a reference mode with 1 to 10 images (35 at 480p or 48 at 720p for 5 seconds).
- Kling v3 Standard takes any whole second from 3 to 15, at 17.01 credits per second with sound or 11.34 silent (86 or 57 for 5 seconds), 720p. It needs a start image and follows its shape.
- Seedance 2.0 runs 4 to 15 seconds, 108 for 5 seconds at 720p, 48 at 480p.
Prompt the first second, not the whole clip. The first frame is your still; the prompt says what changes immediately.
In the first second the phone camera jolts closer as she sets the bottle down hard on the counter, quick handheld motion, she looks up at the lens
Step 4: one body, shared
Make the body once, as one clip or a short sequence of beats (see AI UGC ad from one product photo), or as a talking-head clip from a portrait and voiceover. Every hook column ends at this body.
The body is the most expensive part of the ad. Making it once is the point of the board: you pay for five openers, not five ads.
Step 5: five sequences in the Video Editor
In the Video Editor mode, build one sequence per hook: hook clip, cut, body. Add the hook's caption as a text layer. "Generate captions" makes a caption layer from a pasted script at an estimated 160 words per minute, so paste the body script once and reuse the timing.
Do not join hook and body with the Montage node: Montage outputs no audio track, and the body's voice would be lost. Montage also uses at most 15 seconds of each clip.
Name each export by hook kind (product-first, problem, reaction, text, action), not by number, so test results still mean something a month later.
Which model for which step
| Model | Shortest clip on 8frame | Price basis | Resolution | Sound | Start image |
|---|---|---|---|---|---|
| Grok Imagine | 1 s | 9.45 per second at 720p, 6.75 at 480p | 480p, 720p | always on | one image, or 1 to 10 in reference mode |
| Kling O3 | 3 s | 11.34 per second silent, 15.12 with sound | 720p | off by default | required |
| Gemini Omni Flash | 3 s (51 credits) | 16.875 per second; 3 to 10 s on the node | 720p measured | always on | see the node |
| Seedance 2.0 | 4 s | 108 per 5 s at 720p, 48 at 480p | 480p, 720p | included | yes |
| Kling v3 Standard | 3 s | 17.01 per second with sound, 11.34 silent | 720p | toggle | required |
Generation time matters when you iterate on five hooks at once. From our own production data, Kling v3 Standard's median for a 5 second clip is about 60 seconds, and Gemini Omni Flash's median for 3 to 5 second clips is about 35 seconds. Seedance 2.0 at 720p is slower, with a median of about 197 seconds for clips up to 6 seconds.
Where it breaks
- Hooks that are the same hook. Five versions of one idea test nothing. Vary the kind of opener.
- Paying for length you cut. A 5 second clip trimmed to 2 seconds still bills 5. Where the hook really is 2 to 3 seconds, use a model with short lengths (Grok Imagine, Kling v3 Standard, Kling O3) or a still with a text layer.
- The product changes between hooks. Feed every hook still from the same product photo, and check label and colour on each.
- Sound mismatch at the cut. Grok Imagine always adds audio; Kling O3 is silent by default. Mute hook audio on the timeline if the body carries the voice.
- Results hooks. TikTok bans misleading before-and-after product comparisons in ads, so a "before" hook that implies an "after" the product cannot deliver is a risk. The policy bans "Product effect comparisons, such as before-and-after results, which may cause viewers to have a false or distorted impression" (last updated April 2026).
- Unlabelled AI. The same TikTok policy says undisclosed AI content "will be rejected or restricted". Every variant needs the AIGC label, not only the first one you upload.
- Montage. No audio in its output. Use the Video Editor timeline.
FAQ
How many hooks should I make for one script? Five is enough to compare kinds of opener without the board getting unreadable. Make more only after one kind wins.
What is the shortest clip I can generate on 8frame? Grok Imagine goes down to 1 second; Kling v3 Standard, Kling O3 and Gemini Omni Flash to 3 seconds; Seedance starts at 4, Kling 2.6 Pro and 2.5 Turbo Pro at 5.
Can I run all five hooks at once? Yes. Each hook is its own node, and an account can have 10 active tasks at once on Starter, 20 on Creator and 50 on Agency, so five hooks fit on any plan. There is no batch node.
Do I need a new video for a copy-only hook test? No. Put five different caption layers on the same clip in the Video Editor and export five times.
Why does my hook have sound I did not ask for? Grok Imagine always generates audio. Mute the clip on the Video Editor timeline, or use Kling O3, which is silent by default.
Sources
- 8frame prices, defaults and limits: the 8frame app, checked 2026-11-09.
- TikTok Ads Policy, Misleading and false content (last updated April 2026): https://ads.tiktok.com/help/article/tiktok-ads-policy-misleading-and-false-content, checked 2026-11-09.
Try it without signing up: the 8frame canvas opens on a real board. The canvas is free and unlimited; generation is paid from $19/month.