Add v2 sequential cut, plate preparation step, and reference-image findings
This commit is contained in:
parent
722eebbe98
commit
6131feb160
1 changed files with 62 additions and 11 deletions
73
index.html
73
index.html
|
|
@ -25,6 +25,7 @@
|
|||
section{padding:52px 0;border-bottom:1px solid var(--line)}
|
||||
h2{font-size:13px;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;
|
||||
color:var(--muted);margin:0 0 26px;font-weight:600}
|
||||
h2 em{font-style:normal;color:var(--accent)}
|
||||
h3{font-size:20px;margin:0 0 10px;letter-spacing:-.01em}
|
||||
.demo{display:grid;grid-template-columns:minmax(240px,330px) 1fr;gap:40px;align-items:start}
|
||||
@media(max-width:740px){.demo{grid-template-columns:1fr}}
|
||||
|
|
@ -40,6 +41,9 @@
|
|||
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}
|
||||
.card .n{font:600 12px/1 var(--mono);color:var(--accent);letter-spacing:.1em;display:block;margin-bottom:10px}
|
||||
.card p{margin:0;color:var(--muted);font-size:15px}
|
||||
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
|
||||
@media(max-width:620px){.two{grid-template-columns:1fr}}
|
||||
.shot{width:100%;border-radius:12px;border:1px solid var(--line);display:block}
|
||||
table{width:100%;border-collapse:collapse;font-size:15px}
|
||||
th,td{text-align:left;padding:11px 0;border-bottom:1px solid var(--line);vertical-align:top}
|
||||
th{color:var(--muted);font-weight:600;width:44%;font-size:14px}
|
||||
|
|
@ -48,6 +52,8 @@
|
|||
li{margin-bottom:9px}
|
||||
ul li b{color:var(--ink);font-weight:600}
|
||||
.note{background:#1a1410;border:1px solid #3d2f1c;border-radius:12px;padding:18px 20px;color:#d9c9ae;font-size:15px}
|
||||
.new{display:inline-block;font:600 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
|
||||
color:#0e0f13;background:var(--accent2);padding:5px 8px;border-radius:5px;margin-left:10px;vertical-align:2px}
|
||||
footer{padding:38px 0 70px;color:var(--muted);font-size:13.5px}
|
||||
a{color:var(--accent)}
|
||||
</style>
|
||||
|
|
@ -62,7 +68,48 @@
|
|||
</header>
|
||||
|
||||
<section>
|
||||
<h2>Dog-In Podcast — full cut</h2>
|
||||
<h2>Latest cut <em>— sequential, one shared set</em><span class="new">new</span></h2>
|
||||
<div class="demo">
|
||||
<div>
|
||||
<video class="player" controls playsinline preload="metadata"
|
||||
src="https://api.corben.world/files/35db6ae0-004b-4b91-9936-45abb066a150/public">
|
||||
Your browser cannot play this video.
|
||||
</video>
|
||||
<p class="cap">720×1280 · 40s · five clips · $2.00</p>
|
||||
</div>
|
||||
<div>
|
||||
<h3>One dog per shot, straight cuts</h3>
|
||||
<ul class="run">
|
||||
<li><b>0–8s</b><span><i>The claim.</i> A humanoid robot will be the best-selling product of all time.</span></li>
|
||||
<li><b>8–16s</b><span><i>The reframe.</i> Every house already has one. You are describing us.</span></li>
|
||||
<li><b>16–24s</b><span><i>Second-order.</i> It does not eat. The floor economy goes to zero.</span></li>
|
||||
<li><b>24–32s</b><span><i>The counter-number.</i> The actual best-seller is the tennis ball.</span></li>
|
||||
<li><b>32–40s</b><span><i>Territory.</i> Losing on substance, escalating to the couch.</span></li>
|
||||
</ul>
|
||||
<p style="color:var(--muted);margin:0">Every line answers the same claim, each in its owner’s analytical style. The whole thing was generated and assembled through three API endpoints with no local video tooling — and every spoken line was transcribed back afterwards and matched against the script word for word.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Preparing the plate</h2>
|
||||
<div class="two">
|
||||
<div>
|
||||
<img class="shot" alt="Original photo: a bulldog asleep on a leather recliner in a living room"
|
||||
src="https://api.corben.world/files/5b739f19-f017-446a-9f17-c60c88c752eb/public">
|
||||
<p class="cap">what an owner actually uploads</p>
|
||||
</div>
|
||||
<div>
|
||||
<img class="shot" alt="The same bulldog rendered on the podcast set"
|
||||
src="https://api.corben.world/files/b9cf3ad5-4d0a-403c-a6b6-f381539bfd1e/public">
|
||||
<p class="cap">the same dog, on the house set</p>
|
||||
</div>
|
||||
</div>
|
||||
<p style="color:var(--muted);max-width:66ch;margin:26px 0 0">A reference photo carries its own background, and that background fights the scene description — one clip inherits the sofa, the next invents a different room. So the animal and the set are separated: one studio image is generated once, and every pet is composited onto <em>that same set</em> before it is ever used for video. Coat, blaze, eyebrow points and paws survive; the recliner and the bookshelf do not.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Earlier cut — the 2×2 grid</h2>
|
||||
<div class="demo">
|
||||
<div>
|
||||
<video class="player" controls playsinline preload="metadata"
|
||||
|
|
@ -103,10 +150,10 @@
|
|||
<section>
|
||||
<h2>How it is made</h2>
|
||||
<div class="grid">
|
||||
<div class="card"><span class="n">01</span><h3>The photo</h3><p>Breed, coat colour and markings are described in words. Naming the breed explicitly carries the likeness further than image resolution does.</p></div>
|
||||
<div class="card"><span class="n">01</span><h3>The photo</h3><p>Breed, coat colour and markings are described in words, then the pet is composited onto the house set. Naming the breed explicitly carries the likeness further than image resolution does.</p></div>
|
||||
<div class="card"><span class="n">02</span><h3>The topic</h3><p>A real discussion — a thread, a podcast clip, an argument. The claim being made is preserved; only the stakes change.</p></div>
|
||||
<div class="card"><span class="n">03</span><h3>Director notes</h3><p>The owner supplies the attitude. Loud and self-important, or flat and unimpressed. This is what makes it sound like <em>their</em> pet.</p></div>
|
||||
<div class="card"><span class="n">04</span><h3>The render</h3><p>Each character is generated alone, twice — speaking and idle — then composited into one grid with captions and branding.</p></div>
|
||||
<div class="card"><span class="n">04</span><h3>The render</h3><p>Each character is generated alone, then the clips are stitched with captions and branding burned in — all through the API, no local video tools.</p></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -116,7 +163,9 @@
|
|||
<li><b>Native generation beats lip-sync retrofitting.</b> Post-hoc lip-sync tools are trained on human faces and track landmarks a muzzle does not have. Generating the animal already talking sidesteps the problem — the single most important finding so far.</li>
|
||||
<li><b>Composite, do not ask for a crowd.</b> Prompting one model for four characters on a call rendered the same dog in every panel. Four separate generations tiled in post gives four distinct dogs and exact control over who speaks when.</li>
|
||||
<li><b>Names belong in captions, not dialogue.</b> The model refuses to speak real people’s names outright. Drawing them into the caption layer is reliable, unrestricted, and free to change — and puts more of the joke on screen than the spoken version managed.</li>
|
||||
<li><b>Seed continuity from the last frame.</b> Growing the idle take out of the speaking take’s final frame guarantees an exact match. A shared background reference cannot, because it does not lock the animal.</li>
|
||||
<li><b>Seed continuity from the last frame.</b> Growing one take out of the previous take’s final frame is the only mechanism that reliably carries a character across a cut. Measured: the seed frame, the seeded clip’s first frame and the same clip seven seconds later share one wrinkle pattern, one eye patch, one microphone. A shared background reference cannot do this, because it does not lock the animal.</li>
|
||||
<li><b>The cheap model refuses reference images outright.</b> Passing a plate as a reference returns <span class="k">referenceImages isn’t supported by this model</span> on the lite tier. It is accepted two tiers up, where it does reproduce the set faithfully — at double and eight times the price. A start frame, by contrast, works on every tier. Two mechanisms that look interchangeable and are not.</li>
|
||||
<li><b>Separate the pet from the set.</b> A reference image imports its background along with its subject. Compositing every character onto one generated set first is what stops the room changing between shots.</li>
|
||||
<li><b>Every line is transcribed back and checked.</b> This caught a take where one character had absorbed another’s line, and two takes where a list of names came out as mush.</li>
|
||||
<li><b>Do not write stage directions the model can read aloud.</b> Dashes added to force pauses were spoken as filler words. Punctuation is not direction.</li>
|
||||
<li><b>Remux before publishing.</b> Model output puts the <span class="k">moov</span> index at the end of the file, so a browser shows a blank player until the whole thing downloads. A lossless faststart pass moves it to the front.</li>
|
||||
|
|
@ -125,18 +174,20 @@
|
|||
|
||||
<section>
|
||||
<h2>What it costs</h2>
|
||||
<table style="max-width:540px">
|
||||
<tr><th>Model</th><td><span class="k">veo-3.1-lite</span>, 720p, native audio</td></tr>
|
||||
<tr><th>Any 8s clip</th><td>$0.40</td></tr>
|
||||
<tr><th>Generation time</th><td>41–62 seconds</td></tr>
|
||||
<tr><th>This 48s short, from nothing</th><td>$4.00 — ten clips</td></tr>
|
||||
<tr><th>Each additional episode</th><td>$1.60 — four new lines; intro, cast and idles are reused</td></tr>
|
||||
<table style="max-width:620px">
|
||||
<tr><th>Model tier</th><td>8s clip · reference images?</td></tr>
|
||||
<tr><th><span class="k">veo-3.1-lite</span></th><td>$0.40 · rejected — start frame only</td></tr>
|
||||
<tr><th><span class="k">veo-3.1-fast</span></th><td>$0.80 · accepted, binds the set to the plate</td></tr>
|
||||
<tr><th><span class="k">veo-3.1</span></th><td>$3.20 · accepted</td></tr>
|
||||
<tr><th>Generation time</th><td>41–62 seconds, whatever the tier</td></tr>
|
||||
<tr><th>This 40s short</th><td>$2.00 — five clips on the lite tier</td></tr>
|
||||
<tr><th>Recommended mix</th><td>$2.40 — open on the fast tier to lock the set, seed the rest on lite</td></tr>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Still rough</h2>
|
||||
<p class="note">Honest state of play. Coined words give the model trouble — “okayest” lands somewhere between okayest and okay-us. Dense lists of proper nouns need splitting across takes rather than crammed into eight seconds. And every clip is a fresh roll of the dice: coat colour drifted tan-heavy on one early take and had to be regenerated.</p>
|
||||
<p class="note">Honest state of play. Coat colour drifts during animation even when the plate is correct — a chocolate bulldog plates properly and then renders closer to standard fawn. On the lite tier the set is carried by prompt text alone, so it stays consistent between clips but drifts away from the plate it was supposed to match. Coined words give the model trouble, and dense lists of proper nouns need splitting across takes rather than crammed into eight seconds. Cuts are hard cuts; there are no crossfades yet.</p>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
|
|
|
|||
Loading…
Reference in a new issue