Skip to content

I12 — The same model across a campaign: every picture checked against her portrait

A brand that works with a model, or with a character created for it, needs her to be her in every picture: the same face, the same skin, the same hair, whatever the scene, the pose and the outfit. A generator given her portrait usually keeps her — but not always, and a campaign is judged on its weakest picture.

This workflow makes each scene of a campaign with the model’s portrait and checks her before the picture is used: Locate Subject finds her among the other people, Face Detect frames her face, Image Analysis compares it with her portrait on features, skin and hair, and Repeat Until Accepted makes the picture again, with what differed as the correction, when she is not kept.

The workflow in three stages, with the reference run. 1, the campaign: the brand’s model, one portrait of a character made with Madoo; three scenes — café terrace, city square at dusk, art gallery; each scene with its brief and her role. 2, one attempt, the body: the picture by Image Transform with her portrait, the brief and the correction, 5 credits; her and her face, Locate Subject from portrait and role, Face Detect and Crop; still her? Image Analysis rates features, skin and hair from 0 to 10 and says what differs, 0.01 credits; a dashed arrow labelled next attempt goes back to the picture. 3, until it is her, per scene, at most 3 attempts: café terrace 0.767, city square 0.833, art gallery 0.833, each accepted.

The exact graphs are the workflow (as a diagram) and its body, one attempt (as a diagram).

Input Who provides it Reference run
The model’s portrait the brand the model of I04: a character made with Madoo’s Text to Image, full figure, on a grey backdrop — no real person
The scenes the campaign brief, as a JSON list three scenes of an autumn coat campaign, each with its brief and her role in it
Scene Brief Her role
café terrace she sits at a café terrace with a friend, in a camel wool coat, holding a cup; late afternoon the woman in the camel wool coat holding a cup
city square she walks across a city square at dusk among other people, in a camel wool coat the woman in the camel wool coat walking in the foreground
art gallery she looks at a large painting among other visitors, in a camel wool coat, three-quarter view the woman in the camel wool coat looking at the painting
  • Find the person by portrait and role. Locate Subject receives her portrait as reference and her role as description. In the café scene her friend has the same long dark hair: the role — the woman in the camel coat holding a cup — says which one. Measured on ten scenes with four models: with the portrait alone they found her in all six scenes where she was kept, even among twelve passers-by; when she had been changed — thirty years older, or another woman — most of them pointed to the most similar other person. With her role too, all four found her in the four hardest scenes.

  • Judge what can be seen, not who she is. The judge does not ask “is this the same person?” — models hedge on identity, and a workflow should not do face recognition. It rates observable characteristics, each from 0 to 10:

    • features: the shape of the face, the eyes, eyebrows, nose, lips and jaw;
    • skin: freckles, moles, wrinkles and marks — none added, none missing;
    • hair: colour, length and style;

    and the attempt is accepted when she was found and features ≥ 6, skin ≥ 5, hair ≥ 3 (Calculate on the JSON answer). Hair has the lowest bar because a campaign may tie it back; a brand that fixes the hairstyle raises it.

  • The judge writes the correction. Its differences — “many freckles”, “pixie-cut silver hair instead of long dark hair” — go to Image Transform’s instructions on the next attempt, after “Keep her face, her skin and her hair exactly as in the reference photo”.

  • The faces are compared at their own scale. Face Detect frames the head in the person’s crop and in the portrait, Crop cuts both, and the judge sees two faces side by side, not two pictures.

Before the campaign the judge was measured on ten faces cut from generated scenes: six where the generator kept the model, four where one thing about her was changed on purpose.

Eleven faces in two rows, each labelled. The reference, then six faces from the campaign-style scenes — café, street, meeting, picnic, gym, wedding — all the same woman with long dark hair, laughing, smiling or in profile. Then four changed faces: the café face with short platinum-blonde hair, the meeting face with freckles, the picnic face thirty years older with grey hair and wrinkles, the wedding face of another woman with short red curly hair and freckles.

Face Features Skin Hair Accepted
six faithful faces 7–8 7–9 4–9 all six
short platinum hair 4 5 0 no
freckles added 8 2 8 no
thirty years older 2 0 2 no
another woman 4 1 0 no

With GPT-6 Luna, the default model of Image Analysis, at a hundredth of a credit a face; GPT-6.1 Sol gave the same verdicts on all ten. What did not work, on the same faces: Decide with a Model asked “the same person?” answered similar for most of the faithful faces; asked yes/no about skin and features it rejected most of them too. A rating with a named difference is the judge to use for people.

Left, the model’s portrait: a young woman with long dark hair in a white T-shirt and black trousers, full figure on grey. Then the three campaign pictures, all of the same woman in a camel wool coat: at a café terrace in low autumn sun, laughing with a friend who also has long dark hair; walking across a city square at dusk among passers-by, the street lights on; standing in an art gallery before a large abstract painting, other visitors behind.

Scene Score Disposition What the judge noted
café terrace 0.767 accepted, attempt 1 the hair’s part and texture differ; features hard to compare at that angle
city square 0.833 accepted, attempt 1 the hair a little darker and less full
art gallery 0.833 accepted, attempt 1 the hair’s parting, features slightly different

15 credits for the three scenes — 5 for each picture; Locate Subject and the judge cost a few hundredths. The worst case, about 50 credits for three scenes and three attempts each, was reserved when the list was read and released when the run ended. The reports are the step’s report output, one per scene. A second run of the same workflow gave three more accepted pictures, of the same woman, at the same cost.

The generator kept her in every scene, so no correction was needed: the step cost one attempt per scene, and every picture was checked before it was used. When a scene changes her, the judge names what changed and the next attempt receives it.

Use it with people who have agreed to it — the brand’s own models, under their contract — or with characters made for the purpose, like this one. It is built to keep a known person consistent across a brand’s own pictures, never to look for people in pictures of others. It does not identify anyone and gives no identity: only where a person stands in a picture, and how her face, skin and hair compare with a portrait you supplied.

  • Your model. One clear portrait, front-facing, even light; a second one in three-quarters helps Locate Subject.
  • Your campaign. The scenes are a JSON list of brief and role; the role names what tells her apart in the scene — the outfit, the place, what she holds.
  • What the brand fixes. Raise the hair bar when the hairstyle is part of the character; add Color Palette on her crop when the outfit’s colours are.
  • A product too. Put a Locate Subject for the product and its judge in the same body, and accept when both pass.
Terminal window
node madoo-install-example.mjs i12-campaign-model --api <your Madoo API URL> --key <key.json> --run --save campaign

The installer uploads the model’s portrait from I04’s folder, installs and publishes the body, then the workflow that calls it. A run makes three to nine pictures: about 15 credits, about 50 at most — the estimate is deferred until the list of scenes is read.

The model is a character made with Madoo’s Text to Image node for I04; the campaign pictures were made by Image Transform’s default model, for this example.

manifest · workflow · body · reports · the body as a graph