Files

13 KiB
Raw Permalink Blame History

Prompt Reference

This document lists every prompt the AgePromptBuilder and AgeRangeBatch nodes produce, so you can see what's going into Flux / SDXL and customize where needed.

The core insight: Flux responds far better to concrete physical descriptors than to age numbers. Compare:

Naive What AgeShift does
a 70 year old man a 70 year old man, late sixties, deep facial wrinkles, gray or white hair often thinning, sagging jowls, age spots, looser skin
a 5 year old child a 5 year old male boy, young toddler, round face, big bright eyes, smooth soft skin, baby teeth, innocent expression

The numeric age is kept (for cases where the model has been trained on "X year old" phrasing) but the concrete features carry most of the signal.


How the prompt is assembled

AgePromptBuilder joins these parts in order:

positive = subject + features(age) + style + extra_positive
negative = negative_base + anti_age_drift(age)

Where:

  • subject: a {target_age} year old {gender }{subject_noun} — e.g. a 25 year old male man
  • features(age): looked up from the table below
  • style: user-controllable, defaults to photorealistic portrait, sharp focus, natural studio lighting, neutral background
  • extra_positive: user-controllable, defaults to same identity, same facial structure, same eye shape
  • negative_base: anti-cartoon/blur boilerplate
  • anti_age_drift: contextual anti-prompts depending on the target band (see below)

Age → feature mapping (full)

The internal age_features(age: int) -> str function picks one of 20 ranges:

Age range Band Features
0–2 infant infant, round soft chubby face, large innocent eyes, very smooth skin, tiny features, fine wispy hair
3–5 child young toddler, round face, big bright eyes, smooth soft skin, baby teeth, innocent expression
6–9 child young child, round youthful face, bright clear eyes, perfectly smooth skin, no facial hair, soft fine hair
10–12 child pre-teen child, slightly more defined features, clear smooth skin, bright eyes, youthful softness, full thick hair
13–15 teenager early teenager, transitional features, fresh smooth skin, occasional minor blemishes, youthful face shape, thick hair
16–19 teenager late teenager, defined youthful features, smooth clear skin, full thick hair, sharp jawline beginning to form, no wrinkles
20–24 young adult young adult in early twenties, smooth taut skin, fully developed features, full thick hair, vibrant complexion, no visible wrinkles
25–29 young adult young adult in late twenties, smooth healthy skin, mature defined features, full hair, very faint laugh lines only when smiling
30–34 adult adult in early thirties, slightly more mature skin, very subtle fine lines around eyes, full hair, healthy clear complexion
35–39 adult adult in late thirties, mature features, subtle fine lines around eyes and forehead, slight nasolabial folds beginning, full hair perhaps thinning slightly
40–44 adult early middle-aged adult, fine wrinkles around eyes and forehead, defined nasolabial folds, possibly slight graying at temples
45–49 middle-aged middle-aged adult, visible fine wrinkles, deeper nasolabial folds, gray strands appearing in hair, slight skin texture changes
50–54 middle-aged early fifties, clear wrinkles around eyes and mouth, salt-and-pepper hair, slight jowl formation, mature skin texture
55–59 middle-aged late fifties, pronounced wrinkles, mostly graying hair, jowls forming, mature skin with some age spots beginning
60–64 senior early sixties, deep wrinkles, predominantly gray hair possibly receding, sagging skin around jaw, visible age spots
65–69 senior late sixties, deep facial wrinkles, gray or white hair often thinning, sagging jowls, age spots, looser skin
70–74 senior early seventies, deeply wrinkled face, white or thin gray hair, pronounced sagging skin, age spots, hollowing around eyes
75–79 elderly late seventies, very deep wrinkles all over face, thin white hair, significantly sagging skin, prominent age spots, frail features
80–84 elderly early eighties, profoundly weathered face, sparse white hair, very loose sagging skin, hollow cheeks, frail elderly features
85+ elderly very elderly, deeply weathered and wrinkled face, sparse thin white hair, extremely loose papery skin, hollow features, fragile appearance

Anti-drift negative prompts

When include_negative_age_drift=True (default), the builder appends contextual anti-prompts based on the target band:

Target band Appended anti-prompts
young adult, adult, middle-aged, senior, elderly baby face, infant features, childish proportions
middle-aged, senior, elderly teenage features, youthful smooth skin
infant, child, teenager, young adult deep wrinkles, gray hair, age spots, sagging skin
infant, child facial hair, beard, mustache, adult features

This stops Flux from regressing toward whatever age the source photo shows. Without it, a source photo of a 40-year-old tends to leak adult features into the "age 5" generation.


Full example prompts at key ages

All examples below use subject="man", gender="male", and the default style.

age = 5

Positive:

a 5 year old male man, young toddler, round face, big bright eyes, smooth soft skin, baby teeth, innocent expression, photorealistic portrait, sharp focus, natural studio lighting, neutral background, same identity, same facial structure, same eye shape

Negative:

cartoon, illustration, painting, anime, 3d render, deformed, distorted, blurry, low quality, plastic skin, extra fingers, watermark, text, deep wrinkles, gray hair, age spots, sagging skin, facial hair, beard, mustache, adult features

💡 For child generation, replace --subject man with --subject boy to avoid the awkward "male man" phrasing.

age = 15

Positive:

a 15 year old male man, early teenager, transitional features, fresh smooth skin, occasional minor blemishes, youthful face shape, thick hair, photorealistic portrait, sharp focus, natural studio lighting, neutral background, same identity, same facial structure, same eye shape

Negative:

cartoon, illustration, painting, anime, 3d render, deformed, distorted, blurry, low quality, plastic skin, extra fingers, watermark, text, deep wrinkles, gray hair, age spots, sagging skin

age = 25

Positive:

a 25 year old male man, young adult in late twenties, smooth healthy skin, mature defined features, full hair, very faint laugh lines only when smiling, photorealistic portrait, sharp focus, natural studio lighting, neutral background, same identity, same facial structure, same eye shape

Negative:

cartoon, illustration, painting, anime, 3d render, deformed, distorted, blurry, low quality, plastic skin, extra fingers, watermark, text, baby face, infant features, childish proportions, deep wrinkles, gray hair, age spots, sagging skin

age = 45

Positive:

a 45 year old male man, middle-aged adult, visible fine wrinkles, deeper nasolabial folds, gray strands appearing in hair, slight skin texture changes, photorealistic portrait, sharp focus, natural studio lighting, neutral background, same identity, same facial structure, same eye shape

Negative:

cartoon, illustration, painting, anime, 3d render, deformed, distorted, blurry, low quality, plastic skin, extra fingers, watermark, text, baby face, infant features, childish proportions, teenage features, youthful smooth skin

age = 65

Positive:

a 65 year old male man, late sixties, deep facial wrinkles, gray or white hair often thinning, sagging jowls, age spots, looser skin, photorealistic portrait, sharp focus, natural studio lighting, neutral background, same identity, same facial structure, same eye shape

Negative:

cartoon, illustration, painting, anime, 3d render, deformed, distorted, blurry, low quality, plastic skin, extra fingers, watermark, text, baby face, infant features, childish proportions, teenage features, youthful smooth skin

age = 80

Positive:

a 80 year old male man, early eighties, profoundly weathered face, sparse white hair, very loose sagging skin, hollow cheeks, frail elderly features, photorealistic portrait, sharp focus, natural studio lighting, neutral background, same identity, same facial structure, same eye shape

Negative:

cartoon, illustration, painting, anime, 3d render, deformed, distorted, blurry, low quality, plastic skin, extra fingers, watermark, text, baby face, infant features, childish proportions, teenage features, youthful smooth skin

AgeRangeBatch output (JSONL)

Calling AgeRangeBatch with ages_csv="5,15,25,45,65", subject="man", gender="male" produces:

{"age": 5, "band": "child", "prompt": "a 5 year old male man, young toddler, round face, big bright eyes, smooth soft skin, baby teeth, innocent expression, photorealistic portrait, sharp focus, natural lighting, same identity"}
{"age": 15, "band": "teenager", "prompt": "a 15 year old male man, early teenager, transitional features, fresh smooth skin, occasional minor blemishes, youthful face shape, thick hair, photorealistic portrait, sharp focus, natural lighting, same identity"}
{"age": 25, "band": "young adult", "prompt": "a 25 year old male man, young adult in late twenties, smooth healthy skin, mature defined features, full hair, very faint laugh lines only when smiling, photorealistic portrait, sharp focus, natural lighting, same identity"}
{"age": 45, "band": "adult", "prompt": "a 45 year old male man, middle-aged adult, visible fine wrinkles, deeper nasolabial folds, gray strands appearing in hair, slight skin texture changes, photorealistic portrait, sharp focus, natural lighting, same identity"}
{"age": 65, "band": "senior", "prompt": "a 65 year old male man, late sixties, deep facial wrinkles, gray or white hair often thinning, sagging jowls, age spots, looser skin, photorealistic portrait, sharp focus, natural lighting, same identity"}

Consumed by the CLI (age_shift_cli.py) to loop one Flux generation per age.


Customizing the prompts

Per-call override (no code change)

The AgePromptBuilder node exposes these widgets, all overridable from the UI:

  • subject — the noun. Default person. Set to man / woman / boy / girl for natural phrasing.
  • gender — adds male / female / non-binary before the subject. Set to unspecified to skip.
  • style — appended after features. Customize for cinematic / vintage / etc.
  • extra_positive — identity-preserving anchors.
  • negative_base — boilerplate negatives.
  • include_negative_age_drift — toggle the contextual anti-prompts.

Permanent override (edit code)

Edit nodes/_types.py, the age_features() function. Each if-branch returns the feature string for that age window. Add new branches or rewrite existing ones — no other code touches these strings.

Custom subject nouns

When generating across a wide age range, no single subject noun fits all ages (man is wrong for age 5, boy is wrong for age 50). The CLI keeps it as one knob for simplicity; for production runs, call the node per-age with the appropriate noun:

Age Suggested subject Suggested gender
0–12 boy / girl male / female (or unspecified)
13–19 teenager male / female
20–60 man / woman male / female
60+ elderly man / elderly woman male / female

Why these specific features?

The features were chosen based on what Flux 1 dev actually responds to in testing — not a generic dermatology textbook. Notably:

  • Nasolabial folds are mentioned in the 35+ ranges because Flux reliably draws them when prompted, and they're a strong age signal.
  • "Gray strands appearing in hair" at 45–49 vs "salt-and-pepper hair" at 50–54 vs "mostly graying hair" at 55–59 — Flux responds to these specific phrasings differently and produces visibly distinct outputs.
  • "Sparse white hair" vs "thin white hair" — the former produces more receded hairlines, the latter more even thinning.
  • The anti-drift negatives are critical for child generation when the source is an adult; without them, the model produces small adults with child-sized bodies but adult facial proportions.

If you find a phrasing that consistently produces better results for a specific age range, open a PR with before/after comparisons.