The saturated gown was supposed to be the risky one. A strong orange against deep brown skin in hard midday sun is the setup people warn about: the color is meant to take over and flatten the skin into it. The plain gown was the control, the boring safe version.
The control is the one that failed. In the neutral-gown frame the distance between her forearm and the cloth beside it measures ΔE 3.6 — on a scale where about 2 is the threshold most people can see at all. Her arm and her dress are the same color. In the orange-gown frame the same measurement is ΔE 47.2.
The boxes are the samples the numbers come from. ΔE is distance in CIELAB: 2 is about the smallest difference a person notices, 50 is the difference between two clearly unrelated colors.
The reason is not that orange is kind to skin. It is that the neutral gown came back dark — lightness 14.5, near-neutral — and her arm in that frame sits at lightness 12.2, also near-neutral. Two things that are both dark and both uncolored have nowhere to be different. The orange gown is at lightness 54.7 with a red-green value of 54; skin has no part of that.
Where the saturated color actually costs you
It costs you at the wall, not at the skin. The same orange gown was shot twice, changing nothing but the background.
The two prompts differed by seven words. …The gown is a strong saturated orange. The background is a plain neutral mid-grey wall with a slight green cast / a plain warm terracotta wall. There are no brand marks, labels or logos anywhere in the frame.
Less than half the separation, from a background choice. The skin was not the thing at risk from the dress; the dress was at risk from the room. That is the real content of the usual advice to shoot bold color against something neutral, and it is worth about forty points of ΔE here.
The dress that matched the wall exactly
The polka-dot setup produced the sharpest version of the same problem. Its white ground measures ΔE 2.5 from the pale gray studio wall behind it — at the edge of what anyone can see. The dress is not separated from the room by its color at all. It is separated by the dots.
Which means the pattern is doing structural work, not decorative work, and the question of whether the pattern survives is not a question about style.
The pattern did not flicker and did not moire
Five seconds, one full turn, generated from the still above. The dots hold through the whole rotation.
Flicker is measurable: take the contrast of the pattern in every frame and see how much it moves. To know what counts as a lot, I injected known flicker into a still first — compressing the pattern's contrast by 10% on alternate frames reads as a 5.26% frame-to-frame fluctuation, and 25% reads as 14.29%.
The real clip reads 2.91%, below what a 10% flicker would produce. There is no flicker to speak of.
Moire I could not pin down, and the honest answer is that I could not separate it from the dress. The clip does carry more low-frequency energy in the skirt than the still does — 16.9% against 13.5% — but that number rises as the skirt narrows, correlating with her body angle at r = −0.42. Fabric turning edge-on and folding produces exactly that kind of broad tonal variation. It tracks her pose, so I am not calling it aliasing.
What is clean: resampling the still, the pattern's low-frequency energy stayed at 13.3–13.5% at every output width from 2560 down to 240 pixels. Downscaling with decent resampling did not manufacture moire at any size I tried.
How small it can go
Resampled and then enlarged at pixel size. The number under each is how regular the dot grid still is.
Two numbers disagree here, and the disagreement is the useful part. Straight contrast — brightest tenth minus darkest tenth — stays at 90–106% of its original value all the way down to a 96-pixel-wide frame. By that measure nothing is lost. Look at the strip: by 160 pixels it is not polka dots any more, it is speckle.
Contrast measures extremes, so a handful of surviving dark pixels keeps it high while the pattern itself disintegrates. Grid regularity is the measure that matches the eye: it runs 0.52 at full size and falls to 0.38, 0.31, 0.23 as the frame shrinks. A clean synthetic dot grid holds 0.96 until the spacing drops to about 3 pixels and collapses at 2.4, which is the sampling limit you would expect.
Practically: keep the dot spacing above about three pixels in whatever you are actually exporting. For this gown the spacing is 47 pixels on a 2560-wide frame, so it holds down to roughly 160 pixels wide — smaller than any real delivery. The dissolve-into-gray failure needs a far denser pattern than this.
Which raises the thing I could not control. The prompt asked for dots “about the size of a coin”. What came back is 47 pixels of spacing on a full-length figure — roughly a hand's width on a real gown. Naming a familiar object did not set the scale, the same way naming a number does not.
What to do with this
Where this stops
Four stills and one clip. Each setup is a single run, so none of these numbers is a rate. The gowns are not the same garment in two colors — changing the word “orange” to “stone grey” (the prompt’s own spelling) also changed the silhouette, the light and the floor, which is why the ΔE 3.6 is a fact about that frame and not a law about neutral gowns. What generalizes is the mechanism: two dark, uncolored things cannot separate, whatever produced them.
And the whole test lives in one lighting setup. Hard sun on one wall is not a softbox, and a pattern that behaves under even studio light may not behave under a moving key.
The last check is not about the picture
Two of the four stills came back with this in the corner.
Every one of these prompts ended with the sentence em>there are no brand marks, labels or logos anywhere in the frame/em>. Two of the four came back with a logo in the bottom right corner: the same invented two-letter mark with a red wedge, in the same position, at the same size, in two runs that shared nothing else. It is not a real company's mark as far as I can tell, and that is not reassurance — an invented mark in the corner of a fashion image reads to a viewer as a house signature, and the thing you would be publishing is a garment presented as somebody's collection.
So the last pass over a fashion frame is not a pass about color. It is: zoom to the corners at full resolution, and look for the thing you told it not to put there. Two of my four needed it, and both were the frames I would otherwise have shipped without a second look, because the color work in them was the part I had been watching.
Configuration and cost. Four stills: Image, Seedream 4.5, 16:9, 2K, Standard — the panel declared 1 credit each. One clip: Video, Seedance 1.0 mini, 16:9, 5s, 720p, Standard — the panel declared 5 credits. Total 9 credits (balance 23,674 to 23,665), 2026-09-21; the balance moved by exactly the declared amount. On the same day and the same settings, Seedance 2.0 Mini declared 25 credits for a five-second 720p clip, so the model row is a five-to-one cost difference at the same length and resolution. Credit costs are tied to those configurations on that date.
Two generations failed — the warm-wall and neutral-gown prompts, on their first attempt. Both reported the failure and the balance did not move; each succeeded on a retry at the normal 1 credit.
Files. Stills 2560×1440. The clip came back 1248×704, 24 fps, 121 frames, 5.04 s — not the 1280×720 the 720p label implies. Prompt text is quoted as sent, abbreviated only where marked.
How this was measured, and what the instruments were checked against. Color is CIELAB; the conversion was verified against three synthetic patches of known value, all returned within 0.4, and a pair of known ΔE 10 returned 10.0. Every sampling box was drawn onto the image and inspected before any number was taken from it; the arm box in the warm-wall frame had to be moved after that check, because it straddled the arm and the gown's edge.
The flicker measure was calibrated by injecting known flicker into a real frame: 0%, 10% and 25% contrast modulation read back as 0.00%, 5.26% and 14.29%. The grid-regularity measure was checked on a synthetic dot lattice resampled to a range of widths, holding 0.96 down to a 3-pixel spacing and breaking to 0.50 at 2.4 pixels. The dot-spacing measure returned exactly 40, 80 and 120 pixels on synthetic lattices built at those spacings.
One instrument was discarded. The first moire measure counted energy below a fixed spatial frequency, and its own self-test exposed it: a 40-pixel grating scored 81% because its own fundamental fell below the cutoff. It was rebuilt with the cutoff set relative to the pattern's spacing, which then behaved correctly on the self-test (a fine grating nearest-neighbour downscaled went from 1.96% to 11.82%, and the same grating downscaled well stayed at 2.56%).