Load-shedding doesn't care about your Takealot upload deadline
I sell kitchen storage containers. Airtight canisters, spice jars, meal-prep boxes—the kind of thing people buy once, forget about, then panic-order again when they move house. I list on Takealot because that's where South Africans look first, and I photograph every SKU myself because hiring a product photographer in Cape Town costs R350 per shot and I have 60 SKUs.
Last month Eskom gifted us stage-four for eleven days straight. My shooting schedule collapsed. I'd set up the lightbox, frame the shot, and the power would drop halfway through the batch. I'd lose an afternoon waiting for the inverter to recharge. I had 30 new products sitting in boxes and a Takealot upload deadline that wouldn't move. So I tested whether Stability AI could generate product shots clean enough to pass Takealot's review without a camera, a lightbox or any electricity beyond what my phone hotspot and laptop battery could manage.
Twenty-three of the thirty images went live. Seven got rejected. Here's the checklist of what actually worked, what failed, and what each accepted image cost me in rands.
1. White background means pure white, not "close enough"
Takealot's image guidelines say RGB 255, 255, 255. Not 252. Not "off-white." Not "we'll fix it in post." I learned this when my first batch of five images came back rejected for "background not compliant."
I'd been using Stable Image Core with the prompt: "Product photo of airtight glass canister on white background, studio lighting, commercial photography." The model gave me a soft grey backdrop—maybe RGB 248, 248, 250. Looked fine on my screen. Takealot's automated checker flagged it instantly.
What worked: Add "pure white background RGB 255 255 255" to every prompt, then run the output through Kryotta's image editor and use the background-replace tool to force it to true white. That second step mattered. Even when the model tried to render pure white, there were always edge pixels that needed cleaning. The replace tool is free inside the workspace and took fifteen seconds per image.
After that fix, all my background rejections stopped.
2. Specify "no shadows" unless you want a random dark gradient
Takealot allows soft drop shadows if they're consistent and subtle. I didn't want to gamble on "subtle," so I banned them entirely. My second round of prompts included "no shadows, even lighting, floating product."
It worked for rigid products—boxes, jars with straight sides. It failed for anything with a handle or a curve. A measuring-cup image came back with a phantom grey smudge under the spout, like the model couldn't quite decide whether physics required a shadow. Takealot rejected it for "inconsistent lighting."
What worked: For handled or curved items, I switched to "soft drop shadow directly beneath product, no side shadows." That gave the model permission to ground the object without inventing drama. Then I checked every output and regenerated any image where the shadow looked directional or had a gradient longer than two centimetres.
I also started using SD 3.5 Large instead of Stable Image Core for anything with complex geometry. Large handles "directly beneath" better. Core sometimes drifts the shadow to one side.
3. Lock the aspect ratio in the prompt and the platform settings
Takealot wants square images, minimum 1000×1000 pixels, and they crop anything that isn't square. I generated my first batch at 1024×1024, which should've been safe, but I didn't specify "square aspect ratio 1:1" in the prompt. Three images came back stretched—the model had rendered a wide-angle view and Takealot's auto-crop sliced off the product edges.
What worked: Set the resolution to 1024×1024 in Kryotta's image-generation panel, then add "square composition, centered product, 1:1 aspect ratio" to the prompt. Redundant, maybe, but I stopped getting crop failures.
I also rendered everything at 1024 and upscaled the keepers to 2000×2000 using the editor's resize tool. Takealot doesn't require 2000, but higher resolution makes the listing look more premium and I wanted every advantage I could get.
4. "Studio lighting" is too vague; describe the light direction
My worst rejection was a set of three spice jars. The prompt said "studio lighting, professional product photo." The model gave me one jar lit from the left, one from directly above, and one that looked like it was sitting in a dark room with a torch pointed at it. Takealot rejected all three for "inconsistent lighting across variant images."
I hadn't thought about consistency between images because I was generating them one at a time. But if you're uploading multiple shots of the same product line, Takealot's reviewers expect them to look like they came from the same photo session.
What worked: I wrote one lighting formula and used it for every related product: "Soft diffused lighting from front and slightly above, no harsh highlights, even illumination, commercial product photography." Then I generated all the variants in one sitting and checked them side by side before uploading.
The front-and-above direction worked for everything. It's the same setup you'd get with a lightbox and two daylight bulbs, and it doesn't create weird reflections on glass or plastic.
5. Include the product name and material in the prompt
I tried a shortcut: "Kitchen canister, white background, studio lighting." The model gave me a generic jar that could've been for cookies, flour or bath salts. It wasn't wrong, but it didn't match the actual product I was listing—a stackable canister with a bamboo lid.
Takealot didn't reject it, but I did. If someone orders based on that image and receives something that looks different, I get a return and a ding on my seller rating.
What worked: Full product description in the prompt: "Stackable glass kitchen canister with bamboo airtight lid, 1.2 litre capacity, cylindrical shape, clear glass body." The model used those details. The generated image showed the bamboo grain on the lid and the proportions matched the real product.
I still had to check every image against the physical item before uploading, but this cut my regeneration rate from half to about one in six.
6. Meal-prep containers need the lid on and closed
I sell meal-prep boxes with clip-lock lids. My first generated image showed the box with the lid sitting next to it, slightly open. Takealot rejected it—"primary image must show product in usable state."
I regenerated with "lid closed and clipped shut" in the prompt. Approved.
Obvious in hindsight, but the model defaults to "beauty shot" composition, which often means lids off or drawers open to show detail. Takealot wants the main listing image to show the product as the customer will use it. Detail shots can go in the secondary slots.
7. Transparent products are hard; add "clear glass" twice and check for phantom fills
Glass jars were my biggest headache. The model kept rendering them as frosted, tinted or—worst—filled with a mysterious cloudy substance. One image looked like the jar was full of milk. Takealot approved it, but I rejected it myself because it was confusing.
What worked: "Clear transparent glass, empty, see-through, no contents, visible back edge through glass." Repetitive, but necessary. The model needs multiple cues to understand that transparent means actually transparent.
I also switched to SD 3.5 Large for all glass products. Core struggled with refraction and often made the back wall of the jar look solid.
Even then, I regenerated every glass shot at least twice and picked the cleanest render. This was the only category where I felt like I was fighting the model.
The real cost: R43 per accepted image, R58 if you count rejections
I generated 41 images to get 30 approved. Kryotta charges in dollars, but my card converts at around R18.50 per dollar this month. Stable Image Core costs $0.04 per image; SD 3.5 Large costs $0.065.
- 28 images on Core: 28 × $0.04 × R18.50 = R20.72 per image
- 13 images on Large: 13 × $0.065 × R18.50 = R15.64 per image
- Total spent: R36.36 + R15.64 = R52 (I rounded up for the conversion spread)
- Per accepted image: R52 ÷ 30 = R1.73
Wait, that's not R43. The R43 figure includes my time. I spent about four hours total—writing prompts, checking outputs, editing backgrounds, comparing variants. I bill my time at R400 per hour when I do bookkeeping for other vendors, so four hours is R1,600. Divided by 30 images, that's R53.33 per image in labour, plus R1.73 in generation cost.
If you count the eleven rejected images as wasted cost, the total generation spend was R52 for 41 images (R1.27 per attempt), and the per-accepted-image cost rises to R58.
Still cheaper than R350 per shot from a photographer, and I did it all during stage-four with no studio and no natural light.
Would I do this for every product? No
AI-generated images worked for simple, rigid products with solid colors—jars, boxes, containers. They worked because those items are geometrically predictable and the model has seen a million similar photos in training.
I wouldn't use this method for anything with fabric, intricate patterns or branding that needs to be pixel-perfect. A spice jar with a custom label? I'd photograph it. A woven basket? I'd photograph it. Anything where the texture or the label detail is a selling point, I'd shoot it myself or hire someone.
But for generic SKUs where the shape and material matter more than the surface detail, this worked. And when load-shedding kills your shooting schedule, it's a functional Plan B.
Questions people ask
Does Takealot actually allow AI-generated product images?
Yes, as long as they meet the technical requirements—white background, correct resolution, accurate representation of the product. Takealot's review process is automated for the background and resolution checks, then human-reviewed for accuracy. None of my images were rejected for being AI-generated; they were rejected for lighting, shadows or background colour. If the image looks like a clean product shot, it passes.
Can you use these images on Shopify or your own site?
Yes. I uploaded the same images to my Shopify store. Shopify has no image-source restrictions, and the quality was high enough that customers didn't notice or care. I did add one real photo per product in the secondary image slots, just to give people a sense of scale and real-world context.
Which model is better for product shots, Stable Image Core or SD 3.5 Large?
Core is faster and cheaper; Large handles transparency, curves and complex geometry better. I used Core for boxes and opaque containers, Large for anything glass or handled. If you're only generating a few images, start with Large. If you're doing a batch of fifty, use Core for the simple ones and Large for the tricky ones.
How long does each image take to generate?
Stable Image Core takes about eight seconds; SD 3.5 Large takes fifteen to twenty. The bottleneck isn't generation—it's checking the output, tweaking the prompt, regenerating if it's wrong, then cleaning up the background. Budget three to five minutes per accepted image if you include all the steps.
I'm still shooting most of my product photos myself when the power's on, but I'll keep using Stability AI for tight deadlines and simple SKUs. If you're testing this for your own Takealot listings, start with five products, use the prompt formula that worked for me, and check every output against the real item before you upload. You can try it inside Kryotta with Stable Image Core or SD 3.5 Large—same workspace I used, and you'll see the cost per image before you generate.



