13 KiB
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 manwith--subject boyto 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. Defaultperson. Set toman/woman/boy/girlfor natural phrasing.gender— addsmale/female/non-binarybefore the subject. Set tounspecifiedto 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.