Your photos, directed by Apple Intelligence — without ever leaving the iPhone.
Arraya AI turns up to 30 photos, videos and Live Photos into a movie of up to 60 seconds, cut to the beat of an original song. It brings old photos to life in colour, makes your month into a one-minute film and finds your trips by place. Every effect — including generative animations painted by a Stable Diffusion model — runs on the phone itself. No photo is ever sent to an AI service.
Try the screens
A clickable demo of the main screens on iPhone 17 and the unfolded iPhone Duo, with all five themes in light and dark. Illustrations are drawn, not real user photos.
How it works
- Up to 30 photos, videos and Live Photos (Google Photos too) become a movie of up to 60 seconds in vertical 9:16, landscape 16:9 or square, in HD or 4K. You choose the order, cover and ending, and can remove or swap photos.
- Apple Intelligence writes captions and movie titles, picks the song, and asks a question about each photo (“Which beach is this?”). Answers are remembered and suggested again when the same faces appear.
- Wide photos appear three to a screen with varied transitions; tall photos ride a rolling film strip; crops centre on faces in every format.
- Rendering continues with the phone locked and sends a notification when the movie is ready. Movies stay drafts until published; Remix and Change Music remake them in one tap.
What it does
Bring a photo to life — free
One photo becomes a 5-second moving clip with music — a 3-D depth move, dolly in or out, background motion or bokeh — or a still. Old black-and-white and sepia prints are detected automatically and can be restored and colorized first.
Your month in a minute
On the 1st of each month the app picks last month's best photos and videos (favourites, spread over time) and makes a one-minute movie. Tapping × on a photo swaps in the next one from a shuffled pool.
Trips by place
Trips are found from photo locations: items grouped into roughly 50 km cells per year, the home area left out, groups ranked by size and recency and named by Apple's geocoder (“Goa 2025”). Each trip is one tap from a movie.
Invite friends
Sign in with Apple and share a 6-character code; both people get 10 more movies and 20 more photos. Only a hashed id and the code are stored in iCloud, and the account can be deleted in the app.
Beat-synced music
Ten original songs, made for the app, were analysed offline for tempo, beats, downbeats and loudness. Apple Intelligence picks a song and says why; you can pick something else, drag the start point on a waveform, or go silent.
- Transition midpoints snap to beats, preferring downbeats; pacing scales with the song's BPM.
- Loud moments get punchy transitions and small zoom kicks; quiet passages get soft ones. Every movie ends on a downbeat.
- The lesson: beat sync is mostly planning — moving cut times before rendering — not rendering itself.
Six generative animations, all on-device
Arraya_Live (experimental) animates up to 10 photos in a movie. Only the animations that suit each photo are offered.
| Animation | What you see |
|---|---|
| Arraya_Depth | The camera turns 10–20° around the scene; what comes into view is painted to match. |
| Arraya_Smile | A gentle smile — repainted by the generative model at higher intensity. |
| Arraya_Background | People stay still while clouds drift, trees sway, water ripples and cars glide. |
| Arraya_Dolly_in | The camera pushes in; people grow faster than the background. |
| Arraya_Dolly_out | A dolly zoom: the subject stays locked while the background compresses. |
| Arraya_Bokeh | The background melts into soft, out-of-focus light. |
Under the hood
- Generative fill on the iPhone: Stable Diffusion 1.5 inpainting merged with LCM-LoRA (4 steps), palettised, Neural Engine + GPU. Apple's package can't do masked inpainting, so the loop was written from scratch in Swift.
- Models on the phone: LaMa (inpainting), MiDaS small (depth), Real-ESRGAN (detail), LivePortrait (face animation) and DDColor Tiny (colorize). Old-photo restore uses Apple Core Image only.
- Licence-clean on purpose: no FFHQ-trained face restorers — GFPGAN and CodeFormer were tested and dropped.
- Scene understanding: Vision faces, landmarks, body pose and person masks; sky, greenery and water masks; Apple Foundation Models for captions, titles and song choice.
- Rendering: Core Image with custom Metal kernels, AVFoundation HEVC up to 4K, background processing (BGContinuedProcessingTask).
- Commerce and invites: StoreKit 2 yearly subscription (Arraya AI Pro); CloudKit and Sign in with Apple for invites.
Engineering stories
- Colour that vanished on the Neural Engine. DDColor colorized well on the Mac but came out almost grey on the iPhone: the Neural Engine and GPU ran it in half precision and the colour collapsed (mean chroma 0.86). Running it on the CPU in full fp32 brought it back to ~19. Lesson: test every converted model in both precisions before shipping.
- Black clips from one NaN. Some movies rendered black frames. A blur divided by zero on empty areas, and a single NaN pixel spread through the filter chain. A new Metal “finite” kernel now cleans every frame.
- Beat sync without heavy rendering. Syncing to music turned out to be a planning problem: cut times are moved onto beats before a single frame is drawn.
- The “ghost”. A colour-inverted copy of a removed person appeared in Arraya_Depth. Root cause: high-contrast masks holding unclamped values like 2.5 and −1.5. A clamp after every contrast-built mask fixed it.
- The model painting new people. A rounded-box mask and a no-people prompt stopped it.
- Slow first preview. An early warm-up step with a progress bar driven by real loading milestones.
Stack
Status
Submitting to the App Store, Oct 2026. Version 1.0 runs on iPhone 17 and the iPhone Duo simulator; the Privacy Policy and Support pages are live, and the yearly subscription is set up in App Store Connect. A Mac version, Arraya Desktop (longer films, batch restore and colorize of whole albums), is in development.
Need something like this?
Tell us what your team does by hand today. We'll scope it into jobs and a price.