TikTok Shop LIVE: stills may cover only half the screen

TikTok Shop seller guidance caps stills and slideshows at 50% of the screen during a LIVE. Plan overlay layouts with motion clips from Sume instead of stills.

4 min readSume
All posts

TikTok Shop seller guidance says that during a LIVE, still images and slideshows must not cover more than 50% of the screen. If you use AI-made product visuals as an overlay, that means a layout where half or more of the frame is moving video, or a stills panel kept under half. Sume produces clips and images, not live streams, so this is a content-planning question for the overlay assets you bring to your own streaming setup.

What the seller page says

The TikTok Shop Seller University page, read on 2026-10-03, covers video and LIVE quality. The points relevant here:

TikTok Shop video guidance (read 2026-10-03)
ContextGuidance
Shoppable videoAim for at least 3 seconds of dynamic footage; no still images or looping visuals
LIVEStills and slideshows must not cover more than 50% of the screen
BothFace visible and the product shown from multiple angles expected

Why a Timeline slideshow does not help

It is tempting to build a loop of product stills with Timeline and use it as a LIVE overlay. The Timeline docs say stills in video[] are static holds, and motion on a still is accepted and ignored with a motion_ignored warning. A render made of stills is still a slideshow in TikTok's terms, however smoothly it transitions, so it counts toward the 50% limit.

The fix is motion in the source, not in the assembly. Generate short clips for each angle so every slot holds footage.

Make the overlay from motion

The video docs show image-to-video through frame_images with a first_frame, so a product still becomes a short moving clip from the same picture. Pick durations from the model's supported_durations, since they differ by model. Generate one clip per angle: front, side, in hand. That also meets the multiple-angles expectation on the same page.

Whether a short clip loops cleanly depends on how you place it. This post does not claim a model produces seamless loops, so check the join in the preview before you go live.

Check a layout against the 50% rule

Before a stream, list each on-screen element with its type and the share of the frame it covers, then total the stills. The function below does that. Overlapping elements would need a different calculation, so this assumes a layout without overlaps.

def still_share(layout):
    total = sum(share for kind, share in layout if kind == "still")
    return total

layout = [
    ("video", 0.55),   # presenter camera
    ("still", 0.30),   # price card
    ("clip", 0.15),    # product motion clip
]
share = still_share(layout)
print(f"stills cover {share:.0%}:", "ok" if share <= 0.5 else "over the 50% cap")

Planning the angles

The same page asks for the product from multiple angles, so a shot list of three or four clips per product is a sensible unit: a front view, a side or detail view, and the product in use. Keep each clip on its own generation job so a bad one can be replaced without redoing the rest, and record the job ids against the stream plan. Generating before the stream is the safer route, because a LIVE has no time for a retry.

A practical set of assets

Keep the price card as a small still, which stays under the cap, and fill the larger area with generated clips of the real product. Generate from your actual product photos so the clips show the product you sell. The dynamic content post shows how to sample the first frames of a clip.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume