FLUX Prompt Terms for Eye Contact and Looking Away
Master FLUX gaze control with the right positive and negative prompts, IPAdapter tuning, and a reusable scaffold that works across models.
On this page
FLUX Prompt Terms for Eye Contact and Looking Away
TL;DR
- Use "looking at photographer" as your positive prompt term for FLUX — avoid the word "eyecontact" and all its synonyms in the positive prompt.
- Build your negative prompt with two layers: a universal gaze-suppression set (Blinking, winking, staring-stares-stare, gazing-gazes-gaze, distracted-distraction, sleeping-unconcious-drunk, eyecontact) plus a composition set (Unaware, shuteye, candid, distracted, spycamera, cctv, facing away).
- Separate your prompt into modular layers — subject, pose, lighting, style, quality — so you can swap gaze terms without rebuilding the entire prompt.
How Does FLUX Handle Gaze Compared to SDXL and Pony?
FLUX, SDXL, Pony, and Illustrious all respond to gaze prompting, but each model has distinct preferences. FLUX and SDXL perform best with the phrase "looking at photographer" in the positive prompt, while Pony and Illustrious models may only need "looking-at-viewer" to achieve the same effect. SDXL also benefits from adding "solo" to the positive prompt when targeting a single subject — community-reported testing by c666d found this greatly increased success rates. FLUX does not share this documented boost, though the isolation principle may still apply.
Multi-character scenes are problematic across all models. When you include "eyecontact" in a prompt with more than one person, the result tends to shift toward subjects looking at each other rather than at the viewer. Community-reported tests show this behavior is consistent regardless of which architecture you use.
Pony and Illustrious models understand "winking" to some degree, which gives you an additional negative-prompt lever that FLUX lacks. The c666d article explicitly notes that if "looking-at-viewer" does not work on Pony or Illustrious, the issue likely lies with the base model itself rather than the prompt structure.
Core Prompt Terms That Control Gaze in FLUX
For FLUX, the effective positive prompt is straightforward: "looking at photographer." This single phrase replaces the more literal "eyecontact" terms that fail across all models. The c666d article, which tested across 1.5, 2.0, 2.1, SDXL, 3.0, 3.5, and Flux, consistently found that photographic framing language outperforms direct gaze descriptions.
The universal negative prompt set works across every model family:
| Negative Term | What It Suppresses | Applicable Models |
|---|---|---|
| Blinking | Closed or partially closed eyes | All |
| Winking | Asymmetric eye closure | All |
| staring-stares-stare | Fixed, unnatural gaze | All |
| gazing-gazes-gaze | Distant or unfocused stare | All |
| distracted-distraction | Eyes off-camera | All |
| sleeping-unconcious-drunk | Closed eyes, head tilt | All |
| eyecontact | Counterproductive literal term | All |
Source: civitai.com/articles/5065
FLUX benefits from an additional composition-focused negative layer:
| Negative Term | What It Suppresses |
|---|---|
| Unaware | Subject not engaged with camera |
| shuteye | Closed eyes |
| candid | Unposed, off-angle |
| distracted | Eyes away from viewer |
| spycamera | Surveillance framing |
| cctv | Security-camera angle |
| facing away | Subject turned from viewer |
These terms address framing contexts where the model defaults to non-engaged gaze. "Spycamera" and "cctv" describe surveillance perspectives where the subject has no reason to acknowledge the camera. "Candid" and "facing away" explicitly describe non-posed or back-turned compositions.
For multi-character scenes, add crowd-control negatives: team, squad, group, party, mass, crowd. These reduce the model's tendency to create inter-character gaze patterns.
Why Does FLUX Resist Some Gaze Framings?
The c666d article explicitly avoids the word "eyecontact" and all synonyms (POV, POV-eyecontact, looking-at-viewer, looking-back) in negative prompts. The author treats these terms as counterproductive — using them in the negative actually degrades the eye-contact effect in the positive prompt. No official FLUX documentation explains this behavior; the finding comes entirely from community testing.
The "looking at photographer" phrasing works because FLUX's T5-XXL text encoder — which processes up to 512 tokens of natural language — has been trained on photographic captions where subjects are described in relation to the camera operator. This gives the phrase a direct semantic mapping that "eyecontact" lacks. FLUX's dual-encoder architecture (CLIP-L plus T5-XXL, confirmed on the ComfyUI Flux examples page) processes both natural language and CLIP embeddings, but the T5 side dominates for photorealistic subject descriptions.
Using ControlNet and IPAdapter for Gaze Composition
While prompt terms handle the semantic layer of gaze, ControlNet and IPAdapter offer structural control. The stonelax article documents a three-node approach — ControlNet for composition, IPAdapter for style, Img2Img for color consistency — and identifies an "impossible triangle" where raising one node's weight degrades the others.
For gaze specifically, the practical guidance is:
| Node | Recommended Weight | Role in Gaze Control | Source |
|---|---|---|---|
| ControlNet (Canny or Depth) | Above 0.7 | Maintains facial composition and head angle | stonelax, civitai.com/articles/6970 |
| IPAdapter | Below 0.5 | Style transfer; weak for gaze, affects texture | stonelax, civitai.com/articles/6970 |
| Img2Img | Around 0.1 (max 0.2) | Color and lighting consistency | stonelax, civitai.com/articles/6970 |
ControlNet with Canny or Depth extraction locks the head angle and eye position from a reference image. This is the most reliable way to enforce a specific gaze direction in FLUX when prompt terms alone are insufficient. The InstantX and Shakker Labs community ControlNet models for FLUX, documented on the ComfyUI Flux examples page, support this workflow.
IPAdapter weight above 0.5 introduces noise without meaningful gaze improvement. Since IPA primarily transfers texture and color rather than spatial layout, it cannot reliably reposition eyes or redirect gaze. Keep it below 0.5 and compensate with prompt matching for any style adjustments.
Img2Img at 0.1 preserves composition while aligning color and lighting with a reference. Exceeding 0.2 begins shifting the entire composition, which destroys any carefully prompted gaze direction. At this weight, the Img2Img pass dominates over both ControlNet and your text prompt.
Building a Reusable Prompt Scaffold
The Rhix article describes a modular prompt architecture that separates concerns into distinct layers. This structure applies directly to gaze control because it isolates the pose layer (where "looking at photographer" lives) from lighting, style, and quality layers.
Scaffold structure:
[Main Subject], [Pose], [Lighting & Background], [Style Descriptors], [Quality Boosts], [Reference Styles]
For gaze-controlled prompts, fill it as:
portrait of a young woman, looking at photographer, soft rim lighting, studio background,
ultra detailed realistic skin, masterpiece, best quality, 8k, RAW photo
The Rhix article recommends photography-inspired vocabulary for both SDXL and FLUX: rim lighting, rule of thirds, soft shadows, shallow depth of field, volumetric light, bokeh, 85mm lens effect. These terms strengthen the photographic context that "looking at photographer" relies on.
For the negative prompt, combine all three layers into a single block:
text, logo, watermark, deformed hands, extra fingers, unnatural eyes, asymmetric face,
blurry, oversaturated, low contrast, jpeg artifacts, Blinking, winking, staring-stares-stare,
gazing-gazes-gaze, distracted-distraction, sleeping-unconcious-drunk, eyecontact,
Unaware, shuteye, candid, distracted, spycamera, cctv, facing away, team, squad, group, crowd
The quality baseline (text, logo, watermark, deformed hands, extra fingers, unnatural eyes, asymmetric face, blurry, oversaturated, low contrast, jpeg artifacts) comes from the Rhix article's documented defaults. The gaze-suppression and composition terms come from the c666d guide.
Common Errors and Fixes
| Symptom | Cause | Fix | Source |
|---|---|---|---|
| FLUX produces averted gaze despite "eyecontact" in prompt | "eyecontact" as a literal term is counterproductive; the model interprets it variably | Replace with "looking at photographer" in positive; use the full universal negative set | c666d |
| Subjects look at each other instead of viewer in group scenes | "eyecontact" forces inter-character gaze when multiple subjects are present | Remove "eyecontact" from group prompts; add team/squad/group/crowd to negative | c666d |
| IPA weight produces noisy, unusable image | IPAdapter affects image quality when strength exceeds practical limits | Keep IPA strength below 0.5; compensate with prompt matching instead | stonelax |
| Img2Img above 0.2 shifts composition | Img2Img weight dominates over ControlNet, altering facial positioning | Set Img2Img weight to ~0.1; do not exceed 0.2 for gaze-sensitive work | stonelax |
| Gaze prompt works on SDXL but not FLUX | FLUX does not share the "solo" boost that SDXL benefits from | Use "looking at photographer" without relying on "solo"; add descriptive photographic context | c666d |
FAQ
What prompt terms make FLUX look at the viewer?
The recommended positive prompt for FLUX is "looking at photographer." Avoid using "eyecontact," "POV," "POV-eyecontact," "looking-at-viewer," or "looking-back" in either the positive or negative prompt — the c666d guide found these terms counterproductive across all model families. Combine with a comprehensive negative prompt covering Blinking, winking, staring-stares-stare, gazing-gazes-gaze, distracted-distraction, sleeping-unconcious-drunk, and eyecontact.
Why does FLUX resist "eye contact" as a literal term?
No official documentation explains this behavior. The c666d community guide explicitly treats "eyecontact" and its synonyms as counterproductive terms that degrade rather than reinforce gaze control. The "looking at photographer" phrasing succeeds because FLUX's T5-XXL text encoder has strong semantic mapping for photographic caption language, where subjects are described in relation to a camera operator.
How do ControlNet, IPAdapter, and Img2Img weights affect gaze in FLUX?
ControlNet with Canny or Depth extraction at above 0.7 is the most reliable structural control for gaze direction. IPAdapter below 0.5 contributes style but cannot reposition eyes. Img2Img at around 0.1 preserves composition while adding color consistency; exceeding 0.2 shifts the entire composition and destroys prompted gaze. The stonelax article describes this as an "impossible triangle" where raising one node degrades the others.
Does "solo" in the prompt improve eye contact?
The c666d guide reports that adding "solo" to the positive prompt greatly increased success rates for SDXL, but this finding is specific to SDXL. FLUX does not share this documented boost. The term may still provide some isolation benefit by reducing competing subjects, but no independent verification exists for FLUX specifically.
What negative prompt words prevent averted gaze in FLUX?
Use two layers of negatives. First, the universal gaze-suppression set: Blinking, winking, staring-stares-stare, gazing-gazes-gaze, distracted-distraction, sleeping-unconcious-drunk, eyecontact. Second, the FLUX composition set: Unaware, shuteye, candid, distracted, spycamera, cctv, facing away. For group scenes, add team, squad, group, party, mass, crowd. This three-layer negative prompt covers mechanical failures (blinking), semantic misdirections (distracted), and framing defaults (spycamera).
How do Pony and Illustrious differ from FLUX for gaze prompting?
Pony and Illustrious models may only need "looking-at-viewer" in the positive prompt to achieve gaze control, and they understand "winking" as a negative term — something FLUX does not reliably interpret. The c666d guide notes that if "looking-at-viewer" fails on Pony or Illustrious, the issue likely lies with the base model quality. FLUX benefits from the more specific "looking at photographer" phrasing and requires the full composition-focused negative set.
Sources
| Source | Contribution |
|---|---|
| c666d — Eye contact prompts for all models | Universal negative prompt set, "looking at photographer" positive term, "solo" boost for SDXL, multi-character gaze failure behavior, Pony/Illustrious "winking" and "looking-at-viewer" notes |
| Rhix — Perfect Prompting GPT engine | Modular prompt scaffold (Subject → Pose → Lighting → Style → Quality → Reference), photography vocabulary recommendations, default negative baseline, FLUX-specific positive prompt format |
| stonelax — Flux IPAdapter + ControlNet + Img2Img | ControlNet/IPAdapter/Img2Img weight tuning, "impossible triangle" tradeoff, composition vs style vs color consistency priorities, community ControlNet model availability |
| ComfyUI Flux examples | Dual text encoder confirmation (CLIP-L + T5-XXL), ControlNet model downloads (InstantX, Shakker Labs, XLab), model file locations, guidance_scale values |
| HuggingFace — FLUX.1-dev | Model access, license terms, architecture reference |
| HuggingFace — FLUX.1-schnell | Distilled variant reference, Apache 2.0 license |
Internal Links
- FLUX ComfyUI Workflows — Full workflow setup including text encoder loading, GGUF variants, and ControlNet integration
- FLUX Photorealism Guide — Photography vocabulary and rendering settings for photorealistic FLUX output
- Pony & Illustrious Prompt Syntax — Score tags, source tags, and prompting conventions for SDXL-based anime models
- CFG Scale Guide — Guidance scale tuning across FLUX, SDXL, and other model families