SuperAPI AI Directory

photoreal

Design & creation

View repository

Updated 10-16 05:04

About this skill

Realistic photo prompt

What you are up against

Image models are drawn toward what was treated as a 'well-taken photo' in their training data — ads, editorials, stock images, retouched profiles. So if you draw a person with no instructions, this is what comes out.

Flawless skin, three-point lighting, dead-center composition, perfect left-right symmetry, a catalog smile, a frontal gaze, big glassy eyes.

Each one on its own is 'well drawn', but when all seven come together in one image, people immediately recognize AI. That is because this combination does not exist in real photographs.

So a sense of realism is not gained by adding detail, but by offsetting this default pull. The purpose of the prompt is not "draw it better" but "draw it less perfectly". Every instruction in this skill is for that offsetting.

Offsetting has a direction. Too little and you get an advertising photo; too much and you get a failed photo. The balance point is noted for each layer below.

Work order

  1. Decide the subject and situation (who, where, in the middle of doing what)
  2. Select only what you need from the 5 layers below and assemble the prompt
  3. scripts/build_prompt.py to generate N variations — realism does not come out in one shot, so generating 3–5 in parallel is the default
  4. codex-image generate with the skill
  5. Check with the post-generation checkbelow, and regenerate by reinforcing only the items that were flagged

Five layers

The layers get more detailed as you go down. The top two layers alone improve things considerably, and the more the face fills the frame, the more important the lower layers become.

L1 — Source: who took it and why

This is the most effective layer. The single premise that "this photo is not an ad but a record of everyday life" pulls lighting, composition, expression, and image quality along all at once.

A natural photo taken with a smartphone. Not an ad model shoot, but a shot an ordinary person might take in daily life and post to SNS. The texture of a phone camera snapshot, not a high-performance camera.

If you can use only one sentence, use this layer.

L2 — Light and image quality: prevent things from being too clean

Shot only with natural light coming through a window or the lighting already present in that place. No studio lighting. Leave slight camera shake, the noise characteristic of phone cameras, and a mild roughness of resolution. Suppress CG-like textures, excessive retouching, and unnatural gloss.

If you limit the light to 'what is already there', shadows fall in one direction and color temperatures mix. Studio lighting erases shadows, and a face without shadows is a major axis of the AI look.

When using backlight, add one more sentence. Even when asked for backlight, the model habitually brightens the front of the face. If you specify "do not artificially brighten the shadows on the front of the face," you get true backlight where only the back of the head and the tips of stray hairs glow. When this works, the sense of realism rises greatly.

Be careful when requesting bokeh balls in night scenes. Expressions like 'out-of-focus sign lights' or 'bokeh' pull the model toward film stills. L1's "phone snap" gets pushed aside, and the background blur becomes a depth impossible for a phone. In distant night scenes, either remove bokeh balls entirely or pin down the degree, like "shallow blur at phone camera level."

L3 — Composition and moment: making it look like a person took it

Natural framing that doesn't perfectly refine the composition but leaves a slight tilt or off-center margin. Not a pose made for shooting, but a moment caught by chance in the middle of everyday life. Not a fixed straight gaze at the camera, but a slightly averted gaze.

'A moment caught by chance' changes even the posture of hands and body. When you erase the pose, arms are placed awkwardly and wrinkles form in clothing — that is reality.

Obstructions blocking the frame also belong here. The shoulder of the person in front, the backrest of the seat ahead, a window frame — something is always in the way in real photos. Adding one creates the sense that "the person who took it was there in that spot."

L4 — Anatomy: face, skin, hands, hair

If the face takes up more than 1/4 of the screen, it almost always fails without this layer.

  • Skeleton: Contours, bone structure, eyes, eyebrows, nose, and lip placement with a realistic and harmonious balance
  • 눈: Do not enlarge the pupils; naturally retain the amount of sclera, left-right differences, and eyelid thickness
  • Expression: Do not make the smile excessive; keep it to subtle movements of the mouth corners and eye area
  • Asymmetry: Very subtle left-right differences in eyebrows, eye area, and mouth corners. Perfect symmetry forbidden
  • Skin: Do not make it evenly smooth; appropriately retain pores, fine hairs, faint redness, and natural shading
  • Hair: Do not arrange every strand evenly; retain scattered hair, stray hairs, and the irregularity of tied bunches
  • 손: Natural number of fingers, joints, lengths, and ways of overlapping. Also realistic ways of gripping objects

Hands must be instructed twice. Anatomy and motion logic are separate issues. If you only write "natural number of fingers and joints," the fingers are perfect but you get a pose with fingers spread wide in front of a blade, which in reality would cause injury. If the hands are doing something, the shape of the hand performing that actionis written separately — "the hand holding the garlic has fingers bent and upright," "the index finger hooks on the cup handle."

L5 — Upper limit of beauty: how far to make it pretty

Without this layer, the instructions above are interpreted as "draw it ugly," and the attractiveness collapses. It must be stated that realism and attractiveness do not conflict.

Maintain beauty but do not perfect the face and skin. Prioritize an attractiveness that could exist in reality while retaining cleanliness, neatness, and friendliness. Above perfection, prioritize a sense of real existence, a sense of lived life, and natural imperfection.

Placing this sentence at the end balances the preceding penalty instructions. It is the single last line with the greatest effect in practice.

However, this layer fails in both directions. If omitted, it becomes shabby, and if written strongly, it returns to an actor's face. If words like "beauty," "attractive," and "cute" are used strongly, the model ignores L4's flaw instructions and reverts toward a pictorial — if you ordered pores but get smooth skin, suspect this. Adjust the strength in three levels.

Strength Phrase 쓸 곳
약 Maintain a likable impression but Default. Most everyday cuts
중 Attractive but do not perfect Cuts where the person is the protagonist
None (Only a sense of real existence, without beauty phrases) Elderly people, documentaries, close-ups of hands and objects

When specifying age

L4's skin and wrinkle instructions push the age upward. Ordering mid-20s and adding pores, fine hairs, and redness produces early 30s, and ordering late 30s produces 40s. This is repeatedly observed in actual measurements.

If age is important for the cut, add one more line.

Must look the specified age — so that skin texture instructions do not make the person look older than their actual age.

Or choose the type of flaw to match the age. For the 20s, oiliness, pores, acne marks, and fine hairs instead of wrinkles, and for 40s and above, wrinkles and pigmentation. Ordering crow's feet in the 20s by itself raises the age.

Cuts with multiple people

Single-person instructions must not be used as is. Applying one "averted gaze" to multiple people turns it into a staged photo where everyone looks at the same place. Handle four things separately.

  • Split gazes by the number of people — one looks at the whiteboard, one at their own laptop, one at the speaker's face, one downward as if lost in thought. And "no one looks at the camera"
  • Specify the people in the back — "Draw the faces and hands of the people in the back clearly as well." If omitted, the background people dissolve
  • Give variation to clothing — If not given, everyone wears clothes in the same tone. Make at least one of color, material, or outfit mismatch
  • Make poses all different — one with arms crossed, one resting their chin, one leaning back in a chair

L5 is especially careful here. If you use "pretty but" for a mixed-gender group, the sentence becomes awkward. Use the 'weak' intensity from the table above.

Convert negative sentences into positive ones

This is the most practical rule in this skill. Image models often let "don't do ~" slip through. If you write "don't make it smooth," only the concept of 'smoothness' remains and the negation disappears, sometimes making it even smoother.

Instead of prohibiting, point to what to keep.

Negative sentences that slip through easily Positive sentences that work well
Don't make the skin smooth Skin with visible pores, fine hairs, and faint redness
Don't make it symmetrical Left eyebrow very slightly higher than the right
Don't pose Mid-motion, having paused while setting down a cup and looking to the side
Don't look straight ahead Gaze slightly off-camera toward the window
Don't use perfect composition Horizon tilted 1–2 degrees and subject shifted to the left of the frame
Don't retouch The original left as-is in the gallery with no filter

There is no need to eliminate negative sentences entirely. However, important items must always have a positive counterpart alongside them.

Assembly template

[피사체] [상황·행동] [장소·시간]
[L1 출처] [L2 빛·화질] [L3 구도·순간]
[L4 해부학 — 필요한 항목만] [L5 미의 상한선]

Example — completed prompt

The moment a Korean woman in her late twenties sits at a low table by the window of a studio apartment, having paused while setting down an iced coffee cup, looking out the window. Late afternoon, shot with only natural light coming through the window. Not an advertising shoot, but a snapshot a friend might casually take with a phone and post on social media. Framing where the horizon is slightly tilted and the subject is shifted to the left of the frame. A sidelong gaze that does not look straight at the camera, an expression with only the corners of the mouth slightly raised. Skin retaining pores, fine hairs, and faint redness beside the nose, a few strands of loose hair falling onto the forehead, a subtle asymmetry with the left eyebrow very slightly higher. A hand holding the cup with the index finger hooked through the handle. Phone-camera-specific noise and slight handshake, no excessive retouching or gloss. Someone who maintains a likable impression but is not perfect, looking like they are in their late twenties.

This length is about right. If you write it longer, the model starts letting the earlier parts slip.

Prompt generation script

Typing the above sentences by hand every time causes omissions, and applying variations during batch generation is cumbersome. Use a script.

python3 ~/.claude/skills/photoreal/scripts/build_prompt.py \
  --subject "20대 후반 한국인 여성" \
  --scene cafe \
  --n 4
  • --scene : cafe home street commute park restaurant office night custom
  • --n : number of variations. See What do the variations change reference
  • --level : light(L1+L2) / standard(default, L1–L3+L5) / full(전 층)
  • --shot : other(default, taken by someone else) / selfie(selfie)
  • --group N : a cut featuring N people. Automatically inserts gaze distribution, background figures, and outfit variation
  • --charm : plain(default) / attractive / none — L5 intensity
  • --age-lock / --no-age-lock : age-locking sentence. --level full is on by default
  • --lang : ko(default) / en / both
  • --emit-batch <dir> : codex-image Also outputs the batch script command line

--scene custom if --situation "..." put the situation in directly. If you repeat it several times, a different situation comes back for each variation.

What do variations change

The reason for drawing 3–5 images is to choose among them. However, if you change only the lighting, all N images come out similar. If you lock in the same situation and only rotate the light, the character placement and pose stay the same, so there is nothing to choose from.

There are four axes to change, and the higher up they are, the more the results diverge.

  1. Situation·action — what they are in the middle of doing. This changes the most
  2. Camera position — from beside them / standing and looking down / from the doorway
  3. Distance — face close-up / upper body / full body
  4. Lighting — changes the least

Preset scenes (cafe etc.) automatically rotate the situation. custom When using --situation pass in N of them, or edit the prompt directly to set the situation differently.

Checking after generation

Photorealistic prompts do not pass in one go. The default workflow is to draw 3–5 images in parallel and choose among them. Check the drawn images in the order below. The higher up, the more often it breaks.

  1. Hand anatomy — number of fingers, joint direction, length. The most common failure
  2. Logic of the hand's action — is it a pose in which that hand could actually do that action? Even if the count is right, it trips here
  3. Pupil highlights — if the left and right reflected light is identical down to the pixel, it is CG. The position or shape must differ slightly
  4. Text — signs, cup logos, prints on clothes. Smudged text is an instant AI tell. The quick fix is to remove props with text from the prompt
  5. Age — does it look like the specified age? If it was pushed up, see the above When specifying age reference
  6. Skin uniformity — if the texture of the forehead, cheeks, and chin is all the same, it fails. There must be color differences around the nose and on the cheeks
  7. Hair boundaries — behind the ears, the part resting on the shoulders, the ends of stray hairs. If it clumps as if painted with a brush, it fails
  8. Background people — whether the faces or legs of people behind are melting
  9. Shadow direction — whether the shadows of the face, body, and props are explained by a single light source
  10. Is the texture a phone photo? — if the background blur has a depth a phone cannot produce, it has crossed over into a movie still
  11. Teeth — if it is a smiling shot, the count and spacing

If any item is caught, reinforce only that item with a positive statementand regenerate. Do not rewrite the entire prompt. If the prompt changes wholesale, other elements you liked are lost too.

Common mistakes

  • Putting in all 20 instructions — If there are too many defect instructions, it becomes a 'noisy, blurry photo' and the appeal collapses. Use only the layers you need. In particular, there is no reason to put all the L4 face instructions into full-body or long-shot cuts.
  • Omitting L5 or using it strongly — If you omit it, it looks shabby, and if you use it strongly, it becomes the actor's face. See the intensity table above.
  • Overdoing image-quality instructions — If you go as far as "severe noise" or "shaky photo," it becomes not realism but a failed photo. Always attach degree adverbs such as 'light' or 'slight'.
  • Listing camera specs — "85mm f/1.4, ISO 100, Sony A7" actually pulls it toward a fashion shoot. If you want a phone snap, do not write specs. The 'bokeh' of night scenes is the same trap.
  • Judging from one image — Even with the same prompt, there is large variation from image to image. Before fixing the prompt, generate a few more images with the same prompt.
  • Giving variation only through lighting — All N images become similar. See What does variation change? above.
  • Using only negative statements — See the correspondence table above.

Situations that work well

These are situations where realism comes through especially well. If the user has not specified a situation, choosing from here lowers the chance of failure.

  • Backlit close-up — If you do not fill in the facial shadows, it is instantly realistic
  • Light source coming from below — Phone screen, table lamp. Light that AI almost never draws
  • Sweat, flushing, swollen eyes — Because it is the exact opposite of flawless skin, the cancellation effect is strong
  • The moment a laugh bursts out — The eyes close and the face becomes asymmetrical, so a catalog smile cannot be made
  • Beyond glass — When raindrops, the outside of the window, and indoor reflections overlap at different focal points, it looks optically real
  • Obstructions that block the frame — The shoulder of the person in front, the backrest of the seat in front
  • A face that has just woken up — Pillow marks, pressed hair. Use together with L5 'weak'

더 볼 것

  • references/directives.md — Full text of the 20 original instructions, classification by layer, each effect, and positive-statement/English equivalents. When a particular item does not work, try looking for another expression
  • references/scenes.md — Country-specific details (Korea, Japan, United States) and situation presets. When drawing a person with a specified country, this keeps clothing, hair, background, and props from becoming vague
  • scripts/build_prompt.py — Prompt assembler

When drawing people

Do not use it to reproduce the face of a real person. This skill is for drawing fictional people realistically, and a request to make someone look like a specific real person is a different matter. Do not use generated results to present them as photos of a real person (fake profiles, impersonation), and since the results are hard to distinguish from real photos, if the user has not stated the purpose, it is better to check once.