Stop using EasyNeg on SDXL — and tune CFG before you trust any negative prompt

Stop using EasyNeg on SDXL — and tune CFG before you trust any negative prompt

SDXL TI embeddings, CFG sweet spots, and MJ V8.1 ::-1 syntax — copy-paste ready

AI Image Prompt Tip
2026. 5. 24. · 23:45
구독 1개 · 콘텐츠 16개
If you've been dropping EasyNegative or badhandv4 into SDXL negative prompt fields and wondering why nothing changes, here's the short answer: those embeddings were trained on SD 1.5, and they're architecturally incompatible with SDXL. The best case is they do nothing. The worst case is they quietly degrade your outputs. 1
This is a direct follow-up to Cycle 1 (May 20), which covered the paradigm split between keyword-negation and instruction-tuned models. Today's tip goes deeper on three things: the correct SDXL negative TI (Textual Inversion) ecosystem, how CFG scale amplifies — or destroys — your negative prompts, and the ::-1 syntax that replaces the removed --no in Midjourney V8.1.

The SDXL negative embedding ecosystem

SD 1.5 and SDXL use different CLIP text encoders, trained on different image resolutions. SD 1.5 embeddings like EasyNegative were trained on 512px crops; SDXL uses a dual encoder — OpenCLIP ViT-bigG paired with CLIP ViT-L — and generates at 1024px. Plugging a 512px-era embedding into an SDXL pipeline doesn't crash anything; it just produces a vector in the wrong embedding space, which the model treats as noise. 1
The SDXL community has developed a distinct set of native embeddings. Here are the four worth installing today:
EmbeddingTrigger wordFile sizePrimary fixScope
unaestheticXL (Civitai)unaestheticXL_cbp6248 KBGeneral quality, style artifacts10 variants by style: anime, semireal, real, universal
Deep Negative XL (lenML)DeepNegative_xl_v1256 KBBad anatomy, color chaos, spatial disorderGeneral SDXL; also on HuggingFace
Negative Dynamics XL (NDXL)NDXL80 KBLimb proportion normalizationMust go first in the negative field
bad X (BadX)BadX3.9 KBFace mutations, hand deformity, skin textureAll SDXL including Pony SDXL
2 3 4 5
ComfyUI's official wiki singles out unaestheticXL_AYv1 as the only recommended SDXL negative embedding — it's the one to start with if you only install one. 6
Installation syntax:
  • A1111 / Forge: drop the .safetensors file into embeddings/, then type the trigger word directly in the negative prompt field
  • ComfyUI: drop it into models/embeddings/, then use embedding:TRIGGER_WORD syntax in the negative CLIP text node
Copy-paste negative string for portrait work (SDXL):
NDXL, unaestheticXL_cbp62, DeepNegative_xl_v1, BadX, worst quality, low quality, watermark, text, logo
Place NDXL first — the body normalizer needs priority position. The others can follow in any order.
링크 미리보기를 불러오는 중…

CFG scale: the amplifier you can't ignore

Before your negative embeddings or keyword strings do anything, CFG (Classifier-Free Guidance) controls how hard the model pushes toward your positive prompt — and how hard it pushes away from your negative prompt.
The math: final_output = unconditional + CFG × (conditional − unconditional). Your negative prompt replaces the "unconditional" prediction, so CFG is a direct multiplier on how strongly the model steers away from it. 7 The result is that a heavy negative prompt string at CFG 12 will overcorrect — producing the "plastic skin" and "crunchy contrast" look that makes AI images feel processed. 8
SDXL's dual-encoder architecture understands prompts more literally than SD 1.5, so it needs a lower CFG to reach the same adherence level. Where SD 1.5 ran well at 7–9, SDXL's sweet spots are lower:
Use caseSDXL CFG rangeNotes
Portraits / photorealism4–6Below 4: image drifts from prompt. Above 6: "plastic" look
Landscape / environment5–7
Anime / illustration5–8Stylized checkpoints tolerate the higher end
Complex multi-subject7–8Higher adherence needed
Artifact threshold≥ 10Avoid for SDXL 7
Practical rule: if you add a negative string and the output starts looking hyper-sharpened or unnatural, drop CFG by 1–2 points before changing anything else. The overcorrection is almost always a CFG problem, not an embedding problem.
For Flux dev, the architecture is different: CFG should stay at 1.0 (disabled). Instead, Flux uses a separate Guidance parameter (recommended 2.5–4.0, default 3.5), which is a distillation-trained approximation — the model learned what high-CFG outputs looked like and baked that behavior into its weights without running two forward passes. 11 The traditional CFG × negative-prompt coupling doesn't exist in Flux.
CFG scale effect comparison — same prompt at values from 1.5 to 30, showing prompt drift at low values and over-processing at high values
CFG 1.5 to 30 on the same prompt: below ~4 the image drifts, above ~12 artifacts accumulate. SDXL's safe zone is 4–8. 7
SD3 / SD3.5 are a separate case: Replicate's official guide states that SD3 was not trained with negative prompts at all — passing a negative prompt string introduces noise and changes outputs roughly the way changing the seed would, rather than removing the specified elements. 12 SD3's recommended CFG is 3.5–4.5; going above 8 produces harsh, unnatural results. Leave the negative prompt field empty on SD3.

MJ V8.1: --no is gone, here are the three replacements

Midjourney V8.1's official compatibility table lists --no as unsupported — removed alongside Omni Reference, Quality settings, Draft Mode, and Turbo. 13 You have three options, and the best choice depends on how specific the exclusion needs to be.

Option 1: Negative-weight syntax ::-1

Append ::-1 directly to the element you want to suppress. This is the closest functional replacement for --no.
A weathered lighthouse on volcanic cliffs, dramatic storm clouds, crashing waves. people::-1 boats::-1 --v 8.1 --hd --raw
The ::-1 weight tells V8.1 to steer away from that concept. The --raw flag is important: it limits V8.1's default aesthetic interpretation, making the prompt — and the negative weights — apply more literally. 13
Without --raw, V8.1's style engine can partially absorb and soften the negative weights. With --raw, the suppression is more direct.

Option 2: Explicit positive phrasing

Instead of excluding, describe what you do want so precisely that the unwanted elements have no visual slot to fill.
An empty, solitary lighthouse on remote volcanic cliffs, only dramatic storm clouds and crashing waves, no human presence --v 8.1 --hd --raw
V8.1's stronger prompt adherence (compared to V7) makes this approach more reliable than it was in earlier versions. Phrases like empty, solitary, devoid of people, and without [element] work as positive-framing exclusions. 13

Option 3: Fall back to V7

If your workflow depends heavily on --no — particularly for batch generation with consistent exclusions across many prompts — V7 still fully supports the parameter.
A lighthouse on volcanic cliffs --no people boats --v 7
The visual output from V7 differs from V8.1, but --no works as expected.
링크 미리보기를 불러오는 중…

Cross-tool negative prompt reference

ToolNegative prompt supportRecommended approachCFG / Guidance
SDXLFull negative_prompt fieldNDXL, unaestheticXL_cbp62, DeepNegative_xl_v1, BadX + keyword stringsCFG 5–8; portraits use 4–6
SD 1.5Full negative_prompt fieldEasyNegative, badhandv4 + keyword stringsCFG 7–9
MJ V8.1--no removedelement::-1 --raw or positive phrasingNot applicable
MJ V7--no supported--no element1 element2Not applicable
Flux dev / schnellNo negative_prompt parameterPositive prompt engineering onlyCFG = 1.0; Guidance 2.5–4.0
FLUX.2 [dev]No negative_prompt in fal.ai API 14guidance_scale (0–20, default 2.5) + prompt onlyCFG = 1.0
SD3 / SD3.5Field exists but untrained 12Leave empty — use positive description insteadCFG 3.5–4.5

The one-line version

On SDXL: replace EasyNeg with unaestheticXL_cbp62 + DeepNegative_xl_v1, keep CFG at 5–7, and drop it 1–2 points if outputs look processed. On MJ V8.1: use element::-1 --raw instead of --no. On Flux and FLUX.2: skip the negative prompt field entirely and write what you want more precisely.
Cover image: AI-generated illustration

이 콘텐츠를 둘러싼 관점이나 맥락을 계속 보강해 보세요.

  • 로그인하면 댓글을 작성할 수 있습니다.