RA Sarinas at his editing desk at night, a video timeline on the main screen and sunglasses product shots on the second screen
AI Director · Philippines

Character, location and product consistency. Seamless transitions, every shot.

I direct AI films and ads end to end — references, locked prompts, generation, review and the edit. This page shows how I work, not just what came out.

This picture is generated, not photographed — ChatGPT, from my character sheet. The same sheet drives my Seedance videos below.

The workflow

Consistency is something you build in, not hope for.

The models change every few months. The method doesn't. Whether the subject is a pair of sunglasses or a person, I run the same five steps.

Reference

One clean reference for whatever must not change: the product, the character.

Lock

The facts live in files and get pasted, never retyped. Only the scene is free.

Generate

Images on Vertex AI (Gemini 3.1 Flash Image), video on Veo 3.1 and Seedance 2.5.

Review

I keep or reject every output, and every failure becomes a rule.

Edit

Cut, pace and deliver — Premiere Pro, Vegas Pro, CapCut.

01 · Product reference

The product is a locked asset. The scene is the variable.

DuberyMNL is my own sunglasses brand. A sunglasses ad fails the moment the frame shape, the arm print or the logo drifts — customers notice. This is one real chain from start to finish, every step on file.

Read the full prompt behind step 4 1,231 words · locked lines highlighted
highlighted = pasted from the spec file or a fixed rule, identical across every prompt for this product
Generate an image based on the following JSON parameters and the attached reference image - ensure that product attached keeps its identity and design do not hallucinate. The final image must look like a real DSLR/mirrorless studio PHOTOGRAPH, not a 3D render or CGI. Both models in the scene wear the SAME pair shown in the reference image -- two identical pairs:

{
  "product_fidelity": {
    "identity": "Dubery D918 Vintage Polarized Sunglasses (Outback Green) -- two identical pairs, one worn by each model",
    "required_details": [
      "Square-style matte polycarbonate frame with angular flat-top edge",
      "Vibrant mirrored polarized lenses with a bright green mirror tint",
      "Match product proportions, frame shape, temple pattern, emblem placement, lens color, and branding 100% against the attached reference photo -- no drift"
    ],
    "proportions": "Standard retro frame with standard hinge-to-hinge width",
    "state": "Two identical pairs of Dubery D918 Outback Green sunglasses. The MALE model is positioned CLOSE TO CAMERA -- his pair fills a significant portion of the frame and reads large with crystal-clear product detail (frame, branding, lens). The FEMALE model is positioned further back on the loveseat, her pair smaller in the frame but still clearly recognizable. Both pairs oriented to match the reference photo orientation (product angled slightly toward the left side of the frame from the wearer's perspective), so the RIGHT temple arm and branding badge read clearly to camera. Green mirrored polarized lenses behave as real photographed mirror glass with soft rectangular softbox catchlights and natural tonal variation -- not CGI, not uniform."
  },

  "interaction_physics": {
    "blending_mode": "PHOTOREALISTIC_INTEGRATION",
    "reflection_logic": "Treat the mirrored polarized lenses on BOTH pairs as REAL photographed glass mirror surfaces. Dominant highlight on each lens is the soft rectangular softbox key light IN FRONT of the models (soft rolled edges, faint flare). Soft tonal gradient across the lens, slight chromatic variation, realistic micro-imperfections at edges. Do NOT render uniform glossy plastic. Do NOT render a perfect mirror reflection of the background pixel set. Do NOT preserve reflections from the original product photo.",
    "relight_instruction": "Use the product in INPUT_IMAGE_0 but digitally relight it to match the new location for each of the two pairs. The product must look physically photographed in the new scene with real specular highlights and real shadow gradients on the matte frame -- not pasted on, not CGI-rendered."
  },

  "scene_variables": {
    "location": "Studio set styled as a retro 8-bit / pixel-art world. Saturated peacock-teal cyclorama backdrop, warm coral-magenta and dusty-pink pixelated checkerboard floor running in perspective into the backdrop. Set dressing: two voxel-style pixelated cacti in warm terracotta pixel pots in the foreground corners; three or four floating low-poly pixel-art creature blobs in the air around and above the models (coral-pink monster face, yellow voxel star, magenta pixel ball) -- each rendered as cubic voxel objects with visible large pixels and stepped edges, soft contact shadows.",
    "subject": {
      "description": "Same TWO young adult Filipino models from the prior duo shoot. MALE: mid-20s, warm brown skin, sharp defined jawline, strong brows, deep-set eyes, high cheekbones, clean shave, short modern low-fade with slightly longer textured top. Pastel-striped knit sweater (soft mint, coral, lavender stripes) over light denim shorts, slouchy bright yellow knee-high socks, white chunky low-top sneakers. FEMALE: mid-20s, warm brown skin, two long French braids resting in front of her shoulders, soft defined features, natural minimal makeup. Coordinating pastel-striped knit sweater in a different stripe arrangement over a light denim short-overall, yellow knee-high socks, white chunky sneakers. Both editorial-model quality faces. Natural skin texture, real photographic micro-imperfections -- photographic, not CGI-smoothed.",
      "action": "MALE is leaning forward AGGRESSIVELY toward the camera off the front edge of a wide magenta velvet loveseat -- his face and shoulders fill the LEFT HALF of the frame from forehead-top to upper-chest, large and close. His forearms rest on his knees, one hand loose, the other lightly cupping his chin/jaw in a casual relaxed gesture. He stares directly into the camera through his green mirrored lenses. His sunglasses dominate his portion of the frame, every detail of the matte frame, right-temple branding, and green mirror lens reading sharp and large. FEMALE remains seated upright on the loveseat in the BACKGROUND further from camera, body slightly turned toward male, one arm draped along the back of the loveseat behind where he was sitting, the other hand resting in her lap. She is positioned in the upper-right portion of the frame at roughly half the apparent size of male. She also looks directly into the camera through her green mirrored lenses with a calm cool expression. Both wear identical Dubery D918 Outback Green sunglasses.",
      "emotion": "MALE: magnetic, close-up confident, owning the camera. FEMALE: cool, calm, supportive presence in the background. No smiles, no stiffness. Real photo-shoot pair-shot energy."
    },
    "subject_placement": "1:1 SQUARE composition with depth -- MALE in the foreground left dominates the left half of the frame from forehead at upper-edge down to upper-chest at lower-edge, his sunglasses sitting roughly at the center-vertical of the frame and reading LARGE. FEMALE is positioned in the upper-right quadrant of the frame on the loveseat behind him, smaller in apparent size (roughly 40-50% of male's apparent face size) and slightly defocused from the depth-of-field. The wide magenta loveseat is visible behind/around them. One voxel cactus visible in the bottom-right corner on the checker floor, one floating pixel creature visible in the upper-left corner near the headline, another floating creature visible behind female's shoulder. Upper portion of the peacock-teal backdrop is clean negative space for headline overlay. Lower-narrow band reserved for logo lockup. Both sunglasses on both models read clearly with right-temple branding visible to camera, male's reading especially large and crisp.",
    "lighting_atmosphere": "Real studio beauty lighting setup -- one large rectangular softbox key light front-camera-left at 45deg, smaller soft fill front-camera-right, subtle rim light edge-defining both models' hair and shoulders from behind-right. The softbox key reflects in each mirrored lens of both pairs as a soft rectangular catchlight with rolled edges. Saturated set colors but realistic light wrap and exposure -- this is a real photograph, not a render.",
    "camera_settings": "Full-frame mirrorless equivalent with a 50mm lens, eye-level with male's face, shot close to him so he reads large in the frame, f/4 for moderately shallow depth of field that holds male and his sunglasses tack-sharp while letting female fall into a slightly softer focus to read the foreground/background depth. 1/250s, ISO 200. Real-camera microcontrast, real photographic grain.",
    "overlay_typography": "Render typographic overlay directly into the image: at the top of the frame across the upper portion, the headline 'PIXEL PERFECT SHADES' on three stacked lines -- 'PIXEL' on the first line, 'PERFECT' on the second line at larger scale, 'SHADES' on the third line at the largest scale -- chunky 8-bit pixelated white sans-serif display face with visible square pixel edges, all caps, perfectly centered horizontally. Exact spelling: P-I-X-E-L / P-E-R-F-E-C-T / S-H-A-D-E-S. Floating pixel creatures must NOT overlap or obscure any letter. At the bottom-center, the wordmark 'DUBERYMNL' in clean medium-weight white sans-serif, all caps, modest size, perfectly centered, sharp and on-pixel. No other text anywhere."
  },

  "render_quality": {
    "resolution": "high",
    "color_space": "true-to-life",
    "background_blur_strength": "subtle -- male and his sunglasses tack-sharp, female and background slightly softer to read depth",
    "photographic_realism": "This is a REAL studio photograph captured on a real camera. Lenses, skin, hair, and frame finish on BOTH models must all read as photographed material, not CGI/3D-rendered surfaces."
  },

  "image_input": ["contents/assets/prodref-kraft/outback-green/01-hero.png"],

  "api_parameters": {
    "aspect_ratio": "1:1"
  }
}

Selected from the images I kept for DuberyMNL ads and posts. Same product references throughout; only the scenes change.

02 · Character reference

For video, the "product" is a person.

Same method. One reference sheet, one block of identity text pasted word for word — and the face, hair, ear gauges, shirt and shoes hold from shot to shot.

v1 · Oct 5
Bucket hat, charcoal tee. Used for Reel 2 and parts of Late for Work.
v2 · Oct 9 · current
Man bun, navy tee. Used for #50, #51 and the picture at the top of this page.

Both pose sets are generated from my likeness; a script I wrote lays the current one out as 3 full-body views and 6 headshots. Dola blocks colour photos of real people, so what I actually submit is a pencil-drawn version of each sheet.

The identity lock

Pasted into every prompt, never retyped. A script submits the prompt and the sheet together, so nothing is copied by hand.

================================================== CHARACTER IDENTITY LOCK — RA ================================================== Use the attached character-reference-sheet-manbun-pencil.png as the ABSOLUTE visual identity reference for RA. Preserve RA's exact: face, facial proportions, long dark hair pulled back and tied in a man bun, dark stretched-ear gauges, slim build, identity, and overall appearance. Match RA's clothing exactly: dark navy blue T-shirt with the small white “RAS AI” logo and Philippine flag on the wearer’s left chest, plain black pants, and black low-top shoes with three red side stripes. The back of the T-shirt is completely plain, solid navy blue. Do NOT change RA's face, hair, identity, clothing, colors, or proportions. No identity drift. No wardrobe changes. No hairstyle changes. No duplicate RA.

Same fight, new face

Same ~1,900-word prompt. I swapped in the new sheet and identity block and changed three lines of dialogue. The courtyard, the fighters and the beats came back.

before

Reel 2 · sheet v1

Seedance 2.5 · 30 s

after

#50 · sheet v2

Seedance 2.5 · 30 s

Pre-production · client work

Before a single frame, the world gets locked.

Leo's Cuisine is a real beachfront café in Bagasbas, Camarines Norte. Before generating anything I built four reference boards — the character, the location, the hero product and the storefront. Each one becomes an attached reference, exactly like the sunglasses and my own face.

character
Mario, barista and surfer — turnaround, expressions, hair, outfits and his actual board.
location
Bagasbas Beach — the real beachfront road, mapped: beach on the left, shops on the right, the lifeguard tower, the signage, the palette.
product
Caramel Macchiato — the hero drink from every angle, built from the café's own product shot and a customer photo.
brand
The storefront — signage, menu, logo and materials, so every frame reads as Leo's.

The first test generations already hold Mario and the beach road. The finished piece is in production.

03 · Prompt locking

Change one thing at a time.

Every prompt is a numbered file. I never edit a prompt that produced a video — I copy it forward, change one thing, and compare.

Locked — never retyped

  • Product facts from one spec file: Square-style matte polycarbonate frame with angular flat-top edge
  • The accuracy line: Match product proportions, frame shape, temple pattern, emblem placement, lens color, and branding 100% against the attached reference photo -- no drift
  • The relight rule, so the product never looks pasted on
  • The character identity block, word for word

Free — changes every shot

  • Location, set dressing and props
  • Lighting and time of day
  • Camera, lens and framing
  • Action, performance and dialogue
Video frame: a garbled flag print appears on the back of RA's shirt
#50A flag appeared on the shirt's back — the sheet's back view is plain.
Video frame from the next version: the shirt back is plain
#51Plain back — one added line fixed it.
reel-2_v01 → reel-2_v02 · 1 line added, nothing else changed
+ The back of the T-shirt is completely plain, solid navy blue.

Worded positively on purpose. Writing "no flag on the back" names the flag — and naming a thing can plant it.

04 · Review

Every output gets a yes or no.

284kept
157rejected
  • Size words inflate the product"Oversized" in a prompt rendered the glasses bigger than a coconut. Size words are banned now.
  • Describing details can erase themOne wrong line about the arms and the model dropped the real print. The reference shows the arms; the text stays quiet.
  • Patterns bleedAn inner-arm print spread across whole arms in worn shots. Fixed at the reference, not the prompt.
  • Stacking ideas costs accuracyEvery extra creative layer pulls attention from the product. Add one at a time.
05 · Generate & edit

The films.

Generated scene by scene, then cut. Sound on.

Veo 3.1 · CapCut

Duberymnl in Japan

61 s. A day in Tokyo built from command-center stills, animated with Veo, cut in CapCut. One character all the way through.

Veo 3.1

Behind the scenes, Outback

19 s. A 19-shot storyboard, each still animated with Veo — a "photoshoot" that never happened.

Seedance 2.5

Reel 1 · World change

30 s, one generation. All ten scripted beats and every line of dialogue landed.

Seedance 2.5 · edit

Late for Work

3:21. A story told in chained 30-second Seedance parts: I'm late, I commute by bubble, and the office is a world of orcs, felines and machines that I treat as completely normal.

Before AI

I've been filming and cutting since 2012.

Skate events, travel films and resort promos — shot on cameras and drones, edited myself. AI is the newest camera, not my first one.

2021 · drone

Carwash

Drone clip · 0:26

2021 · drone

Wonderful World

City sunset · 0:30

Watch on Facebook ↗
2021 · drone · resort promo

Paradiso

Made for Paradiso Verde Organic Farm and Resort · 2:15

Watch on YouTube ↗
2012 · film & edit

The Romero Cup

Longboarding event, Butuan City · 4:54

2021 · drone

Quinapaguian Island

Island travel film · 3:51

Watch on Facebook ↗
2022 · drone

Bongabon Downhill

Skateboard race followed from the air · 1:58

Watch on Facebook ↗
2021 · drone · resort promo

Greenland

Made for the resort · 2:03

2021 · drone

It Was All Yellow

Top-down beach · 0:18

These play from YouTube and Facebook, where the music rights are handled. The ones marked ↗ open there directly.

Other skills

I also build the systems behind the content.

DuberyMNL, run on tools I built

An AI content pipeline, the storefront at duberymnl.com, a Messenger chatbot that captures leads into a CRM, Meta ad operations, and a command center that ties it together — run mostly solo. Over 11 days of clean ad data the funnel returned 3.98× its ad spend in cash.

PythonClaude CodeVertex AIVeo 3.1Seedance 2.5Premiere ProVegas ProCapCutffmpegMeta Marketing APICloudflare

Background

2023 – 2026Informdata — data QA and internal automation
2022 – 2023Airbnb (via Teledirect) — escalation support
2019 – 2022Google (via Teledirect) — reviewed 200+ advertiser websites a day
2012 – nowFilming & editing — events, travel, drone work