There is an open-source skill in a library I have been working through called image-fusion. It takes up to 8 separate product photos — a top, trousers, a coat, boots, a scarf, whatever — and composites all of them onto one model to produce a single complete-look e-commerce shot.
Its documentation contains one rule stated more emphatically than any other:
每张图对应一个明确的穿着位置,不点名的单品会被忽略。
Each image maps to one explicit wear position. Items not named will be ignored.
That is a strong, falsifiable claim. So I falsified it. Or tried to.
The mechanism, as documented
The prompt is supposed to roll-call every garment, mapping each input image index to a body location:
图1 的米白色罗纹高领毛衣作为内搭上装;
图2 的驼色羊毛阔腿长裤作为下装;
图3 的炭灰色长款大衣作为外套敞开穿在最外层;
图4 的黑色皮质踝靴穿在脚上;
图5 的锈橙色羊毛围巾绕在颈部垂在胸前。
Enter fullscreen mode Exit fullscreen mode
图N maps positionally to the Nth entry in --images, so upload order matters:
dlazy seedream-5.0 \
--prompt "$PROMPT" \
--images i1-top.jpg i2-pants.jpg i3-coat.jpg i4-boots.jpg i5-scarf.jpg \
--size 3:4 --resolution 2k \
--save out/look-01.jpg
Enter fullscreen mode Exit fullscreen mode
Model is seedream-5.0 — roughly 5 credits per image, up to 10 reference images. Notably cheaper than the gpt-image-2 used by sibling skills in the same library (60 credits at high quality), which matters when you are generating outfit variations at volume.
The five-item version works exactly as advertised:
- All five garments present
- Layering correct — coat open, turtleneck visible underneath
- No colour contamination between the five items
Fine. Now the actual question.
The experiment
I built two prompts over the same 8 input images, in the same order.
Group A — no roll-call. Deliberately lazy:
电商搭配商拍图。模特穿着这些单品,青年亚洲女模特,正面站姿,
全身入画,纯浅灰色摄影棚背景,柔和顶光。真实照片质感,无文字无水印。
Enter fullscreen mode Exit fullscreen mode
That is it. “The model is wearing these items.” No index mapping, no wear positions.
Group B — full roll-call. Every item named with its position, plus explicit layering order and a colour-contamination guard, plus the documented failure clause: “八件单品缺一不可,少任何一件都视为失败” (all eight are mandatory; missing any one is a failure).
Same images, same order, same model, same size, same resolution.
Result
Group A: all 8 items present.
Group B: all 8 items present.
I had also run a 5-item version of the same test earlier. Same outcome — the un-roll-called prompt produced all five garments.
I could not reproduce the documented failure mode. Not once, across two separate item counts.
So is the rule wrong?
No — and this is the part I think is worth the post.
The two outputs are not identical. They differ in ways that have nothing to do with item count:
Dimension Group A (no roll-call) Group B (roll-call) Items present 8 8 Layering Turtleneck and placket barely visible under the coat Coat hangs open, inner collar and placket clearly shown Belt position Sits high, mostly hidden by the coat Correct, aligned with the trouser waist Controllability Whatever the model decides Exactly what the prompt specifiesGroup A did not drop anything. It made its own choices about how things were worn — and its choices were worse.
Which reframes the rule. Roll-calling is not a completeness mechanism. It is a control mechanism.
You are not writing
图3 的大衣敞开穿在最外层、露出里面的高领毛衣to stop the coat from vanishing. You are writing it because otherwise the model buttons the coat and hides the garment you are actually trying to sell.
For an e-commerce use case that distinction is not academic. The whole point of a full-look shot is that a shopper can see every item in it.
What I would keep from the documentation anyway
Even having failed to reproduce the headline warning, three of its adjacent rules held up in testing and are worth following:
Layering must be ordered explicitly. Two garments at the same body location without a stated order means the model picks one. This one I did observe.
叠穿顺序由内到外:高领毛衣 → 大衣,大衣不系扣,
内搭领口和前襟必须清晰可见。
Enter fullscreen mode Exit fullscreen mode
Colour contamination is real when hues are close. Hard-coding each item’s colour is cheap insurance:
这五件单品相互独立,颜色不得相互污染:毛衣米白色、长裤驼色、
大衣炭灰色、靴子黑色、围巾锈橙色。
Enter fullscreen mode Exit fullscreen mode
Do not put two items of the same category in one call. The model either picks one or blends them. This is a documented boundary and I see no reason to test it — the failure is obvious and the fix is trivial (split into two looks).
Batch consistency
If you are generating a set of looks rather than one, the skill’s advice is to freeze four things and vary only the item list:
- Model — same reference photo, or a fixed description
- Pose and framing
- Background and lighting
- Composition and headroom
Copy those four sentences byte-for-byte between calls. Only the garment roll-call changes. Same principle as a frozen spec segment in batch pipelines — if you edit the invariant part mid-set, the set stops being a set.
I ran a second look with four items against an identical frozen block and the two outputs sit together correctly as a pair.
Practical notes
-
--size 3:4for full-body looks,1:1for square main images. Vertical dominates e-commerce. -
--resolution 2kis enough for a listing. 3k/4k for print. -
--batch 2~4— multi-item composition has real run-to-run variance, so generate a few and pick. - Upload in wearing order: top → bottom → outer → shoes → bag → accessories. Keeps
图Nreadable when you are editing the prompt later. - Do not feed images that already have a person wearing the item. The original body comes along for the ride.
Takeaway
The documented rule was “roll-call or lose items.” My testing says the actual rule is “roll-call or lose control.”
That is a less dramatic claim, but a more useful one — because it tells you when you can skip it. Throwing four unrelated items at it for a quick internal mock-up? Probably fine without. Producing a listing image where the coat has to be open so the sweater underneath is visible? Write every line.
If anyone has managed to reproduce the actual drop behaviour — higher item counts, closer categories, a different model version — I would genuinely like to see it. Eight was my ceiling because that is the documented cap.
MIT licensed, 19 skills, works with Claude Code / Codex / Cursor:
npx skills add https://github.com/dlazyai/ecommerce-skills --all
Enter fullscreen mode Exit fullscreen mode