I starten af 2024 spurgte vi os selv: hvad nu hvis kunderne kunne skabe deres egne plakater på 30 sekunder, og få dem leveret som fysisk produkt to dage senere? Det var ikke en ny idé — Desenio og Posterstore har lignende koncepter — men ingen havde gjort det med real-time AI-generering integreret direkte i checkout-flowet.
I dag har Dreamwall's Imaginator-modul genereret over 50.000 plakater for kunder. Fysiske plakater. Trykt, pakket, leveret. Uden et eneste manuelt indgreb.
Her er hele rejsen — hvad der virkede, hvad der ikke gjorde, hvad det kostede, og hvad vi ville gøre anderledes.
Udfordringen
Dreamwall havde i forvejen 8.000+ pre-designede plakater i webshoppen. Konvertering var ok, men returkøb var lave — folk købte én plakat, og kom ikke tilbage.
Vores hypotese: hvis vi gav kunderne mulighed for at skabe noget unikt, ville de: 1. Bruge mere tid på sitet (engagement) 2. Konvertere højere (fordi de føler ejerskab over det de selv skaber) 3. Komme tilbage (fordi processen er sjov) 4. Betale mere per plakat (fordi det er noget unikt for dem)
Antagelsen viste sig at være rigtig. Men det krævede 6 måneders arbejde og en del fejl undervejs at få det til at virke.
Arkitekturen
Imaginator er ikke "ChatGPT på en webshop". Det er en kompleks pipeline med flere komponenter:
Frontend: - Custom Next.js-flow med real-time preview - Lifestyle-mockup-renderer (placerer AI-billede på en stue, soveværelse, etc.) - Multi-step UX (prompt → preview → størrelse → ramme → tilføj til kurv)
Backend: - Replicate API (Stable Diffusion XL) for billedgenerering - OpenAI for prompt-optimering (kunden skriver "blå abstrakt" → vi udvider til "Abstract blue painting in oil, soft brushstrokes, sunset light, vintage aesthetic") - Custom prompt-history per kunde (så de kan vende tilbage til tidligere genereringer) - Cost-tracking per request og per kunde
Storage: - AWS S3 for genererede billeder (caches i 90 dage) - PostgreSQL for prompt-history og kunde-præferencer - Cloudflare CDN foran S3
Print-on-demand integration: - Custom PDF-generator der konverterer billede til print-klar fil - API-integration til vores print-leverandør - Automatisk QC-validering før produktion
Det er meget. Men hver komponent har et formål — og pipelinen er bygget så hver del kan opdateres uafhængigt.
Det vi byggede først (og hvorfor det fejlede)
Version 1.0 var en simpel "skriv prompt → få billede". Det tog 3 uger at bygge. Det fejlede inden for 2 uger i produktion.
Problemerne:
- →Latency var for høj. Stable Diffusion tog 8-15 sekunder per generering. Brugere ventede ikke — 60% bouncede før billedet var færdigt.
- →Kvaliteten var inkonsistent. Halvdelen af billederne var dårlige (fingre, ansigter, anatomiske fejl). Kunderne købte ikke det de så.
- →Ingen kontekst på produktet. Et abstract billede vist på en hvid baggrund er ikke det samme som det samme billede vist på en plakat over en seng. Kunderne kunne ikke visualisere det færdige produkt.
- →Prompts var for tekniske. "Foto-realistisk landskab i 4K" giver bedre resultater end "et billede til mit værelse" — men de fleste kunder skrev det sidste.
- →Cost-control eksisterede ikke. Den første uge brændte vi 3.500 kr. i API-fees fordi en bot-bruger genererede 1.200 billeder.
Det vi byggede derefter (V2.0 — den der virker)
Vi tog 3 måneder med at bygge V2.0. Her er hvad der ændrede sig:
1. Streaming + skeleton-states
I stedet for at vente på det færdige billede, viser vi en lav-opløsnings preview efter 2 sekunder, og opskalerer mens kunden ser på det. Bouncerate fra 60% → 12%.
2. Prompt-optimering med GPT
Kunden skriver "blå plakat til soveværelse". Vi sender det til GPT med en system-prompt der konverterer det til en optimeret Stable Diffusion-prompt: "Abstract blue painting in oil style, soft sunset light, calming colors, designed to complement bedroom interior, vintage poster aesthetic".
Resultatet: kvaliteten af genererede billeder blev markant højere uden at kunden behøver at lære prompt-engineering.
3. Lifestyle-mockup-renderer
Vi byggede en custom renderer der placerer det genererede billede på 4 lifestyle-baggrunde (stue, soveværelse, kontor, gang). Kunden kan se hvordan plakaten ser ud i et rigtigt rum. Konverteringen steg 38%.
4. Cost-control + rate-limits
- →Max 10 genereringer per IP per time
- →Max 5 genereringer for ikke-loggede brugere
- →Daglig cost-cap på 800 kr/dag, automatisk pause hvis overskredet
- →Anomali-detection (alert hvis én bruger genererer >50 i en time)
Siden V2.0 har vi haft nul cost-overruns.
5. Validation-lag
Output kvalitets-checkes automatisk før det vises til kunden: - NSFW-filter - Anatomical correctness check (er der ansigter? er fingrene normale?) - Resolution check (er billedet skarpt nok til print?)
Hvis et billede fejler validering, regenererer vi automatisk uden at vise fejlbesked. Kunden ser bare det korrekte billede.
Tallene
18 måneder efter launch af V2.0:
| Metric | Værdi |
|---|---|
| Total billeder genereret | 50.000+ |
| Total plakater bestilt fra Imaginator | 12.500+ |
| Conversion-rate (Imaginator-besøgende → køb) | ~30% |
| Conversion-rate (almindelig browse → køb) | ~3.5% |
| Gennemsnitlig pris per Imaginator-plakat | 449 kr. (vs 359 kr. for standard) |
| Returkunder fra Imaginator | 22% inden for 30 dage |
| Avg. tid per session på Imaginator | 6:45 min (vs 1:30 på almindelig browse) |
| API-fees per måned | 3.000-5.000 kr. |
| Drift-pris (servers, monitoring, tools) | 2.000 kr./md |
| Antal manuelle interventioner i 18 mdr | 12 (alle på edge cases der nu er kodet in) |
ROI-beregning: ekstra omsætning fra Imaginator-konvertering (over standard) + højere AOV - drift-omkostninger. Build-investeringen tjent hjem på 7 måneder.
Det vi ville gøre anderledes
I bagklogskab — hvis vi byggede Imaginator igen:
- →Vi ville bygge mockup-renderer FØR billedgeneratoren. Det er den der driver konverteringen, ikke selve genereringen. Vi byggede den sidst.
- →Vi ville sætte cost-control op fra dag ét. Det første cost-overrun kostede os 3.500 kr. Nu ved vi.
- →Vi ville bruge GPT-4o-mini i stedet for GPT-4 til prompt-optimering. Forskellen i kvalitet er minimal, prisen er 95% lavere.
- →Vi ville have lavet bedre onboarding. Mange brugere prøvede én gang, fik et middelmådigt resultat, og kom aldrig tilbage. Bedre tutorial-content kunne have øget engagement.
- →Vi ville have logget mere fra dag ét. Vi mangler data fra V1.0 der ville have hjulpet os iterere hurtigere.
Hvad du kan tage med
Hvis du står med en lignende AI-feature:
- →Start mindre end du tror. V1.0 fejlede, men det lærte os hvad V2.0 skulle løse.
- →Cost-control er ikke optional. Byg det ind fra dag ét.
- →Latency-arbejde er vigtigere end kvalitets-arbejde. Et middelmådigt billede vist på 2 sek konverterer bedre end et fantastisk billede vist på 12 sek.
- →Validation forhindrer brand-skade. Et upassende billede vist til 1 kunde kan koste dig en negativ Trustpilot.
- →Vis kontekst, ikke output. Folk køber det færdige produkt, ikke det rå AI-output. Vis dem det færdige.
Vil du bygge noget lignende? Book en uforpligtende scope-snak — vi kigger på din specifikke use case og giver en realistisk vurdering.
Læs videre
- →3 AI-funktioner der faktisk giver mere omsætning
- →Hvad koster det at bygge en AI-feature
- →Vores stack: Next.js + WooCommerce i produktion
- →Dreamwall-cas detalje
Få nye artikler direkte i indbakken
1-2 mails om måneden. Ingen spam. Frameld dig når som helst.