Keep small details
Keep a logo, a label, small print or a small product exact through edits and animation, including swapping a client's product into someone's hand. Small detail is what video models and full-frame image edits lose first: lettering garbles, grain smooths, a logo changes width or slides across its prop mid-clip.
Ask first: must the shot's layout stay?
- Free: the model may compose the shot. Pure ref2vid with the product as a reference.
- Mostly: the shot's layout should hold, small zoom or shift allowed. Anchored ref2vid (the shot's still as a reference, plus the product), if the detail is big enough on screen.
- Exact: the frame must match the source, and the detail must be right from the first frame to the last. Edit the frame in an enlarged crop and pin both ends, with a gate per step.
Routes
| Route | Pick it when | Cost and time | What you get | Load |
|---|---|---|---|---|
| Pure ref2vid | No frame to match; the product just has to look right | One render | The model composes the shot from the references. Everything else in the shot changes | the model's prompt-format leaf, guide-animate-a-shot |
| Anchored ref2vid | The shot's layout should hold and the detail is large on screen | One Seedance r2v render (minutes) | Seedance with the still as @Image1 keeps its layout, zoomed and shifted slightly (match 0.86–0.98). Measure, then accept or counter-crop | seedance-2-5-prompt-format (r2v), python-measure-layout-drift |
| Edit and pin | The layout must stay exactly, or the detail is small | Several image edits, each reviewed, then one or two slow renders (Seedance i2v 1080p: 6–30 min) | Exact opening (~0.997) and end; the detail can't degrade across the shot because both ends carry it | the gated sequence below |
There is no size rule for anchored ref2vid either. If the detail might be large enough, render one anchored take and look at the detail at 100% on a review page; if it isn't legible, take the edit-and-pin route.
Conditioning references
Condition every reference for colour, size and orientation before it goes into an edit that composites it into a separately made image.
- Design: a pre-hazed product photo. Lower its contrast, warm it, add a slight blur and grain so it sits in the shot's light. A raw product photo in a busy shot pastes in a studio-lit, too-sharp object; hazing the result afterwards turned the cup grey.
- Angle and grip: a crop of the source frame's prop, already in the shot's light.
- Scale: a reference cut from another frame of the same shot must be cut at the same scale as the crop being edited (scale its box by the zoom between the frames). Otherwise the print comes out a different width or position and slides on the prop mid-clip.
- Orientation: turn or mirror the reference to match how the prop faces in the frame.
There are no fixed numbers for any of this, or for a patch's feather or a check's cut-offs: the settings depend on the shot. The haze on one job was there because the product photo was too bright and sharp for a frame in dappled morning light; another shot needs something else. Look at the shot you're editing and decide what transformation makes the reference match it. When a step has a value to choose (haze strength, warmth, blur, a feather width, a threshold), make a small ladder of values, put them side by side on a review page, and let the person settle it before you apply it to every frame.
Editing the detail
- One-pass swap of the product into the frame: nano banana Pro, the product reference in
the same pass, so the prop is rendered in the scene's light (
nano-banana-swap-held-product). - Small print or a logo: Pro on an enlarged crop (~6×, so the prop fills the image),
then paste back only the pixels that changed (
nano-banana-rerender-small-printwithpython-crop-and-paste-back). The background faces and grain stay untouched. Tell it where the print sits ("the same distance from the prop's left edge and from its lid"). - Removing a badge or pin: a ~256 px crop at 2K, enlarged 4×, edited, pasted back as a
feathered circle (
nano-banana-remove-small-object). Edit the character's reference sheets too, or the video model puts it back. - Measure that an edit kept the source's grain with
python-measure-detailon the same box in source and edit. A 4K edit downscaled scored 0.96 on a face where the source had 2.16; the 2K edit kept 3.19.
The gated sequence (exact layout)
Replacing a tiny branded object in a 1080p shot is a run of approvals. Each gate is a
review page (review_open, review_wait); never move to the next step unasked, and
don't paste or patch until the edit is judged.
- Lock the first frame. One-pass Pro swap from the source frame, stating every change (the product, anything else that differs, "keep the source's film grain, which is grain, not haze"). Then fix the print in an enlarged crop. Gate: the source frame as reference; candidates whole and as a 100% crop of the product.
- Derive the last frame from it.
nano-banana-derive-last-frame: text edits only, never the source's last frame. Crop it to the source's push-in withpython-match-push-in(≈6% on a slow push-in). Then re-render the print on the last frame, matched to the first frame's prop cut at the same scale. If the two logos still differ, re-render the first frame's logo to match the better one; either direction works. Gate: last-frame candidates. - Flip the two. First ↔ last on a flip, full frame and the product crop: hair, cuffs, props, eyes, the logo's width and position. Gate: the pair approved.
- Animate with both ends pinned:
seedance-2-5-image-to-video(the detail stays photographic; render at 1080p natively, since Topaz softens small print). Seeguide-choose-a-video-modelfor other models that take an end frame. Gate: the takes next to the original. - Check the detail close up at the start, the middle and the end of each take:
python-check-pinned-frames(did it land on both stills),python-measure-layout-drift(did it keep the layout),python-measure-detailon the product's box at the three points against the pinned stills, and 100% crops on the page. For a removed object, look at every 0.75 s by eye; a colour scan misses one of another colour. Gate: the pick, with its numbers.
Avoid
- A whole-frame pass for a small fix: it smooths grain and background faces, and comes back 0.5–1% zoomed with every pixel nudged.
- A raw product photo as the reference in a busy shot.
- Generating at 4K and downscaling: it averages the grain away and redraws background faces.
- Ref2vid when the layout must stay exact: it changes other things in the shot.
- Warping the product photo onto the prop by hand: angle, wrap and erase never blend.
- Matching the print to a reference at a different scale.
- Naming a removed object in the video prompt ("no pin or badge" grew a pin by 1 s); describe the clean surface instead.
Related
guide-animate-a-shot (routes and checks for any shot), guide-edit-a-frame-before-animating
(which image model, whole frame or patch), guide-choose-a-video-model.


