docs: declare SFW-by-default safety policy + reference safety_negative_prompt.txt
Browse files
README.md
CHANGED
|
@@ -42,9 +42,23 @@ ERNIE-Image-Turbo is particularly strong at:
|
|
| 42 |
| [`ernie-image-turbo-Q3_K_M.gguf`](./ernie-image-turbo-Q3_K_M.gguf) | Diffusion transformer — 8B params, Q3_K_M | 3.6 GB |
|
| 43 |
| [`Ministral-3-3B-Instruct-2512-Q4_K_M.gguf`](./Ministral-3-3B-Instruct-2512-Q4_K_M.gguf) | Text encoder (Mistral3 emits the 3072-dim conditioning tensor ERNIE expects) | 2.0 GB |
|
| 44 |
| [`ae.safetensors`](./ae.safetensors) | VAE — ERNIE's 32-channel `AutoencoderKLFlux2` (≠ Flux's 16-channel `ae.safetensors`; the two are not interchangeable) | 168 MB |
|
|
|
|
| 45 |
|
| 46 |
Total bundle: **~5.7 GB**. Total GPU residency: ~7 GB. **iPhone 16 Pro / 17 Pro / Mac** territory.
|
| 47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
## Quick start (Mirage)
|
| 49 |
|
| 50 |
```swift
|
|
|
|
| 42 |
| [`ernie-image-turbo-Q3_K_M.gguf`](./ernie-image-turbo-Q3_K_M.gguf) | Diffusion transformer — 8B params, Q3_K_M | 3.6 GB |
|
| 43 |
| [`Ministral-3-3B-Instruct-2512-Q4_K_M.gguf`](./Ministral-3-3B-Instruct-2512-Q4_K_M.gguf) | Text encoder (Mistral3 emits the 3072-dim conditioning tensor ERNIE expects) | 2.0 GB |
|
| 44 |
| [`ae.safetensors`](./ae.safetensors) | VAE — ERNIE's 32-channel `AutoencoderKLFlux2` (≠ Flux's 16-channel `ae.safetensors`; the two are not interchangeable) | 168 MB |
|
| 45 |
+
| [`safety_negative_prompt.txt`](./safety_negative_prompt.txt) | Recommended default negative prompt to apply at inference time for SFW-by-default deployments | <1 KB |
|
| 46 |
|
| 47 |
Total bundle: **~5.7 GB**. Total GPU residency: ~7 GB. **iPhone 16 Pro / 17 Pro / Mac** territory.
|
| 48 |
|
| 49 |
+
## Safety / SFW-by-default
|
| 50 |
+
|
| 51 |
+
This bundle is intended for shipping in consumer apps and ships with a recommended default negative prompt at [`safety_negative_prompt.txt`](./safety_negative_prompt.txt). Consumers building on top of this bundle SHOULD load the file and prepend its contents to any user-supplied negative prompt by default, with an explicit user-facing opt-out for adult/artistic contexts.
|
| 52 |
+
|
| 53 |
+
The blocklist covers:
|
| 54 |
+
|
| 55 |
+
- **Child safety** — explicit terms blocking sexualised content involving minors or apparent minors (loaded first / highest weight in SD-style negative prompts)
|
| 56 |
+
- **Adult / explicit** — `nsfw`, `nude`, `explicit`, `sexual`, anatomical detail
|
| 57 |
+
- **Gore + graphic violence** — `gore`, `blood`, `mutilation`, etc.
|
| 58 |
+
- **Hate symbols** — `swastika`, `nazi`, `extremist`
|
| 59 |
+
|
| 60 |
+
Diffusion models steer *away* from negative-prompt concepts; they don't binary-reject them. A sufficiently determined prompt can still produce undesirable output, so apps shipping this bundle to general audiences should pair the negative-prompt filter with output-side classification (e.g. a CSAM/NSFW classifier on the generated `CGImage`) before display.
|
| 61 |
+
|
| 62 |
## Quick start (Mirage)
|
| 63 |
|
| 64 |
```swift
|