CommerceVibe: Learning to Design E-Commerce Creatives as Executable Visual Code via Dual-Feedback Reinforcement Learning
Organizations: Tongji University · Alibaba Group
Abstract
High-quality e-commerce creatives are essential for presenting products and conveying marketing messages. Recent diffusion models enable scalable creative generation and produce visually compelling images, but their flattened raster outputs often contain distorted text and inconsistent product details, requiring refinement before deployment. Moreover, without explicit structure, the resulting creatives are difficult to edit and reuse, while complex design requirements remain challenging to encode as verifiable training signals. To address these challenges, we present CommerceVibe, which represents creatives as executable visual code and formulates generation as conditional HTML/CSS program synthesis. Given product images, design requirements, and product information, it produces renderable, editable, and reusable creatives. We further introduce dual-feedback reinforcement learning, in which rule-based feedback evaluates rendered programs for text readability, product visibility, and layout validity, while visual feedback from a vision-language model (VLM) assesses rendered creatives against input specifications across six perceptual and commercial dimensions. Together, these complementary feedback signals improve both constraint satisfaction and perception-dependent quality. We perform supervised fine-tuning (SFT) of Qwen3.5-9B on over 28,000 e-commerce examples, followed by dual-feedback reinforcement learning. On a 1,300-case benchmark, the optimized CommerceVibe model achieves a weighted score of 94.0/100, compared with 87.3 for the SFT-only variant, and outperforms strong external models. Blind evaluations by five e-commerce design experts further validate these improvements. CommerceVibe supports controllable, editable, and scalable e-commerce creative production.
Figures & tables
| Method | Overall ( ) | Single ( ) | Multi ( ) | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| External models | ||||||||||||
| GPT-5.5 | 42.4 | 37.7 | 80.1 | 78.9 | 42.1 | 37.6 | 79.7 | 77.9 | 44.7 | 38.4 | 83.1 | 86.8 |
| Claude Opus 4.8 | 41.5 | 36.3 | 77.7 | 78.4 | 41.0 | 36.3 | 77.3 | 78.4 | 44.6 | 36.0 | 80.6 | 78.7 |
| Gemini 3.5 Flash | 42.1 | 33.1 | 75.3 | 75.9 | 41.8 | 33.2 | 75.0 | 75.8 | 44.8 | 32.6 | 77.4 | 76.2 |
| CommerceVibe variants | ||||||||||||
| Variant | Text | Prod. | Layout | ||
|---|---|---|---|---|---|
| Rule-RLVR | – | – | – | – | – |
| w/o Text rules | |||||
| w/o Product rules | |||||
| w/o Layout rules |
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| 1 | Input: product images , free-form request , and optional product information . |
|---|---|
| 2 | PRIMARY_IDEA summarize the requested visual concept, comparison goal, and reading order. |
| 3 | SOURCE_ANCHORS extract only visual and product evidence grounded in . |
| 4 | CORE_PROOF bind each required product, variant, and claim to its supporting source evidence. |
| 5 | COMPOSITION_AND_TITLE specify layout order, title placement, product-safe regions, background, and blocking constraints. |
| 6 | DESIGN_PAYOFF define PRIMARY_TREATMENT , ELEMENT_SYSTEM , VISIBLE_GAIN , and ORNAMENT . |
| 7 | TYPOGRAPHY specify font family and weight, hierarchy, colors, background treatment, and small-screen readability. |
| Category | Cases | Category | Cases |
|---|---|---|---|
| Shoes | 69 | Underwear | 67 |
| Storage and cleaning supplies | 58 | Home improvement and building materials | 42 |
| Household essentials | 52 | Fashion accessories and jewelry | 56 |
| Women’s clothing | 54 | Pet and gardening products | 51 |
| Sports and outdoors | 50 | Kitchenware and tableware | 47 |
| Home appliances | 47 | Children’s clothing | 48 |
| Component | Dimensions | Conditional behavior |
|---|---|---|
| Text | text overflow, text overlap, text on product, minimum font size, contrast | Weights and font thresholds differ between Single and Multi. Text-on-product is evaluated only when a visible <img> is available. |
| Product | subject prominence, image crop, image occlusion | Prominence uses the largest matched image for Single and summed matched-image area for Multi. Crop uses alpha-aware subject pixels when available. Occlusion is applicable only with at least two eligible rendered images. |
| Layout | element bounds, visual balance, bottom blank | Bounds and balance settings differ between Single and Multi. Multi uses ink-level text mass and tighter balance thresholds, whereas Single uses text boxes and excludes image backing panels. Bottom blank is activated and weighted only in rendered states for which it applies. |
| Safeguards | HTML validity, empty body, zero visible images, URL coverage, sparse text, critical violations | These checks act before or after continuous aggregation. They provide fixed negative rewards or additive penalties and are not members of the Text, Product, or Layout ablations. |
| Profile | Ov | Ol | Tp | Bd | Pr | Cr | Fs | Ct | Io | Ba | Bb | Critical dimensions |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Single | 9 | 9 | 6 | 9 | 9 | 2 | 2 | 2 | – | 2 | – | Ov, Ol, Bd, Io |
| Multi | 10 | 10 | 7 | 9 | 2 | 3 | 2 | 1 | 4 | 2 | – | Ov, Ol, Bd, Io |
| Profile | Title | Subtitle | Normal | Fallback | Prominence | W/H | Other settings |
|---|---|---|---|---|---|---|---|
| Single | 56/.060/30 | 28/.025/15 | 22/.020/8 | 16/.014/20 | .20 (max) | .78 | box balance; strict bounds |
| Multi | 48/.050/30 | 28/.025/15 | 20/.018/8 | 14/.012/20 | .20 (sum) | .70 | ink balance; clipped exclusion |
| Item | Setting |
|---|---|
| Models | GPT-5.5; Claude Opus 4.8; Gemini 3.5 Flash |
| Evaluation | 1,300 cases; July 16–17, 2026 (UTC+8) |
| Input | Shared system instruction, normalized request, product images, and product information |
| Sampling payload | Temperature and top- omitted; no reasoning/thinking parameter; no seed parameter |
| Output limit | 8,192 tokens |
| Image encoding | Base64 data URLs; maximum 100,000 pixels per image |
| Item | Setting |
|---|---|
| Policy backbone | Qwen3.5-9B multimodal model |
| Parameterization | SFT: full language-model update; RL: LoRA (rank 8); vision encoder frozen |
| SFT | 28,568 training and 3,174 validation examples; 3 epochs; per-device batch 1 8 GPUs grad. accum. 4 effective batch 32; LR ; max length 16,384; max pixels 100,000 |
| GRPO (all variants) | Three independent runs (seeds 42, 25, 999); LR ; temperature 0.7; effective batch of 64 completions (8 prompt groups with ) |
| Terminal reward | Rule-RLVR: ; Preference-RL: ; Rule+Preference RL: |
| RL data and length | Identical normalized training contexts across variants; max completion 3,584; total max length 20,480 |
| Single | Multi | |||||
|---|---|---|---|---|---|---|
| Method | Text | Product | Layout | Text | Product | Layout |
| Qwen3.5-9B | 87.2 | 89.0 | 74.7 | 80.3 | 91.3 | 75.5 |
| + SFT | 96.1 | 98.6 | 95.2 | 94.4 | 89.4 | 95.3 |
| + Rule-RLVR | 98.5 | 98.9 | 97.4 | 94.3 | 91.1 | 91.6 |
| + Preference-RL | 98.2 | 98.3 | 94.4 | 94.1 | 92.5 | 93.9 |
| + Rule+Preference RL | 98.8 | 98.9 | 98.0 | 96.7 | 96.3 | 95.5 |
| Method | 95% CI | |
|---|---|---|
| External models | ||
| GPT-5.5 | 78.9 | [76.9, 80.9] |
| Claude Opus 4.8 | 78.4 | [76.2, 80.5] |
| Gemini 3.5 Flash | 75.9 | [73.7, 78.0] |
| CommerceVibe variants | ||
| Qwen3.5-9B | 59.0 | [56.3, 61.7] |
| Comparator | ||||
|---|---|---|---|---|
| + SFT | ||||
| + Rule-RLVR | ||||
| + Preference-RL | ||||
| GPT-5.5 |