Cineloops · Singapore · 2026

Tell us what should move.
We hold the rest still.

A self-serve cinemagraph studio. Upload a photo, paint the region you want animated, and watch a five-stage pipeline turn it into a five-second loop.

— painted region

fig. 01 / candle_flame.jpg · animated

04:32

From the studio · selected work

Outputs are what people actually see. Source clips ahead of the polish.

hair_wind.mp4Kling 2.5 Turbo · region: hair · 5s
neon_signs.mp4Kling 2.5 Turbo · region: neon signs · 5s
autumn_water.mp4Kling 2.5 Turbo · region: water surface · 5s
cafe_steam.mp4Kling 2.5 Turbo · region: rising steam · 5s
manarola_harbor.mp4Kling 2.5 Turbo · region: harbor water · 5s

The pipeline · five stages

What actually happens when you press generate.

Most demos hide the work. Cineloops surfaces every stage with its artifact. The eval verdict at the end is shown, not enforced - you decide whether the output is good.

01

CAPTIONRead the image. Seed the prompt.

gemini-2.5-flash
artifactA whiskey glass on a wooden table at dusk, amber light catching the curve of the glass.
02

REFINETurn your paint + preset into a structured plan. You confirm before any compute runs.

gemini-2.5-flash (+ optional SAM2)
artifactAnimating amber-liquid as inner-ripple. Bbox covers 9.9% of frame; contour boundary, SAM2 refined.
03

GENERATIONAnimate the source as a 5-second loop. Your key, billed against your account.

kling-v2.5-turbo-pro
artifactkwaivgi/kling-v2.5-turbo-pro on Replicate; webhook returns; falls back to wan-2.2 on provider error.
04

LOOP QAMeasure motion magnitude and loop closure on the raw output.

opencv
artifactflow 1.23 / loop delta 0.08 / verdict pass. Degenerate motion warns; does not fail the job.
05

EVALUATIONJudge the loop against the plan. The verdict is shown, not enforced.

gemini-2.5-flash
artifactMatches intent. Ripple is subtle and reads as intentional. Glass edge stays stationary.

Built transparent · three commitments

A demo you can actually trust.

01

Your key, your call.

Replicate token lives in sessionStorage, wipes after 30 minutes idle, and never reaches our database or logs. A CI test fails the build on the day that stops being true.

How your key stays safe →

02

See the seams.

Every stage of the pipeline is visible while it runs. Caption, refined plan, raw generation, loop QA, evaluation. Most demos hide the work. You see the product take shape at each step.

Watch a run →

03

Yours, fully.

No watermark, no DRM, no per-download fee. The output is yours the moment the job finishes.

Built to be trusted · three guarantees

We never hold your key — by design.

Header-only, never stored

Your Replicate key arrives in a request header and lives in memory for exactly one request — long enough to bridge the completion webhook, then it's wiped. There's no database column for it, encrypted or not. We have nowhere to keep it.

Scrubbed from logs and traces

A redaction filter runs on every log handler and on our tracing, stripping any key-shaped string from messages, arguments, and stack traces before a line is ever written. A key can't reach a log even by accident.

Enforced by a test, not a promise

This isn't a pinky-swear. A CI check fails the build the day any code outside the narrow key-handling boundary so much as reads your key — the guarantee is re-checked on every commit.

The repo's private for now — video generation isn't cheap to run, so things are kept close while it's built. But the door's always open: if you'd like to peek under the hood or help out, just reach out to the developer.

Bring a photo.
Show us what should move.

Five-second loop in roughly two minutes. Your Replicate key, your output.

Open the studio →