Two steps, one generation. Step 1 is the visitor's photo (@image1): shot at eye level, vertical or croppable to 9:16, with 3 or 4 clear objects in view (vehicles, boats, furniture, anything) and at most one small person, no dense crowd. Streets work best because everything already moves. Step 2 is one unbroken 15s 9:16 Seedance 2.5 render with @image1 attached as the first frame. The prompt never names a city, a brand or a specific object, it picks the largest object, a smaller moving one, a third one and a person if present, so the same recipe works on any photo. Known traps: dense crowds make Seedance 2.5 fail, crop them out before uploading; a face filling the frame gets blocked by moderation, keep people small; the original viral version shouts Biu! on every hit, this recipe swaps that for a sparkle reveal chime so nothing has to be translated.