<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hafiz Afaq Nasir</title>
    <description>The latest articles on DEV Community by Hafiz Afaq Nasir (@hafizafaqnasir).</description>
    <link>https://dev.to/hafizafaqnasir</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4243016%2Fa7ec3b42-9843-45b7-801e-140c61cb2c07.png</url>
      <title>DEV Community: Hafiz Afaq Nasir</title>
      <link>https://dev.to/hafizafaqnasir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hafizafaqnasir"/>
    <language>en</language>
    <item>
      <title>Character Lock: How I Keep the Same Character Identical Across a 3-Minute AI Ad</title>
      <dc:creator>Hafiz Afaq Nasir</dc:creator>
      <pubDate>Fri, 13 Nov 2026 13:26:41 +0000</pubDate>
      <link>https://dev.to/hafizafaqnasir/character-lock-how-i-keep-the-same-character-identical-across-a-3-minute-ai-ad-3k9n</link>
      <guid>https://dev.to/hafizafaqnasir/character-lock-how-i-keep-the-same-character-identical-across-a-3-minute-ai-ad-3k9n</guid>
      <description>&lt;p&gt;Originally published on LinkedIn, and as a method on my portfolio: &lt;a href="https://hafiz-afaq-portfolio.vercel.app/services/character-lock/" rel="noopener noreferrer"&gt;Character Lock&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Character Lock keeps one face, one outfit and one turnaround the same in every shot, with locked locations and light.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;p&gt;I lock the character before I make a single clip. One face, one outfit, one turnaround, locked locations and light, and every shot prompt repeats those locks word for word. That is Character Lock. It is how a bear dad and a golden Labrador stayed the same animals across a 3-minute story ad.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: characters drift
&lt;/h2&gt;

&lt;p&gt;AI video has one problem that kills story ads. Characters drift. A face changes between shots. A shirt changes colour. A product label melts into nonsense. One clip looks fine on its own. Across more than 25 clips, the drift adds up to a different person by the end, and the viewer stops believing the story. A 3-minute ad lives or dies on its characters, and drift is what kills it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The method
&lt;/h2&gt;

&lt;p&gt;I fix it before the first frame. I build a character sheet first. The sheet locks the face, the outfit and the turnaround, and every clip starts from that sheet, never from scratch. The locations and the light get locked with the character, so the person, the product and the room do not drift apart. Then every shot prompt repeats those locks word for word. The same references, the same words, in every prompt. That repetition is the whole method. There is no fix after the fact. If the locks are in the prompt, the character stays. If they are not, it drifts.&lt;/p&gt;

&lt;h3&gt;
  
  
  What goes on a sheet?
&lt;/h3&gt;

&lt;p&gt;Turnaround sheets on flat grey, with fixed identity marks. For ULTRA, the bear has an ear notch on one set side. The sheet also bans mascot-suit looks and colour casts, so the animal reads as a real animal, not a costume. Products get the same treatment. The ULTRA tin and the old silver tin were locked on sheets, so both props look the same in every hand and on every table. The label was composited from the real packshot, so it is always correct.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four stages, with approval at each one
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Brief.&lt;/strong&gt; Your product, audience, platform, and the one thing the viewer must feel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cast and lock.&lt;/strong&gt; Characters, product and sets locked on sheets before any video is made.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direct.&lt;/strong&gt; Every shot directed with references, lens, light and continuity rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edit and QC.&lt;/strong&gt; Edit, captions, sound, and a frame-by-frame check before delivery.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nothing is animated until the locks exist. That order is what makes the method work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The proof: ULTRA
&lt;/h2&gt;

&lt;p&gt;ULTRA is the proof. The brief was a script and a reference ad: a dad who is always on edge, and a friend who quietly switched to a zero-nicotine pouch. My call was to make the dad a grizzly and his best friend a golden Labrador. Animals stop the scroll and carry the emotion without a casting call, as long as each one stays exactly the same animal in every scene. The result is a 3:13 story ad across a kitchen, a garage and a truck, with the same bear, the same dog and a readable tin in every product shot.&lt;/p&gt;

&lt;p&gt;The story runs in seven beats: dad on edge in the kitchen, the garage, the confession ("Ten months ago I switched to this"), the product hero (the tin on the bench in a patch of sun), dad's turn ("Why doesn't anyone talk about this?"), the switch (a montage: the new pouch, the old tin in the bin), and the end line: "Same ritual. Zero nicotine. No crash." The switch is shown without a word. The old silver tin drops into the kitchen bin, and that is the whole argument.&lt;/p&gt;

&lt;p&gt;Behind it: 18 start frames, each listing exactly which sheets to attach, with lens, camera height and light written like a shot list. Each frame was animated in short takes, with dialogue and timing written into the prompt. The finish was captions, a sound bed for each location, cleaned dialogue, a music swell into the reveal, and a -14 LUFS master. Made with Google Flow and Veo 3.1, Nano Banana Pro, CapCut, and Claude.&lt;/p&gt;

&lt;p&gt;See the full case study: &lt;a href="https://hafiz-afaq-portfolio.vercel.app/work/ultra/" rel="noopener noreferrer"&gt;ULTRA — A bear dad, a dog best friend, and one tin&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it means for brands
&lt;/h2&gt;

&lt;p&gt;For a brand, the point is simple. A character the audience can follow for three minutes is a character they remember. A product that stays readable in every shot is a product they can find on a shelf. And a method with approvals at each stage means no surprises at delivery. The same method sits behind a 56-second brand film (ERASED) and a 37-second UGC testimonial ad (ORAKSER).&lt;/p&gt;

&lt;h2&gt;
  
  
  About me
&lt;/h2&gt;

&lt;p&gt;I am Hafiz Afaq, an AI filmmaker in Karachi, working remotely for brands in the US, UK, Canada, Australia and the UAE. Eleven client brands, one person from brief to final file, 17 case studies on the portfolio. Three recent ads went from brief to delivery in one day.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The full method: &lt;a href="https://hafiz-afaq-portfolio.vercel.app/services/character-lock/" rel="noopener noreferrer"&gt;Character Lock&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The ULTRA case study: &lt;a href="https://hafiz-afaq-portfolio.vercel.app/work/ultra/" rel="noopener noreferrer"&gt;https://hafiz-afaq-portfolio.vercel.app/work/ultra/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;YouTube: &lt;a href="https://www.youtube.com/@hafizafaqai" rel="noopener noreferrer"&gt;https://www.youtube.com/@hafizafaqai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Email: &lt;a href="mailto:afaqn4286@gmail.com"&gt;afaqn4286@gmail.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have a character that has to survive a whole film, write to me.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>video</category>
      <category>filmmaking</category>
      <category>ugc</category>
    </item>
  </channel>
</rss>
