Egen platform · bygget og drevet af os

ListingReel: fra boligbilleder til færdig video

Hvordan vi byggede en videoplatform til ejendomsmæglere: hvad maskinen selv bestemmer, hvad mægleren bestemmer, og hvor vi har sagt nej til at gætte.

ca. 5 min. læsningI drift, bygget og drevet af os selv. Klar til de første kunder.

Skærmbillede af listingreel.dk, hvor en boligvideo i lodret format afspilles ved siden af overskriften.

ListingReel er den anden af de to platforme, vi selv driver. Den laver videoer til boligannoncer ud fra de billeder, mægleren allerede har liggende. Ligesom med Ringback er der ingen kunde at tage hensyn til i den her tekst, og der er heller ingen betalende brugere endnu. Det, der står her, er hvordan den er bygget, og hvor vi løb ind i noget.

Udgangspunktet

Video sælger boliger på sociale medier. Alligevel får de fleste boliger aldrig en. Regnestykket er banalt: en videograf skal bookes, filmen skal klippes, teksten skal skrives, og boligen skal sælges nu. Derfor bliver det ved billederne, og billederne ligger allerede der.

Spørgsmålet var, om man kan komme fra de stillbilleder til noget, en mægler faktisk tør lægge op, uden at hun skal lære et klippeprogram. Ikke en diasshow-skabelon med musik ovenpå, men noget med en rækkefølge, en fortælling og en stemme.

Det, vi byggede

Kæden er den samme hver gang: billederne ind, en plan for videoen, et manuskript, dansk speak, bevægelse i hvert billede, et tjek, og en færdig fil ud. Det, der skifter fra bolig til bolig, er planen.

Tjekket sidder inde i kæden, ikke til sidst. Et klip, der ikke holder, bliver lavet om, før nogen ser det.

Planen laves af en regelmotor, ikke af en sprogmodel. Det var en beslutning, vi tog tidligt: rækkefølgen af rum, hvilket billede der skal åbne, hvor længe hver scene får lov at stå, og hvornår tempoet skal op. Alt sammen er ting, hvor forudsigelighed er mere værd end kreativitet, og hvor et svar skal komme med det samme og koste det samme hver gang. Sprogmodellen bruges dér, hvor sprog er opgaven: manuskriptet og opslagsteksten.

  • Portalen er en Next.js-app oven på Supabase, med boliger, videoer, brandingpakke og forbrug samlet ét sted.
  • Render-fabrikken kører på vores egen server. Den samler klip, tale, musik og tekst til den færdige fil.
  • Bevægelseslaget tænker i opgaver, ikke i modeller: motoren vælger selv, hvad der skal generere en given scene, så et lag kan skiftes ud uden at resten mærker det.
  • Plantegnings-kameraet lader mægleren placere kameraets vej hen over boligens plantegning, så en gennemflyvning rammer rummene i den rigtige rækkefølge.
  • Studiet gemmer hver rettelse som en ny version. Originalen bliver stående, så man kan gå tilbage.
Skærmbillede fra listingreel.dk der viser kæden fra boligbilleder over manuskript og dansk speak til en færdig reel.
Kæden, som den vises på listingreel.dk.

Sådan arbejder AI'en i drift

Når en video sættes i gang, kigger systemet først på billederne: hvad forestiller de, hvilke af dem er skarpe nok til at bære en scene, og er der dubletter. Ud fra det og boligens fakta bygges planen. Manuskriptet skrives til den plan, ikke omvendt, og mægleren ser det, før noget bliver renderet.

Bevægelsen bliver besluttet scene for scene. Et billede, der er svagt eller risikabelt at animere, får ikke kunstig bevægelse bare for at nå en procentdel. Det får en rolig, forudsigelig bevægelse i stedet. Samme greb bliver heller ikke brugt tre gange i træk, fordi det er dét, der får en video til at føles maskinel.

Undervejs melder motoren tilbage i almindeligt dansk: hvilken fase den er i, og hvor mange scener der er tilbage. Fasenavne, udbydere og tekniske detaljer bliver på vores side af væggen. Når filen er klar, tjekkes den mod det, der blev bestilt: varede den så længe, den skulle, passer talen til længden, kom afslutningen med.

Skærmbillede af ListingReels portal med igangværende render, videoer klar til opslag og brandingpakke.
Skærmbilledet er fra listingreel.dk og viser demodata. Renderen melder fase og resttid, mens den kører.

Det, der var svært

Det tekniske var sjældent problemet. Det svære var at bestemme, hvornår maskinen skal holde op med at gætte.

Et tjek, der ikke kan svare ærligt, skal tie

Vores første udgave af kvalitetstjekket satte flueben ved alt, den kunne komme i nærheden af. Det gav en tryg grøn liste, som ikke betød noget. Nu tjekkes kun det, vi faktisk kan måle, og kan et punkt ikke afgøres ærligt, bliver det udeladt i stedet for at få et gæt. En kortere liste, hvor hvert punkt holder, er mere værd end en lang.

Nej til den halve løsning

Vi ville gerne kunne lade en mægler indtale sin egen stemme oven på et manuskript, AI'en har skrevet. Det kræver, at ord og billeder bliver rettet ind efter hinanden, og det er ikke bygget. I stedet for at lave en version, der næsten passer, afviser platformen den kombination og siger hvorfor. De øvrige måder at lægge lyd på, herunder mæglerens egen indtaling til hendes eget manuskript, virker.

Forbrug skal kunne forstås

Brugeren skal aldrig forholde sig til GPU-tid, modeller eller sekunder af et bestemt lag. Forbruget vises som en saldo og en pris pr. handling, og alle beregninger sker ét sted i koden, så ingen side kan finde på sit eget tal. Bag kulissen skønner vi den ægte omkostning separat, netop så tallene kan justeres på data i stedet for på mavefornemmelse.

Hvor den står i dag

Platformen kører på listingreel.dk. Man kan oprette sig, lægge billeder ind og se en video blive lavet. Eksemplerne på forsiden er lavet af platformen selv, ikke af en anden video vi har fundet.

Der er ingen betalende kunder endnu. Vi bruger den selv, retter det, der viser sig ikke at holde, og venter på de første mæglere. Den anden platform, vi driver, er beskrevet i casen om Ringback AI, og resten ligger på referencer.

Skærmbillede af listingreel.dk på en telefon, hvor den lodrette boligvideo fylder skærmen.
Videoerne er lodrette, fordi de skal ses på en telefon. Det er også dér, siden bliver læst.