The model has no memory. What keeps a face the same across forty shots is a locked picture of it, cut into single views, passed to every video that shows that person. Read these before the step:
| File | Read it before you… |
|---|---|
references/views.md |
cut a view out of a sheet, or check one |
references/own-photos.md |
use a photo the user brought of a person, a product or a place |
What each asset gets
| Asset | Pictures | Compiled with |
|---|---|---|
| A person you generate | one sheet: front face, side face, full-body outfit, and a states row when the story needs one | picsart_film_compile_prompt, kind: "sheet" |
| A person the user photographed | the photo itself; a profile and a sheet only for views the photo lacks | kind: "profile", then kind: "sheet", from the photo |
| A prop | one plate: the object alone on a neutral ground, and the object beside an everyday thing for scale; no people, no hands | kind: "plate" |
| A place | a descriptor now; its pictures come from its scene (film-shot-generation) | — |
| A crowd | one plate with the dress code, the age spread and what they carry; each shot states the exact count | kind: "plate" |
Every person and every prop the story handles gets its pictures; nothing is tiered. A figure in the background, or an object nobody touches, gets no asset: the shot that shows it describes it.
A state (wet, bloodied, coat off) is a panel on the person's sheet with its own tag
(@cal_wet), generated from the approved sheet so it stays the same person. A change that lasts
most of the film may earn a sheet of its own; that is a craft call. A place at night, or after a
fire, is a scene with its own pictures, never a state.
Descriptors
Draft every descriptor in one turn, from the story, the cards and the references; mark what you
invented as a design proposal. They are line-keyed (face, hair, jacket, shoes, …), so a
change is one line, and they are concrete: no evaluative words.
- A person: sex, build, face shape, eyes, hair and facial hair; costume item by item with
material and condition; shoes; accessories; posture, gait, hand habits, tempo. Age goes in the
compiler's
identityfields, never as a number in prose. The base costume is what most scenes show; scene gear is a state. - A place: architecture, materials, key objects, condition, atmosphere, one motivated light per time of day, the look's colour, and one memorable anchor object. With a colour scheme, the look's colour is the film's palette line, verbatim; with the scheme on Auto, each place names its own colours.
- A prop: shape, material, condition, distinguishing details, and size relative to a known object, never a bare number.
- A voice line for everyone who speaks, before their first spoken shot: accent, register, timbre, habitual cadence. Chosen from the character and frozen once saved; film-shot-generation' Voice says how the prompts carry it.
- When the tone is an era, generated people are dressed and groomed to it. If the story's period and the tone's era disagree, flag it with both options and restyle nothing until it is settled.
The descriptor is the sheet's prompt and the asset's record. In a video the views carry identity instead, as film-shot-generation says.
Pictures
- Choose the image model once per film with
picsart_model_catalog, filtered by the film's frame (a model whose ratios lack it is out) and by image input when a photo feeds it. Record it; one film never changes image model midway. - Compile every picture with
picsart_film_compile_promptand its referencekind, passing the film'slook, the same object the shots get, and the descriptor's lines inreference(identityorfaceAndOutfit,outfit, a plate'sdescriptorandanchor,assetPalette). Keeplook.schemeandlook.huein it: left off, the cast comes back in no colour while the shots compile to the film's hue. It returns the prompt, thenegativePrompt, theaspectRatioand apromptToken. Send all of them as returned; never type or retype a template. - Check each with
picsart_film_verify_prompton the literal arguments, with its token. A failure is fixed in the inputs and compiled again. - Sheets are generated at the model's highest resolution, so every panel has pixels to spare.
- Every independent picture goes in the same batch. A failed one blocks only what depends on it.
Reading the review
Every tile comes back approved, changed or discarded.
- A change is surgical: the named line or panel, nothing else. A point defect on an otherwise sound sheet is a masked edit with an image edit model, not a re-roll.
- Approved is locked: cut the views the cards need (
references/views.md) from the approved full-resolution sheet, look at each, and save withpicsart_film_save_asset:tag,assetType,name,descriptor,sheetVersion("v1"; a new version is a new save, never an overwrite),voice(an object:modepresetordesign, ornonSpeaking: true;voiceId,model,description,language,accent,sampleUrl),portraitUrl(the sheet, or the user's photo), the views asreferenceImages, thescenesit serves,projectFolderUid,status: "locked". The result'slocked, not itssaved, says it is done. A locked save lands in the project's "Library", anything else under its "Assets"; with no project folder it goes to the flat global "Film Assets" folder. Only a save registers an asset forpicsart_film_list_assets. A draft or review save returnslocked: falsewith aremaininglist.stressTestis recorded only, never a lock condition: pass it when the user asked for a spot-check and it ran; a battery with failures blocks the lock until fixed or noted inwaived. - Discarded siblings are never used.
Test the cast on pictures before any video
A face locked on one good picture drifts on real shots. Before the first run, put the locked cast through a few cheap stills, generated as one batch: each person at the angles, sizes and light their scenes ask for, and beside the people they share a frame with, since someone who holds up alone often breaks in a two-shot. A lead who does not come back recognisable every time has an under-written descriptor: tighten the lines the stills got wrong, and test again. A still is a fraction of a run's cost, and a defect found here never reaches one.
The gate into a run
Before any video, for every scene the run spans: every tag it names has a locked row
(picsart_film_list_assets with the project folder, read back), and every tag that needs a panel, a
state or a profile resolves to a single-view file. A photo-only row cannot answer a view it lacks.
Read the places in story order: after a fire, later scenes need frames from the run that burned the
room, not its clean pictures.
Repairs after a run
- A drifting face: check the view first. A wrong crop, a neighbour's edge in the box, or a sheet sent whole explains most drift, and the fix is a re-cut, not a generation.
- Repair from the locked views, never from the last take. A take made from a take inherits its drift and adds its own.
- If the view is sound, the take is repaired (film-shot-generation). After the same face drifts twice, tighten its face lines and re-roll. A sheet whose face is too small is regenerated and re-cut.
- Two faces blending in a two-shot: only each person's identity and wardrobe views, a medium two-shot rather than a wide, and never a composite of two solo pictures.
- A descriptor changed after takes exist does not silently regenerate them. Name the takes it affects and flag them for review.
- When a source changes, check only what depends on it, by the job it did (identity, wardrobe,
geometry, light) and record
reuse,recrop,repairorrebuild. A version bump alone does not cascade.
Efficiency
- A reference picture is scoped to its job: a neutral ground, no location, no scene light. The compiler's asset style line carries the look without the staging; never paste the scenic one on.
- Fix a contradiction in a prompt (a neutral ground and a location; a tight face and a full body) by changing the clause, never by stacking negatives.
- Record a failure's defect separately from its likely cause. Two failures of the same kind mean the input or the method changes; never send a third identical attempt.
Traps
- A sheet or a user's composite sent whole to a video model, with the panel named in words. No pointer works: cut the panel.
- Cutting before approval, or from a preview instead of the full picture.
- Guessing the grid instead of reading the boxes from the pixels.
- A sheet on a scenic background; two people on one sheet; faces too small to cut.
- Saying an asset is locked because the save came back
saved. - Asking the user to approve their own photo, or retouching it in place.