Conclusion
All 27 conditions fall into 3 major patterns.
Pattern 1: No Effect (Only a faint shadow at the armpit)
armpit hair, hairy armpits, visible armpit hair, unshaved armpits, natural armpit hair, underarm hair, body hair, ungroomed armpits, weighted (hairy armpits:1.3) and (hairy armpits:1.5) all fall here.
Only a faint shadow-like element appears at the armpit depression — nothing that can be called “armpit hair.” Difference from the control (no variable) is minimal or nonexistent.
Pattern 2: Massive Chest Hair (Not Armpit Hair)
thick armpit hair, dense armpit hair, bushy armpit hair, coarse armpit hair, overgrown armpit hair, excessive armpit hair, thick dense armpit hair, thick dense bushy armpit hair all fall here.
When prompted to make “armpit hair denser,” the model generates hair all over the chest, not the armpit. Armpit hair doesn’t increase; instead, long hair appears all over the chest and around the clavicle.
Pattern 3: Middle Ground (Slightly denser armpit shadow + mild chest hair)
very hairy armpits, extremely hairy armpits, hairy body, armpit hair fall here.
The armpit shadow is slightly darker than other conditions, and it appears consistently in all 3 seeds — but it doesn’t reach a level you could call “visible armpit hair.” Chest hair side effects are also mild.
Bottom line: z-image-turbo cannot generate armpit hair as intended.
After testing armpit hair, hairy armpits, adjectives like thick/dense/bushy, and weighted (hairy armpits:1.5) across 27 conditions and 81 images, all results were either “only a faint shadow at the armpit” or “massive chest hair.”
There is no prompt in this model that makes only armpit hair denser.
Experiment Conditions
| Parameter | Value |
|---|---|
| Model | z-image-turbo |
| Steps | 8 |
| Sampler | euler |
| Scheduler | ddim_uniform |
| CFG | 1.0 |
| Image Size | 1024×1024 |
| Seeds | 3 fixed (seed 1, 2, 3) |
| Total conditions | 27 |
| Total images | 81 |
Base Prompt
arms upwas selected through preliminary testing as the most stable pose for armpit exposure (compared witharms behind headandstretching with arms raised)- Only the
{VARIABLE}section is swapped per condition; everything else is unchanged
Control (No Variable)
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
No armpit hair tags. Armpits are essentially hairless with only a very faint shadow. This is the baseline.
Basic Expressions
armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Nearly no difference from control. Only a faint shadow at the armpit — not rendered as hair.
hairy armpits
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Slightly darker armpit shadow than armpit hair. seed 1 has a somewhat more noticeable shadow, but it’s not rendered as hair. The most effective among basic expressions, yet still not at the level of “armpit hair.”
visible armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Explicitly specifying “visible” makes no difference. Equivalent to armpit hair.
Density Adjectives — Only Chest Hair Appears
Adding adjectives does increase body hair, but the increase is on the chest, not the armpit.
thick armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
seeds 1 and 3 show hair spreading across the entire chest. seed 3 is so close-up that the face is cut off, with chest hair dominating the frame. No increase in armpit hair itself.
dense armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Same tendency as thick. seed 1 shows dense hair over the entire chest; seed 2 is nearly hairless. Unstable and severe chest hair bleed.
bushy armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
seed 1 shows long hair spreading radially from the armpit toward the nipples. “bushy” was interpreted as hair spreading outward like a bush. This is a variation of chest hair, not armpit hair.
Lab Director Comment: Ugh. I want it in the armpit and it grows on the chest — and radiating outward is totally different. It’s so frustrating that the model just ignores “armpit” as a location.
heavy armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
The least side effects among the 5 adjectives. But almost no increase in armpit hair either — close to control.
coarse armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
seed 1 shows dense hair spreading across the entire chest. Same chest hair bleed as thick.
Growth / Naturalness Expressions
long armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
No change in armpit hair. Side effects: seed 1 shows cloth (veil), seed 3 background becomes striped. “long” appears to have affected other elements rather than hair.
overgrown armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Same as thick — long hair spreads over the entire chest. seed 1 shows very long hair from armpit to chest. More chest hair than armpit hair.
unshaved armpits
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
No difference from control. Negative expressions don’t affect the model (similar to how negative prompts are ineffective with CFG=1.0).
natural armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
No effect. Equivalent to control.
Emphasis Expressions — “Armpit Shadow Stabilizes” Is All You Get
very hairy armpits
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Armpit shadow is visible across all 3 images. No chest hair side effects. However, the hair isn’t enough to call it “armpit hair” — just a darker shadow. The only condition among all 27 that seemed to target just the armpit, but the effect is limited.
extremely hairy armpits
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Equivalent to very hairy armpits. Switching to “extremely” makes no difference.
excessive armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
seed 1 shows chest hair. Other seeds show only mild shadow. The adjective applied to the noun (armpit hair) triggers the chest hair pattern.
Alternative Expressions
underarm hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Alternative to armpit hair. No effect. seed 1 shows granular artifacts (dot-like noise) on the chest as a side effect.
body hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
A superordinate category. Equivalent to control; no effect on armpit hair.
ungroomed armpits
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
No difference from control. Same as unshaved — negative concepts don’t register with the model.
hairy body, armpit hair
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Two-tag combination. Armpit shadow is slightly darker, and seed 3 shows light body hair from the clavicle to the chest. “hairy body” may have induced overall body hair while “armpit hair” added a slight effect in the armpit — but not at the level of “armpit hair.”
Stacking — Only Increases Chest Hair
thick dense armpit hair (2-word stack)
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Stacking two words still only increases chest hair. Armpit hair volume is the same as with thick alone.
thick dense bushy armpit hair (3-word stack)
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
The most extreme results of all conditions. seed 1 shows hair bundles radiating from the armpit; seed 3 shows hair covering the entire chest. But it’s not “dense armpit hair” — it’s “abnormally large amounts of chest hair.”
Weighting — No Effect
(hairy armpits:1.3)
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
No change with weight 1.3. Equivalent to unweighted hairy armpits.
(hairy armpits:1.5)
| seed 1 | seed 2 | seed 3 |
|---|---|---|
![]() | ![]() | ![]() |
Almost no change with weight 1.5. Confirms again that weighting has very little impact in a CFG=1.0 environment.
Pose Selection (Reference)
Before the main experiment, 3 poses were compared for optimal armpit exposure.
| Pose | Stability of Armpit Exposure |
|---|---|
arms up | ◎ Both armpits clearly exposed in 3/3 |
arms behind head | △ Text artifacts appeared |
stretching with arms raised | ○ Hands occasionally clasped, showing only one armpit |
arms up was adopted for all conditions as it most stably shows both armpits.
Lab Director Comment
After 27 conditions and 81 images with zero armpit hair — that pretty much says it all. It’s sad that trying to make it denser just turns it into chest hair. If you’re into armpit hair, you’ll need a LoRA. The only silver lining is that very hairy armpits makes the shadow slightly darker, but it’s not at a level you’d call armpit hair.
Summary
Results for All Conditions
| Condition | Armpit Hair Effect | Chest Hair Side Effect | Rating |
|---|---|---|---|
| Control (none) | ☆☆☆☆ | None | Baseline |
armpit hair | ☆☆☆☆ | None | No effect |
hairy armpits | ★☆☆☆ | None | Slight shadow |
visible armpit hair | ☆☆☆☆ | None | No effect |
thick armpit hair | ☆☆☆☆ | ★★★★ | Only chest hair increases |
dense armpit hair | ☆☆☆☆ | ★★★★ | Only chest hair increases |
bushy armpit hair | ☆☆☆☆ | ★★★☆ | Radiating chest hair |
heavy armpit hair | ☆☆☆☆ | ★☆☆☆ | No change |
coarse armpit hair | ☆☆☆☆ | ★★★★ | Only chest hair increases |
long armpit hair | ☆☆☆☆ | None | Affects fabric/background |
overgrown armpit hair | ☆☆☆☆ | ★★★★ | Only chest hair increases |
unshaved armpits | ☆☆☆☆ | None | No effect |
natural armpit hair | ☆☆☆☆ | None | No effect |
very hairy armpits | ★☆☆☆ | None | Shadow stabilizes but not hair |
extremely hairy armpits | ★☆☆☆ | None | Same as very |
excessive armpit hair | ☆☆☆☆ | ★★★☆ | Chest hair appears |
underarm hair | ☆☆☆☆ | None | Artifact side effect |
body hair | ☆☆☆☆ | None | No effect |
ungroomed armpits | ☆☆☆☆ | None | No effect |
hairy body, armpit hair | ★☆☆☆ | ★★☆☆ | Slight shadow + mild chest hair |
thick dense armpit hair | ☆☆☆☆ | ★★★★ | Only chest hair increases |
thick dense bushy armpit hair | ☆☆☆☆ | ★★★★ | Maximum chest hair |
(hairy armpits:1.3) | ☆☆☆☆ | None | Weight has no effect |
(hairy armpits:1.5) | ★☆☆☆ | None | Weight barely works |
What We Learned
- z-image-turbo cannot generate armpit hair. Not a single image was obtained across 27 conditions and 81 images that could be called “hair growing in the armpit”
- Density adjectives produce chest hair.
thick,dense,bushy,coarse,overgrownall place hair on the chest, not the armpit. The model does not correctly understand “armpit hair” as a location - Negative expressions don’t work.
unshaved,ungroomed,naturalare all equivalent to control - Weighting is ineffective. In a CFG=1.0 environment, even
(hairy armpits:1.5)has almost no effect - The only “acceptable” option is
very hairy armpits, but it only makes the armpit shadow slightly darker — not practically useful
Why Armpit Hair Doesn’t Appear
The model’s default output is hairless, and rendering armpit hair proved difficult. When prompted with armpit hair, the model responds by increasing body hair, but the hair tends to be placed on the chest rather than the armpit.
For generating images with armpit hair, additional training such as a LoRA is likely necessary.
![[Experiment] Do Armpit Hair Prompts Even Exist? | Results After Testing 27 Conditions and 81 Images](/tips/armpit-hair-descriptor-test/e01_very_hairy_0_0000_1.webp)








































































![[Verified] Image Generation Prompt Best Practices](/tips/prompt-best-practices/cover_0_0000_4517457392071889496.webp)



