The moment I realised my "perfect" product shots would never run
I spent three days in January generating product images for a client's TikTok Shop launch. The client sells ceramic planters—mid-century modern shapes, matte glazes, price point around $45 to $85. They had twelve SKUs and a $600 creative budget, which meant hiring a photographer was out. I pitched AI-generated shots: clean, consistent, fast. They said yes.
I used Stability AI's Stable Image Core model on Kryotta and made thirty-eight images. Planters on marble countertops, planters on wooden shelves with monstera leaves in soft focus behind them, planters in a Scandinavian living room with morning light streaming through gauze curtains. They looked good. I was pleased with myself.
Then I uploaded the first batch to TikTok's ad manager and seventeen got rejected within four hours. The reason codes were vague—"misleading content", "unacceptable business practices", "image quality below standard"—but when I compared the approved versus rejected files, the pattern was obvious. Anything with AI-generated hands, any background that included a blurred human figure, any surface texture that looked almost real but had that telltale smudge, any shadow that bent the wrong way: rejected. The platform's review system isn't sophisticated, but it's suspicious, and once you know what trips it you see the flaws everywhere.
I remade the failing shots, then turned the approved images into six-second video ads with Luma Ray 2. Half of those passed review. The other half didn't, and I learned that motion makes the AI mistakes worse. A static image can hide a weird reflection; a camera move puts it centre-frame for two seconds and the viewer's brain screams fake.
Here's the checklist I built from that process. It's aimed at what TikTok Shop and Instagram Reels will actually approve, and what a real person scrolling at 11 p.m. will trust enough to click.
Product-only shots pass review; lifestyle shots need three checks first
The safest AI-generated product photo is the one with nothing but the product. White or single-colour background, soft shadow, no props. Stable Image Core handles these well: the object edges stay sharp, the lighting is even, and there's nothing for the algorithm to flag. I made eight of these for the planter client and all eight went live on TikTok Shop the same day.
The problems start when you add context. A planter on a wooden table sounds harmless, but if you prompt "rustic wooden table with natural grain" you'll get wood texture that looks fine at thumbnail size and bizarre at full resolution. The grain pattern repeats or swirls in ways real wood doesn't. TikTok's review doesn't always catch it, but your customer will, and the credibility cost is high.
Three checks before you use a lifestyle shot: one, zoom to 200 per cent and look at every surface texture—wood, fabric, stone, glass. If any area looks smudged or has details that don't follow physics, remake it. Two, check reflections. AI models struggle with mirrored or shiny surfaces. If your product is on a glossy table and the reflection is missing or wrong, the shot fails. Three, no people, even blurred in the background. Hands, arms, half a face in soft focus: TikTok flags these constantly because AI hands are still a disaster and the platform knows it.
I remade nine of the planter shots using only solid-colour backgrounds and simple geometric props—a stack of books, a ceramic dish, a linen napkin folded flat. All nine passed.
Hands holding the product will get rejected unless you use a real photo composite
I tried four times to generate a clean image of hands holding a planter. Stable Image Core, SD 3.5 Large, two different prompt structures. Every version had at least one wrong detail: six fingers, a thumb joint that bent backward, fingernails that blurred into the skin, or a palm shadow that didn't match the light source on the pot.
TikTok rejected all four. Instagram approved two, but when I ran them as Reels ads the click-through rate was half the product-only shots. People notice broken hands even if they don't consciously register why the image feels off.
The workaround: shoot one set of hand photos yourself or buy a stock pack, then composite your AI-generated product into the real hands. It's more work, but the approval rate is 100 per cent and the CTR stays normal. I did this for three of the planter SKUs and those became the client's top performers on Instagram.
If you can't do composites, skip hands entirely. A product sitting on a surface converts almost as well and saves you the rejection loop.
Video ads need a static first frame or TikTok kills them in review
I made six Luma Ray 2 video ads from the approved still images. The prompt structure was simple: start with the product in focus, slow push-in, hold for two seconds, fade to black with the TikTok Shop link overlay. Three passed review on the first try. Three got rejected for "low-quality video content."
The difference: the three that passed started with a completely static frame for the first half-second. The camera move began after the viewer had already seen a clear, stable shot of the product. The rejected ones started moving immediately, and Luma's motion generation has a tell—there's a slight warping in the first few frames as the model "decides" what the camera path should be. That warp is enough to trip TikTok's quality filter.
Fix: generate your video, then in any editor add a one-second hold of the first frame before the motion starts. Export, upload, it'll pass. I re-rendered the three failed ads with a static opener and all three went live the next day.
Text overlays hide AI flaws but tank performance if you use more than six words
I thought adding text to the video—something like "Handmade in Oregon" or "Ships free today"—would distract from any remaining AI weirdness and give the viewer a reason to stop scrolling. I was half right.
Text does mask imperfections. If there's a slightly odd shadow on the countertop but the words "30% off" are sitting on top of it, most people won't notice the shadow. But I tested eight versions with different text lengths and placements, and anything over six words cut the completion rate by 40 per cent. People on TikTok and Reels don't read sentences. They read phrases, and only if the phrase is large, high-contrast, and on screen for less than two seconds.
Best structure: product name or one benefit in three to five words, visible for 1.5 seconds max, then gone. The product and the motion carry the rest. I used "Modern planters, $49" on one ad and it outperformed a version with "Beautiful handmade ceramic planters, perfect for your home" by every metric.
The approval checklist I use before I upload anything
I print this and tick each line before a product shot or video goes to the ad platform. It's saved me probably twenty rejection cycles since February.
- No human body parts unless composited from a real photo
- No reflections in glass or shiny surfaces unless I've checked they're physically accurate
- No repeating patterns in backgrounds (wood grain, tile, fabric weave)
- No text in the image itself that isn't part of the product packaging
- Shadows point the same direction as the apparent light source
- Product edges are sharp at 200 per cent zoom
- Video starts with a static hold of at least 0.5 seconds
- Any text overlay is six words or fewer and on screen under two seconds
- File size under 5 MB for images, under 50 MB for video (platforms compress anything larger and the quality drops)
If anything fails a check, I regenerate. It's faster than arguing with TikTok's appeal process, which is essentially non-existent.
What actually converted versus what looked impressive
The planter client ran these ads from mid-January through the end of February. Total spend $1,840 across TikTok Shop and Instagram. The product-only shots on solid backgrounds had the highest CTR—2.1 per cent on TikTok, 1.8 per cent on Instagram. The lifestyle shots with books and linen props were close behind at 1.9 and 1.6 per cent.
The video ads got more impressions because TikTok's algorithm favours motion, but the conversion rate was lower. A static image that showed the product clearly outperformed a six-second video that showed the same product with a slow zoom. My guess: people trust a still photo more, even if both are AI-generated, because the still doesn't give the model enough time to reveal its mistakes.
The client made $11,400 in sales from those ads. Cost per acquisition averaged $18.30, which for a $65 average order value is acceptable but not amazing. They're still running variations of the same creative in March, and we've added one new element: a carousel ad format on Instagram that shows three product-only shots in sequence. That's outperforming everything else—3.2 per cent CTR, $14 CPA—because it gives the viewer more information without introducing motion or complex backgrounds.
Questions people ask
Can I use AI-generated product photos on my Shopify store or just in ads?
You can use them anywhere, but I'd still keep one or two real photos in each product gallery. Customers zoom, rotate their phones, compare details. AI images hold up better in ads, where they're on screen for two seconds, than on a product page where someone's deciding whether to spend $70.
Will TikTok or Instagram ban my account if I use AI-generated content?
No, but repeated rejections slow your account's approval speed. After five rejections in a week, every new ad I uploaded went into manual review, which added two days. Stay under three rejections a month and you'll be fine.
Do I need to disclose that the images are AI-generated?
Not legally, as of March 2025, but if the product in the AI image looks different from the physical item you ship, you'll get returns and complaints. The AI shot should match reality. If your planter is matte white, don't generate a version that looks glossy.
Which model makes the best product shots—Stable Image Core or SD 3.5 Large?
I've used both. Stable Image Core is faster and handles simple compositions well. SD 3.5 Large gives you more control over lighting and texture, but it's overkill if you're just making a product on a white background. Start with Core, move to Large if you need something specific.
I'm still generating new product shots every week, and the checklist keeps growing. The biggest lesson: AI-generated creative works when it's simple, and it fails when you ask it to fake complexity. A planter on a grey backdrop converts. A planter in a "cozy bohemian living room with afternoon sunlight" gets rejected or ignored, because the room never looks real and the viewer knows it.
If you want to try this workflow yourself—Stability AI for images, Luma for video, one approval checklist between you and the platform's review system—you can start at Kryotta and run the whole process in one workspace. It won't make your creative perfect, but it'll keep you out of rejection loops, and that's worth more than perfect.



