6 Commits
Author SHA1 Message Date
Nid All 7c837d1ba4 Generate app summary PDF 2026-03-07 13:30:39 +01:00
Nid All 60e84c559c Restore stable PromptStyler node 2026-03-07 12:56:41 +01:00
Nid All d3e3da791d Implement PromptStyler UX plan 2026-03-07 11:23:45 +01:00
Nid All d88930b07a Release 0.3.1 2026-01-31 22:31:58 +01:00
NidAll d52dfdd16b Remove 'Unreleased' section from CHANGELOG 2026-01-31 17:27:05 +01:00
Nid All a194fdb37e Release 0.3.0 2026-01-31 17:12:43 +01:00
42 changed files with 15373 additions and 953 deletions
+24
View File
@@ -0,0 +1,24 @@
name: ci
on:
pull_request:
push:
branches:
- main
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Version sync
run: python tools/version_sync.py check
- name: Validate styles
run: python tools/validate_styles.py
- name: Audit styles
run: python tools/audit_styles.py
- name: Runtime regression tests
run: python -m unittest discover -s tests
+1 -1
View File
@@ -1,3 +1,3 @@
{
".": "0.2.0"
".": "0.3.2"
}
+36
View File
@@ -6,6 +6,42 @@ The format is based on Keep a Changelog, and this project follows Semantic Versi
## [Unreleased]
## [0.3.2] - 2026-03-07
### Added
- CI checks for version sync, style validation, style audit, and runtime regression tests.
- `tools/sync_legacy_styles.py` and `tools/version_sync.py` for compatibility snapshot and release metadata maintenance.
- New medium-first style packs: `styles/packs/32_print_reprographic.json`, `styles/packs/42_decorative_arts_material_processes.json`, and `styles/packs/43_digital_craft.json`.
- Expanded `styles/packs/36_mixed_media.json` to deepen the mixed-media family with 18 new tactile/process-driven styles.
- `STYLE_TAXONOMY.md` documenting pack purpose, target size, and routing rules for future additions.
- Runtime regression coverage for legacy prompt composition and conditioning validation.
### Changed
- `PromptStyler: Prompt -> Conditioning (Style Picker)` now uses the narrow legacy-compatible prompt-to-conditioning contract again for stability.
- Broken or non-finite conditioning now raises an explicit node error instead of silently returning a malformed output.
- `styles/styles_v1.json` is now treated as a generated compatibility snapshot of merged packs.
- README and maintainer documentation now describe the restored stable-node runtime surface and release workflow.
## [0.3.1] - 2026-01-31
### Added
- New Fine Art artist-reference pack: `styles/packs/34_fine_art_artists.json` (25 styles under `Fine Art/Artists`).
## [0.3.0] - 2026-01-31
### Added
- More explicit Flux guidance for curated styles (adds key/finish cues and a “preserve the user subject” instruction).
- New audit check to flag banned photography/cinema gear terms in style text.
### Changed
- Curated style text is more “style-only” and avoids photo gear wording (replaced with effect-language like diffused key light, wide field of view, compressed perspective).
- README rewritten with a beginner-friendly walkthrough and v0.3.0 release checklist.
## [0.2.0] - 2026-01-31
### Added
+152 -67
View File
@@ -1,85 +1,107 @@
# ComfyUI PromptStyler
Custom ComfyUI node that applies curated style **prefix/suffix** templates to your positive prompt and outputs **CONDITIONING** for KSampler.
PromptStyler is a custom ComfyUI node pack for applying curated style templates to a positive prompt and returning `CONDITIONING` for KSampler.
## Versioning / Releases
- Version: `VERSION` (also mirrored as `__version__` in `__init__.py`).
- Changelog: `CHANGELOG.md`.
- Releases: automated via Release Please (`.github/workflows/release-please.yml`).
## Install
1. Copy this folder to: `ComfyUI/custom_nodes/ComfyUI_PromptStyler`
2. Restart ComfyUI.
This release intentionally splits the runtime surface into a stable default node and an opt-in advanced node.
## Nodes
Stable node:
- `PromptStyler: Prompt -> Conditioning (Style Picker)`
- What it does: takes your `prompt`, applies exactly **one** style (prefix + suffix), and returns `positive` CONDITIONING.
- Inputs:
- `prompt` (STRING)
- `apply_style` (BOOLEAN) - disable to pass your prompt through unchanged
- `style` (single-select dropdown, sorted + categorized)
- `template_variant` (dropdown) - `default` (comma-phrase templates) or `flux_2_klein` (prose guidance)
- `style_id_override` (STRING) - optionally apply a style directly by `id` (useful for newly-added user styles)
- `text_encoder` (CLIP) (wire this from your model loader node)
- Outputs:
- `positive` (CONDITIONING) -> connect to KSampler `positive`
- `styled_prompt` (STRING) -> useful for debugging/seeing the final prompt
- outputs: `positive`, `styled_prompt`
- behavior: legacy-compatible prompt composition and direct conditioning output
### Typical Wiring
Advanced node:
1. `CheckpointLoaderSimple` -> take its `CLIP` output into `PromptStyler` `text_encoder`
2. Your text prompt -> `PromptStyler` `prompt`
3. `PromptStyler` `positive` -> `KSampler` `positive`
- `PromptStyler: Advanced Prompt -> Conditioning`
- outputs: `positive`, `styled_prompt`, `resolved_style_id`, `resolved_style_meta`
- behavior: search, overlays, stronger filtering controls, and JSON debug metadata
## Style Data
Use the stable node unless you specifically need the advanced controls.
- Styles live in JSON packs under `styles/packs/*.json` (merged in filename order).
- The dropdown is formatted as: `Category | Name | id`
- Example: `Anime/Manga | Anime Style | anime_style`
- Each style entry contains:
- `id`, `name`, `category`
- `default`: `{ "prefix": "...", "suffix": "..." }`
- `models.flux_2_klein`: optional `{ "prefix": "", "suffix": "..." }` prose guidance used by `template_variant=flux_2_klein`
## Recommended Wiring
## Validate
1. Add `CheckpointLoaderSimple`
2. Add `PromptStyler: Prompt -> Conditioning (Style Picker)`
3. Add `KSampler`
Run with your embedded python:
Connect:
```powershell
C:\Comfyui\python_embeded\python.exe .\tools\validate_styles.py
- `CheckpointLoaderSimple.CLIP` -> `PromptStyler.text_encoder`
- your text source -> `PromptStyler.prompt`
- `PromptStyler.positive` -> `KSampler.positive`
`styled_prompt` is the exact text that was encoded.
## Stable Node Inputs
- `prompt`: your positive prompt
- `apply_style`: bypass styling while still encoding the prompt
- `style`: dropdown entry in `Category | Name | id` format
- `template_variant`: `default` or any model-specific variant present in the packs
- `style_id_override`: direct id selection for newly-added or scripted styles
- `text_encoder`: connect from your checkpoint/model loader
Stable node rules:
- `style_id_override` takes precedence over the dropdown when set
- `default` uses legacy comma-phrase composition and de-dupe behavior
- model-specific variants use their explicit variant text and otherwise fall back to `default`
- malformed conditioning now raises an explicit node error instead of silently returning a broken output
## Advanced Node Inputs
Core inputs are the same as the stable node, plus:
- `selection_mode`: `dropdown`, `search`, or `id`
- `style_search`: free-text search used by `selection_mode=search`
- `category_hint`: optional substring filter applied before search scoring
- `tag_hint`: optional comma-separated tag filter applied before search scoring
- `style_strength`: `subtle`, `normal`, or `strong`
- `dedupe_mode`: `smart` or `off`
- `overlay_style_id`: optional secondary style id, restricted to categories starting with `Color Grade`
- `on_missing_style`: `error` or `passthrough`
Advanced node outputs:
- `resolved_style_id`: the final base style id that was resolved
- `resolved_style_meta`: JSON payload describing resolution inputs and composition details
## Style Library
Primary runtime source:
- `styles/packs/*.json`
Compatibility snapshot:
- `styles/styles_v1.json`
Pack filenames use numeric prefixes for merge order, for example:
- `10_cinema.json`
- `96_color_grades.json`
- `99_user_custom.json`
Schema:
```json
{
"id": "unique_snake_case",
"name": "Human Name",
"category": "Category/Subcategory",
"default": { "prefix": "...", "suffix": "..." },
"models": { "flux_2_klein": { "prefix": "", "suffix": "..." } },
"tags": ["tag1", "tag2"]
}
```
## Regenerate Style Packs
## Adding Your Own Styles
The library is generated into `styles/packs/*.json`:
Default user-local pack:
```powershell
C:\Comfyui\python_embeded\python.exe .\tools\generate_style_packs.py
```
After regenerating, restart ComfyUI (or "Reload custom nodes") to refresh the style dropdown.
## Add Your Own Styles
Two options:
1. Edit `tools/generate_style_packs.py` and regenerate packs (recommended if you want the same style structure everywhere).
2. Add a new JSON file under `styles/packs/` that follows the same schema (`{"version": 1, "styles": [...]}`).
### Add Styles (Automated)
Use `tools/add_styles.py` to append styles into a custom pack (default: `styles/packs/99_user_custom.json`).
Interactive wizard (recommended):
```powershell
C:\Comfyui\python_embeded\python.exe .\tools\add_styles.py wizard
```
The wizard writes styles under `category: "User/<Subcategory>"`. After adding a style, copy the printed `id` into the node’s `style_id_override` to use it immediately (no reload required).
- `styles/packs/99_user_custom.json`
List categories:
@@ -87,14 +109,77 @@ List categories:
C:\Comfyui\python_embeded\python.exe .\tools\add_styles.py categories
```
Add one style:
Launch the wizard:
```powershell
C:\Comfyui\python_embeded\python.exe .\tools\add_styles.py wizard
```
Add one style directly:
```powershell
C:\Comfyui\python_embeded\python.exe .\tools\add_styles.py add --name "Ink Noir (Modern)" --category "Fine Art" --core "ink wash, chiaroscuro, high contrast" --details "paper texture, soft bleed, dramatic mood" --tags "ink,noir"
```
Bulk add from CSV (columns: `name,category,core,details,tags`):
After adding a style, paste the generated id into `style_id_override` to use it immediately.
## Maintainer Commands
Validate packs:
```powershell
C:\Comfyui\python_embeded\python.exe .\tools\add_styles.py bulk --csv .\tools\new_styles.csv
C:\Comfyui\python_embeded\python.exe .\tools\validate_styles.py
```
Audit pack consistency:
```powershell
C:\Comfyui\python_embeded\python.exe .\tools\audit_styles.py
```
Sync the legacy compatibility snapshot:
```powershell
C:\Comfyui\python_embeded\python.exe .\tools\sync_legacy_styles.py
```
Regenerate curated packs and refresh the legacy snapshot:
```powershell
C:\Comfyui\python_embeded\python.exe .\tools\generate_style_packs.py
```
Check release/version metadata consistency:
```powershell
C:\Comfyui\python_embeded\python.exe .\tools\version_sync.py check
```
Run runtime regression tests:
```powershell
python -m unittest discover -s tests
```
## Troubleshooting
- Stable node returns an error instead of an image:
- inspect `styled_prompt`
- confirm the connected `text_encoder` matches the active model family
- if the error mentions invalid conditioning, compare the same `styled_prompt` through stock `CLIPTextEncode`
- Advanced search fails unexpectedly:
- relax `category_hint` and `tag_hint`
- inspect `resolved_style_meta`
- Styles look stale:
- rerun `tools/sync_legacy_styles.py` or `tools/generate_style_packs.py`
- reload custom nodes in ComfyUI
## Release Notes
Version metadata is managed from `VERSION`.
- `__init__.py` reads `VERSION` at runtime
- `.release-please-manifest.json` should be synced from `VERSION` with `tools/version_sync.py write`
- `CHANGELOG.md` follows Keep a Changelog
See `RELEASING.md` for the maintainer flow.
+39 -14
View File
@@ -1,25 +1,50 @@
# Releasing
This repo uses **Semantic Versioning** and **Release Please** to keep releases organized.
This repo uses Semantic Versioning and Release Please.
## Normal Release Flow (recommended)
## Source Of Truth
1. Merge changes into `main`.
2. The `release-please` workflow opens/updates a **Release PR** that:
- bumps the version
- updates `CHANGELOG.md`
3. Merge the Release PR.
4. Release Please creates a Git tag (e.g. `v0.2.0`) and a GitHub Release.
Human-edited version source:
## Manual Release (if automation is disabled)
- `VERSION`
1. Update `__init__.py` `__version__` and `VERSION` to the new version.
2. Add notes under `CHANGELOG.md` and move them into a new version section.
3. Commit with a message like: `chore(release): vX.Y.Z`
4. Tag and push:
Mirrors and checks:
- `__init__.py` reads `VERSION` at runtime
- `.release-please-manifest.json` is synced from `VERSION` with `python tools/version_sync.py write`
- CI verifies version alignment with `python tools/version_sync.py check`
## Normal Maintainer Flow
1. Update `VERSION`.
2. Run `python tools/version_sync.py write`.
3. Run `python tools/validate_styles.py`.
4. Run `python tools/audit_styles.py`.
5. If packs changed, run `python tools/sync_legacy_styles.py` or `python tools/generate_style_packs.py`.
6. Update `CHANGELOG.md` and any user-facing docs that changed behavior.
7. Merge to `main`.
8. Release Please updates or opens the release PR.
9. Merge the release PR.
## CI
The repository CI job runs on pushes to `main` and on pull requests. It checks:
- version sync
- style validation
- style audit
## Manual Release
If automation is disabled:
1. Update `VERSION`.
2. Run `python tools/version_sync.py write`.
3. Update `CHANGELOG.md`.
4. Commit the release metadata.
5. Tag the commit:
```bash
git tag vX.Y.Z
git push --tags
```
+26 -1
View File
@@ -2,7 +2,7 @@
## Current Library Snapshot (as of 2026-01-31)
- Total styles: 500 (merged from `styles/packs/*.json` in filename order).
- Total styles: 525 (merged from `styles/packs/*.json` in filename order).
- Categories are consistent and already cover the big buckets: Photography, Cinema, Illustration, Fine Art, Graphic Design, 3D/CG, Architecture/Interior, Fashion/Product, Nature, Experimental, Color Grade, plus focused sub-buckets (e.g. `Photography/Alt Process`, `Decorative Arts/Textiles`, `Color Grade/Film Lab`).
- Style format is stable: each style has `id`, `name`, `category`, and `default.prefix`/`default.suffix` (comma+space separated phrases). The node de-dupes phrases case-insensitively.
@@ -25,6 +25,31 @@ C:\Comfyui\python_embeded\python.exe .\tools\audit_styles.py
- **Technique-level styles:** Many styles are movement-level (e.g., Impressionism, Cubism). Adding more “how it’s made” styles (materials, surface, process) tends to produce more controllable results across different subjects.
- **Prompt token consistency:** The node splits on `", "` (comma + space). Avoid using commas without a following space inside a single token, or the phrase won’t split as expected.
## Style Text Rules (Accuracy + No Object Injection)
- **Style-only phrasing:** Prefer medium/process/palette/lighting/composition/texture cues. Avoid introducing unrelated objects not implied by the style name.
- **Specific stays specific:** If a style is explicitly scene/subject-based (reflected in its `name`), keep its defining nouns (e.g., *Portrait*, *Street*, *Interior*).
- **No gear words in templates:** Avoid photography/cinema equipment terms in `prefix`/`suffix`/Flux prose (e.g., softbox, strobe, beauty dish, tripod, lens). Prefer effect language (diffused key light, wide field of view, compressed perspective).
- **Portrait/fashion OK cues:** Skin texture, catchlights, and sharp eyes are acceptable quality cues.
## Academic / Museum References (for future refinements)
When tightening a technique or movement, prefer authoritative glossaries and museum/encyclopedia references (examples):
- Printmaking processes (etching, aquatint, mezzotint), and chiaroscuro definitions: Encyclopedia Britannica; National Portrait Gallery (UK) glossary.
- Cyanotype process characteristics: National Gallery of Art (USA) and similar museum education references.
- Film noir traits (low-key lighting, high-contrast look, mood conventions): established film history references (e.g., Britannica / major film institutes).
## New Additions: Fine Art/Artists Pack
Added `styles/packs/34_fine_art_artists.json` with 25 artist-referenced styles under `Fine Art/Artists`. Each style is written to stay **subject-agnostic** (palette, brushwork, surface, composition, light) and avoid photo/cinema gear terms.
Research references used while drafting these templates (high quality / museum / encyclopedia sources):
- Encyclopaedia Britannica (artist biographies + movement/technique definitions): https://www.britannica.com/
- The Metropolitan Museum of Art (movement essays and collection learning resources): https://www.metmuseum.org/
- The Museum of Modern Art (artist/movement resources, e.g. action painting / Pollock): https://www.moma.org/
## New Additions: 500-style Expansion Packs
Added four focused packs (25 styles each) to reach 500 total styles:
+50
View File
@@ -0,0 +1,50 @@
# Style Taxonomy
This document defines how curated packs should be organized and expanded.
## Pack Policy
- Default organization is medium/process/material first.
- Target size per pack is 15-25 styles.
- Split a pack when it grows past about 30 styles or starts mixing unrelated subfamilies.
- Preserve existing style ids and visible category labels unless a migration is explicitly planned.
- Extend an existing pack when the new styles share the same medium or production logic.
- Create a new pack only when a coherent process family would otherwise become a grab bag inside an unrelated pack.
## Current Curated Packs
| Pack | Purpose | Categories Covered | Target Range |
| --- | --- | --- | --- |
| `10_cinema.json` | Film still, cinematography, and cinematic look packages | `Cinema` | 15-25 |
| `20_photography.json` | General photographic genres, techniques, and perspective looks | `Photography` | 25-35 |
| `21_photography_alt_process.json` | Darkroom and historical photographic chemistry/process looks | `Photography/Alt Process` | 15-25 |
| `30_illustration.json` | General hand-drawn, painted, manga, vector, pixel, and technical illustration styles | `Illustration`, `Anime/Manga`, `Pixel Art`, `Vector`, `Technical` | 25-35 |
| `31_printmaking_expanded.json` | Historical and fine-art printmaking processes | `Printmaking/Expanded` | 20-30 |
| `32_print_reprographic.json` | Mechanical duplication, proofing, repro, and press-surface looks | `Printmaking/Expanded`, `Photography/Alt Process`, `Graphic Design` | 14-22 |
| `34_fine_art_artists.json` | Artist-reference fine art styles | `Fine Art/Artists` | 20-30 |
| `35_fine_art.json` | Movement and material-led fine art styles | `Fine Art` | 25-35 |
| `36_mixed_media.json` | Layered, tactile, composite-media processes | `Mixed Media` | 20-30 |
| `37_street_art.json` | Street-applied paint, poster, and wall-surface styles | `Street Art` | 12-20 |
| `38_decorative_arts.json` | Core decorative crafts and surface-rich artisan media | `Decorative Arts` | 12-20 |
| `39_internet_aesthetics.json` | Mood-first internet aesthetic families | `Aesthetics/*` | 30-45 |
| `40_graphic_design.json` | Posters, layouts, branding, and print-graphic looks | `Graphic Design` | 25-35 |
| `41_decorative_arts_textiles.json` | Textile, fiber, and woven decorative processes | `Decorative Arts/Textiles` | 20-30 |
| `42_decorative_arts_material_processes.json` | Glass, ceramic, metal, cast, etched, and inlay process styles | `Decorative Arts` | 15-25 |
| `43_digital_craft.json` | Diagrammatic, vector, and constrained-color digital craft styles | `Technical`, `Vector`, `Pixel Art` | 12-20 |
| `50_3d_cg.json` | 3D, render, miniature-set, and CG material looks | `3D/CG` | 15-25 |
| `60_architecture_interior.json` | Architecture and interior presentation looks | `Architecture/Interior` | 15-25 |
| `70_fashion.json` | Fashion/editorial looks | `Fashion` | 12-20 |
| `80_product.json` | Product and commercial object presentation looks | `Product` | 10-18 |
| `90_nature.json` | Landscape and nature presentation looks | `Nature` | 12-20 |
| `95_experimental.json` | Abstract, prismatic, and process-bending visual styles | `Experimental` | 12-20 |
| `96_color_grades.json` | General color grade overlays | `Color Grade` | 15-25 |
| `97_color_grade_film_lab.json` | Film-lab process, scan, and stock-behavior overlays | `Color Grade/Film Lab` | 20-30 |
## Routing Rules For New Styles
- Add tactile layered work to `36_mixed_media.json` before considering any new mixed-media pack.
- Add glass, ceramic, metal, lacquer, and inlay surfaces to the decorative arts family before using `Fine Art` as a fallback.
- Add repro, proofing, duplication, and press artifacts to `32_print_reprographic.json` instead of scattering them across `Graphic Design` or `Experimental`.
- Add `Technical`, `Vector`, and `Pixel Art` growth to `43_digital_craft.json` so those categories stop living as incidental outliers inside the broad illustration pack.
- Use `39_internet_aesthetics.json` only when a style is fundamentally mood/subculture driven rather than process driven.
- Prefer extending an existing process family over creating a new pack with fewer than about 12 coherent styles.
+119
View File
@@ -0,0 +1,119 @@
# PromptStyler Maintainer Notes
This document is for maintainers. It tracks architecture, pack behavior, and the rules that matter when changing runtime style resolution.
## Architecture
Runtime surface:
- `nodes.py`: ComfyUI node definition and input/output wiring
- `style_library.py`: shared style loading, indexing, search, filtering, prompt composition, and legacy snapshot generation
Maintainer tooling:
- `tools/validate_styles.py`: strict schema and uniqueness validation
- `tools/audit_styles.py`: consistency audit and quality checks
- `tools/add_styles.py`: user/custom pack helper
- `tools/generate_style_packs.py`: curated pack generation plus legacy snapshot refresh
- `tools/sync_legacy_styles.py`: regenerate `styles/styles_v1.json` from merged packs
- `tools/version_sync.py`: check or write release metadata derived from `VERSION`
- `STYLE_TAXONOMY.md`: pack purpose, target size, and routing rules for future style additions
Data sources:
- `styles/packs/*.json`: primary runtime source
- `styles/styles_v1.json`: generated compatibility snapshot
## Load Policies
`style_library.py` exposes two load modes:
- `strict`: fail on malformed files or required-field issues
- `lenient`: warn and skip unusable files so the runtime node can stay available
Use `strict` in maintainer tooling and CI.
Use `lenient` in the ComfyUI runtime node.
## Runtime Resolution Model
The node resolves one base style and optionally one overlay style.
Base style resolution modes:
- `dropdown`
- `id`
- `search`
Search ranking order:
1. exact id match
2. exact name match
3. token matches across id, name, category, and tags
Search filters are applied before scoring:
- `category_hint`
- `tag_hint`
If multiple candidates tie for the best score, resolution fails with the top candidates listed.
## Prompt Composition Rules
Recommended composition model:
- base style
- optional color-grade overlay
- optional search-driven style lookup
Default phrase-based variant:
- `style_strength=subtle`: first 3 prefix phrases and first 3 suffix phrases
- `style_strength=normal`: first 6 prefix phrases and first 6 suffix phrases
- `style_strength=strong`: all phrases
- `dedupe_mode=smart`: remove only style-added duplicates, never collapse the raw user prompt
- `dedupe_mode=off`: preserve all style phrases in original order
Overlay rule:
- `overlay_style_id` must resolve to a category starting with `Color Grade`
- the overlay contributes suffix-only styling
Variant rule:
- `template_variant=default` uses phrase-based composition
- model-specific variants use the style's model entry when available and fall back to `default` otherwise
## Pack Authoring Rules
Required fields per style:
- `id`
- `name`
- `default.prefix`
- `default.suffix`
Conventions:
- `id` must be unique and `snake_case`
- phrase-based text should use comma+space separators
- keep style text subject-agnostic unless the style itself is explicitly subject-specific
- avoid photo/cinema gear terms in curated styles
## Release Metadata
Version metadata flow:
- edit `VERSION`
- run `python tools/version_sync.py write`
- CI enforces that `VERSION`, `__init__.py`, and `.release-please-manifest.json` are aligned
## Maintenance Checklist
When changing curated style packs:
1. regenerate or update the packs
2. run `python tools/validate_styles.py`
3. run `python tools/audit_styles.py`
4. run `python tools/sync_legacy_styles.py` if needed
5. update `README.md` when user-visible behavior changed
6. update `CHANGELOG.md`
+1 -1
View File
@@ -1 +1 @@
0.2.0
0.3.2
+12 -2
View File
@@ -5,9 +5,19 @@ Drop this folder into: ComfyUI/custom_nodes/ComfyUI_PromptStyler
Then restart ComfyUI (or use "Reload custom nodes").
"""
__version__ = "0.2.0"
from __future__ import annotations
import os
def _read_version() -> str:
here = os.path.dirname(os.path.realpath(__file__))
with open(os.path.join(here, "VERSION"), "r", encoding="utf-8") as handle:
return handle.read().strip()
__version__ = _read_version()
from .nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "__version__"]
+1 -1
View File
@@ -277,4 +277,4 @@ NODE_CLASS_MAPPINGS = {
NODE_DISPLAY_NAME_MAPPINGS = {
"PromptStylerConditioning": "PromptStyler: Prompt -> Conditioning (Style Picker)",
}
}
Binary file not shown.
+859
View File
@@ -0,0 +1,859 @@
from __future__ import annotations
import json
import os
import re
from dataclasses import dataclass
from typing import Any, Dict, List, Mapping, Optional, Sequence, Tuple
ROOT = os.path.dirname(os.path.realpath(__file__))
LEGACY_STYLES_PATH = os.path.join(ROOT, "styles", "styles_v1.json")
STYLE_PACKS_DIR = os.path.join(ROOT, "styles", "packs")
LOAD_POLICY_LENIENT = "lenient"
LOAD_POLICY_STRICT = "strict"
DEFAULT_VARIANT = "default"
DEFAULT_PHRASE_SEPARATOR = ", "
NO_STYLES_CHOICE = "(no styles found) | (no styles) | __none__"
Z_SEP = ", "
# Shared prompt fragments reused by the generator and user-style tooling.
CATEGORY_BASE_PREFIX = {
"Cinema": (
"cinematic film still",
"professional cinematography",
"cinematic framing",
"carefully composed shot",
"atmospheric depth",
"realistic lighting",
),
"Photography": (
"professional photography",
"realistic lighting",
"natural color rendition",
"coherent shadows",
"true-to-life textures",
),
"Product": (
"commercial product photography",
"controlled studio lighting",
"minimal background",
"controlled reflections",
"clean composition",
),
"Fashion": (
"fashion editorial photography",
"magazine look",
"high-end styling",
"clean composition",
"stylized studio lighting",
),
"Architecture/Interior": (
"architectural photography",
"straight verticals",
"clean geometry",
"wide field of view",
"realistic materials",
"balanced natural light",
),
"Nature": (
"nature photography",
"natural light",
"atmospheric depth",
"fine detail",
"realistic textures",
"environmental realism",
),
"3D/CG": (
"3d render",
"high quality render",
"clean geometry",
"global illumination",
"studio lighting",
"soft shadows",
),
"Graphic Design": (
"graphic design",
"poster-like composition",
"clear hierarchy",
"bold shapes",
"limited palette",
"print-ready layout",
),
"Illustration": (
"detailed illustration",
"cohesive style",
"readable shapes",
"intentional composition",
"handcrafted look",
),
"Anime/Manga": (
"anime/manga illustration",
"clean linework",
"cel shading",
"expressive character design",
"vibrant palette",
),
"Pixel Art": ("pixel art", "16-bit", "limited palette", "pixel-perfect"),
"Vector": ("vector illustration", "flat colors", "clean shapes", "crisp edges", "smooth curves"),
"Technical": ("technical illustration", "clean lines", "diagrammatic layout", "precise geometry", "labels and callouts"),
"Printmaking": ("printmaking", "ink on paper", "handcrafted texture", "carved lines", "high contrast"),
"Experimental": ("experimental aesthetic", "bold composition", "graphic lighting", "textural detail"),
"Color Grade": ("intentional color grade", "filmic tone mapping"),
"Fine Art": ("fine art", "museum-quality", "traditional techniques", "gallery piece", "handcrafted"),
"Mixed Media": ("mixed media artwork", "layered textures", "handcrafted marks", "tactile surface"),
"Street Art": ("street art mural", "spray paint texture", "urban wall", "bold graphic shapes"),
}
CATEGORY_BASE_SUFFIX = {
"Cinema": (
"filmic color science",
"smooth highlight rolloff",
"deep blacks",
"subtle film grain",
"soft halation",
"high dynamic range",
),
"Photography": (
"sharp focus",
"high detail",
"balanced exposure",
"fine texture detail",
"natural contrast",
"clean highlights",
),
"Product": (
"crisp edges",
"clean specular highlights",
"premium look",
"high detail",
"minimal clutter",
),
"Fashion": (
"editorial color grade",
"sharp focus",
"skin texture",
"catchlights",
"high detail",
),
"Architecture/Interior": (
"crisp lines",
"balanced exposure",
"clean shadows",
"high detail",
"material realism",
),
"Nature": (
"natural color",
"clean contrast",
"high detail",
"fine microtexture",
"realistic atmosphere",
),
"3D/CG": (
"clean render",
"high detail",
"sharp edges",
"high resolution",
"clean shading",
),
"Graphic Design": (
"crisp edges",
"high contrast",
"clean alignment",
"balanced negative space",
"print texture",
),
"Illustration": ("cohesive palette", "clean composition", "high detail", "believable texture"),
"Anime/Manga": ("high clarity", "crisp edges", "clean gradients", "sharp eyes"),
"Pixel Art": ("crisp pixels", "dithered shading", "readable silhouette", "sprite-like clarity"),
"Vector": ("clean layout", "consistent stroke weight", "crisp edges", "smooth curves"),
"Technical": ("high legibility", "crisp lines", "precise layout", "flat lighting"),
"Printmaking": ("paper texture", "ink texture", "rough edges", "high contrast"),
"Experimental": ("intentional design", "high contrast", "tactile texture", "coherent palette"),
"Color Grade": ("smooth highlight rolloff", "clean shadows", "color separation", "balanced contrast"),
"Fine Art": ("high detail", "handcrafted surface texture", "gallery lighting", "balanced composition"),
"Mixed Media": ("high detail", "tactile texture", "paper grain", "layered depth", "cohesive composition"),
"Street Art": ("bold color", "high contrast", "wall texture", "urban grit", "spray paint overspray"),
}
class StyleLibraryError(RuntimeError):
pass
@dataclass(frozen=True)
class StyleTemplate:
id: str
name: str
category: str
prefix: str
suffix: str
tags: Tuple[str, ...]
variants: Dict[str, Tuple[str, str]]
def variant_prompt(self, variant: str) -> Tuple[str, str, str]:
if variant == DEFAULT_VARIANT:
return DEFAULT_VARIANT, self.prefix, self.suffix
prefix, suffix = self.variants.get(variant, ("", ""))
if prefix.strip() or suffix.strip():
return variant, prefix, suffix
return DEFAULT_VARIANT, self.prefix, self.suffix
@dataclass(frozen=True)
class StyleLibrary:
styles: Tuple[StyleTemplate, ...]
by_id: Dict[str, StyleTemplate]
choices: List[str]
variants: Tuple[str, ...]
@dataclass(frozen=True)
class SearchCandidate:
style: StyleTemplate
score: int
matched_fields: Tuple[str, ...]
_CACHE_SIGS: Dict[str, Tuple[Tuple[str, float, int], ...]] = {}
_CACHE_LIBRARIES: Dict[str, StyleLibrary] = {}
def norm_space(value: str) -> str:
return " ".join((value or "").replace("\r", " ").replace("\n", " ").split())
def split_phrases(value: str, sep: str = DEFAULT_PHRASE_SEPARATOR) -> List[str]:
value = norm_space(value)
if not value:
return []
return [part for part in (p.strip() for p in value.split(sep)) if part]
def dedupe_phrases(phrases: Sequence[str]) -> List[str]:
seen = set()
out: List[str] = []
for phrase in phrases:
key = phrase.casefold()
if key in seen:
continue
seen.add(key)
out.append(phrase)
return out
def z_join(parts: Sequence[str]) -> str:
return Z_SEP.join(dedupe_phrases([p.strip() for p in parts if (p or "").strip()]))
def flux_join_sentences(parts: Sequence[str]) -> str:
parts2 = [p.strip().rstrip(".") for p in parts if (p or "").strip()]
return ". ".join(parts2).strip() + ("." if parts2 else "")
def style_to_dict(style: StyleTemplate) -> Dict[str, Any]:
models = {
name: {"prefix": prefix, "suffix": suffix}
for name, (prefix, suffix) in sorted(style.variants.items())
if prefix or suffix
}
return {
"id": style.id,
"name": style.name,
"category": style.category,
"default": {"prefix": style.prefix, "suffix": style.suffix},
"models": models,
"tags": list(style.tags),
}
def _pack_sort_key(name: str) -> Tuple[int, str]:
match = re.match(r"^(\d+)", name)
if not match:
return (9999, name.casefold())
return (int(match.group(1)), name.casefold())
def iter_pack_paths() -> List[str]:
if not os.path.isdir(STYLE_PACKS_DIR):
return []
out: List[str] = []
for name in sorted(os.listdir(STYLE_PACKS_DIR), key=_pack_sort_key):
if name.lower().endswith(".json"):
out.append(os.path.join(STYLE_PACKS_DIR, name))
return out
def _file_sig(path: str) -> Tuple[str, float, int]:
try:
st = os.stat(path)
return (path, float(st.st_mtime), int(st.st_size))
except OSError:
return (path, -1.0, -1)
def style_sources_sig(legacy_path: str = LEGACY_STYLES_PATH) -> Tuple[Tuple[str, float, int], ...]:
pack_paths = iter_pack_paths()
sources = (pack_paths + [legacy_path]) if pack_paths else [legacy_path]
return tuple(_file_sig(path) for path in sources)
def _emit_problem(load_policy: str, message: str) -> None:
if load_policy == LOAD_POLICY_STRICT:
raise StyleLibraryError(message)
print(f"PromptStyler: WARN: {message}")
def _read_json(path: str, load_policy: str) -> Optional[Dict[str, Any]]:
try:
with open(path, "r", encoding="utf-8") as handle:
data = json.load(handle) or {}
except Exception as exc:
_emit_problem(load_policy, f"unable to read style pack: {path} ({exc})")
return None
if not isinstance(data, dict):
_emit_problem(load_policy, f"style file must be a JSON object: {path}")
return None
return data
def _iter_raw_style_entries(path: str, load_policy: str) -> List[Dict[str, Any]]:
data = _read_json(path, load_policy)
if data is None:
return []
styles = data.get("styles", [])
if not isinstance(styles, list):
_emit_problem(load_policy, f"'styles' must be a list in: {path}")
return []
return [item for item in styles if isinstance(item, dict)]
def _normalize_variants(raw_models: Any, *, path: str, index: int, load_policy: str) -> Dict[str, Tuple[str, str]]:
if raw_models is None:
return {}
if not isinstance(raw_models, dict):
_emit_problem(load_policy, f"styles[{index}] models must be an object in: {path}")
return {}
out: Dict[str, Tuple[str, str]] = {}
for key, raw_value in raw_models.items():
if not isinstance(key, str) or not key.strip():
_emit_problem(load_policy, f"styles[{index}] has a blank model key in: {path}")
continue
if not isinstance(raw_value, dict):
_emit_problem(load_policy, f"styles[{index}] model '{key}' must be an object in: {path}")
continue
prefix = str(raw_value.get("prefix", "") or "")
suffix = str(raw_value.get("suffix", "") or "")
out[key] = (prefix, suffix)
return out
def _normalize_style(raw: Dict[str, Any], *, path: str, index: int, load_policy: str) -> Optional[StyleTemplate]:
sid = raw.get("id")
name = raw.get("name")
if sid is None or name is None:
_emit_problem(load_policy, f"styles[{index}] missing id or name in: {path}")
return None
default = raw.get("default", {})
if not isinstance(default, dict):
_emit_problem(load_policy, f"styles[{index}] default must be an object in: {path}")
return None
if "prefix" not in default or "suffix" not in default:
_emit_problem(load_policy, f"styles[{index}] default must include prefix and suffix in: {path}")
return None
tags_raw = raw.get("tags", []) or []
if not isinstance(tags_raw, list):
_emit_problem(load_policy, f"styles[{index}] tags must be a list in: {path}")
tags_raw = []
variants = _normalize_variants(raw.get("models", {}), path=path, index=index, load_policy=load_policy)
return StyleTemplate(
id=str(sid),
name=str(name),
category=str(raw.get("category", "Uncategorized")),
prefix=str(default.get("prefix", "") or ""),
suffix=str(default.get("suffix", "") or ""),
tags=tuple(str(tag).strip() for tag in tags_raw if str(tag).strip()),
variants=variants,
)
def _normalize_styles(raw_styles: Sequence[Dict[str, Any]], *, path: str, load_policy: str) -> List[StyleTemplate]:
out: List[StyleTemplate] = []
seen_ids = set()
seen_names = set()
for index, raw in enumerate(raw_styles):
style = _normalize_style(raw, path=path, index=index, load_policy=load_policy)
if style is None:
continue
if style.id in seen_ids:
_emit_problem(load_policy, f"duplicate id '{style.id}' in: {path}")
continue
if style.name in seen_names:
_emit_problem(load_policy, f"duplicate name '{style.name}' in: {path}")
continue
seen_ids.add(style.id)
seen_names.add(style.name)
out.append(style)
return out
def load_style_library(load_policy: str = LOAD_POLICY_LENIENT, legacy_path: str = LEGACY_STYLES_PATH) -> StyleLibrary:
if load_policy not in (LOAD_POLICY_LENIENT, LOAD_POLICY_STRICT):
raise ValueError(f"Unsupported load_policy: {load_policy}")
pack_paths = iter_pack_paths()
styles: List[StyleTemplate] = []
by_id: Dict[str, StyleTemplate] = {}
variants = {DEFAULT_VARIANT}
if not pack_paths:
raw_styles = _iter_raw_style_entries(legacy_path, load_policy)
styles = _normalize_styles(raw_styles, path=legacy_path, load_policy=load_policy)
else:
for path in pack_paths:
raw_styles = _iter_raw_style_entries(path, load_policy)
normalized = _normalize_styles(raw_styles, path=path, load_policy=load_policy)
for style in normalized:
if style.id in by_id:
_emit_problem(load_policy, f"duplicate id '{style.id}' across packs")
continue
styles.append(style)
by_id[style.id] = style
variants.update(style.variants.keys())
if not styles:
if load_policy == LOAD_POLICY_STRICT:
raise StyleLibraryError("no usable style packs found")
raw_styles = _iter_raw_style_entries(legacy_path, load_policy)
styles = _normalize_styles(raw_styles, path=legacy_path, load_policy=load_policy)
if not by_id:
for style in styles:
if style.id not in by_id:
by_id[style.id] = style
variants.update(style.variants.keys())
choices = choices_for_styles(styles) if styles else [NO_STYLES_CHOICE]
return StyleLibrary(
styles=tuple(styles),
by_id=by_id,
choices=choices,
variants=tuple([DEFAULT_VARIANT] + sorted(v for v in variants if v != DEFAULT_VARIANT)),
)
def get_cached_style_library(load_policy: str = LOAD_POLICY_LENIENT, legacy_path: str = LEGACY_STYLES_PATH) -> StyleLibrary:
sig = style_sources_sig(legacy_path)
if _CACHE_SIGS.get(load_policy) == sig:
return _CACHE_LIBRARIES[load_policy]
library = load_style_library(load_policy=load_policy, legacy_path=legacy_path)
_CACHE_SIGS[load_policy] = sig
_CACHE_LIBRARIES[load_policy] = library
return library
def choices_for_styles(styles: Sequence[StyleTemplate]) -> List[str]:
styles_sorted = sorted(styles, key=lambda style: (style.category.casefold(), style.name.casefold(), style.id))
return [f"{style.category} | {style.name} | {style.id}" for style in styles_sorted]
def style_by_choice(styles: Sequence[StyleTemplate], choice: str) -> Optional[StyleTemplate]:
if not choice:
return None
sid = choice.rsplit("|", 1)[-1].strip()
for style in styles:
if style.id == sid:
return style
return None
def resolve_style_legacy(
library: StyleLibrary,
*,
choice: str,
style_id_override: str,
) -> StyleTemplate:
style_id_override = (style_id_override or "").strip()
if style_id_override:
chosen = library.by_id.get(style_id_override)
if chosen is None:
raise StyleLibraryError(f"Unknown style_id_override: {style_id_override}")
return chosen
chosen = style_by_choice(library.styles, choice)
if chosen is None:
raise StyleLibraryError("No style selected.")
return chosen
def parse_tag_hint(value: str) -> Tuple[str, ...]:
if not value:
return ()
return tuple(part.strip().casefold() for part in value.split(",") if part.strip())
def _style_matches_filters(style: StyleTemplate, *, category_hint: str, tags: Sequence[str]) -> bool:
if category_hint and category_hint.casefold() not in style.category.casefold():
return False
if tags:
style_tags = {tag.casefold() for tag in style.tags}
if any(tag not in style_tags for tag in tags):
return False
return True
def filter_styles(
styles: Sequence[StyleTemplate],
*,
category_hint: str = "",
tag_hint: str = "",
) -> List[StyleTemplate]:
category_hint = category_hint.strip()
tags = parse_tag_hint(tag_hint)
return [style for style in styles if _style_matches_filters(style, category_hint=category_hint, tags=tags)]
def _search_tokens(query: str) -> List[str]:
return [token for token in re.split(r"[^a-z0-9_]+", query.casefold()) if token]
def _search_candidate(style: StyleTemplate, query: str, tokens: Sequence[str]) -> Optional[SearchCandidate]:
query_cf = query.casefold()
if query_cf == style.id.casefold():
return SearchCandidate(style=style, score=10000, matched_fields=("id_exact",))
if query_cf == style.name.casefold():
return SearchCandidate(style=style, score=9000, matched_fields=("name_exact",))
matched_fields: List[str] = []
score = 0
id_cf = style.id.casefold()
name_cf = style.name.casefold()
category_cf = style.category.casefold()
tags_cf = [tag.casefold() for tag in style.tags]
for token in tokens:
token_score = 0
if token in id_cf:
token_score += 60
matched_fields.append("id")
if token in name_cf:
token_score += 40
matched_fields.append("name")
if token in category_cf:
token_score += 25
matched_fields.append("category")
if any(token == tag for tag in tags_cf):
token_score += 35
matched_fields.append("tag_exact")
elif any(token in tag for tag in tags_cf):
token_score += 15
matched_fields.append("tag")
score += token_score
if score <= 0:
return None
score += min(len(tokens), 5)
return SearchCandidate(style=style, score=score, matched_fields=tuple(matched_fields))
def search_styles(
styles: Sequence[StyleTemplate],
query: str,
*,
category_hint: str = "",
tag_hint: str = "",
) -> List[SearchCandidate]:
query = query.strip()
if not query:
return []
filtered = filter_styles(styles, category_hint=category_hint, tag_hint=tag_hint)
tokens = _search_tokens(query)
if not tokens:
return []
candidates: List[SearchCandidate] = []
for style in filtered:
candidate = _search_candidate(style, query, tokens)
if candidate is not None:
candidates.append(candidate)
candidates.sort(
key=lambda item: (
-item.score,
item.style.category.casefold(),
item.style.name.casefold(),
item.style.id,
)
)
return candidates
def resolve_style(
library: StyleLibrary,
*,
selection_mode: str,
choice: str,
style_id_override: str,
style_search: str,
category_hint: str = "",
tag_hint: str = "",
) -> StyleTemplate:
style_id_override = (style_id_override or "").strip()
category_hint = (category_hint or "").strip()
tag_hint = (tag_hint or "").strip()
# Preserve old graphs: if a saved workflow already uses style_id_override and
# the new selection mode input is left at its default, still honor the id.
if selection_mode == "id" or (selection_mode == "dropdown" and style_id_override):
chosen = library.by_id.get(style_id_override)
if chosen is None:
raise StyleLibraryError(f"Unknown style_id_override: {style_id_override}")
return chosen
if selection_mode == "dropdown":
chosen = style_by_choice(library.styles, choice)
if chosen is None:
raise StyleLibraryError("No style selected.")
return chosen
if selection_mode != "search":
raise StyleLibraryError(f"Unsupported selection_mode: {selection_mode}")
matches = search_styles(
library.styles,
style_search,
category_hint=category_hint,
tag_hint=tag_hint,
)
if not matches:
raise StyleLibraryError(
f"No styles matched search query: {style_search.strip() or '(empty query)'}"
)
top = matches[0]
tied = [item for item in matches if item.score == top.score]
if len(tied) > 1:
preview = "; ".join(
f"{item.style.category} | {item.style.name} | {item.style.id}"
for item in matches[:5]
)
raise StyleLibraryError(f"Ambiguous style search '{style_search}': {preview}")
return top.style
def _style_limit(style_strength: str) -> Optional[int]:
return {
"subtle": 3,
"normal": 6,
"strong": None,
}.get(style_strength, None)
def _limit_phrases(phrases: Sequence[str], style_strength: str) -> List[str]:
limit = _style_limit(style_strength)
if limit is None:
return list(phrases)
return list(phrases[:limit])
def compose_default_prompt(
prompt: str,
style: StyleTemplate,
*,
style_strength: str = "strong",
dedupe_mode: str = "smart",
overlay_style: Optional[StyleTemplate] = None,
) -> Tuple[str, Dict[str, Any]]:
base_prefix = _limit_phrases(split_phrases(style.prefix), style_strength)
base_suffix = _limit_phrases(split_phrases(style.suffix), style_strength)
overlay_suffix = _limit_phrases(split_phrases(overlay_style.suffix), style_strength) if overlay_style else []
user_phrase_keys = {phrase.casefold() for phrase in split_phrases(prompt)}
style_phrase_keys = set()
def include_phrase(phrase: str) -> bool:
key = phrase.casefold()
if dedupe_mode == "off":
return True
if key in style_phrase_keys:
return False
if key in user_phrase_keys:
return False
style_phrase_keys.add(key)
return True
prefix_phrases = [phrase for phrase in base_prefix if include_phrase(phrase)]
suffix_phrases = [phrase for phrase in base_suffix if include_phrase(phrase)]
overlay_phrases = [phrase for phrase in overlay_suffix if include_phrase(phrase)]
parts = [
DEFAULT_PHRASE_SEPARATOR.join(prefix_phrases),
prompt,
DEFAULT_PHRASE_SEPARATOR.join(suffix_phrases + overlay_phrases),
]
styled_prompt = DEFAULT_PHRASE_SEPARATOR.join([part for part in parts if part])
return styled_prompt, {
"base_prefix_phrases": prefix_phrases,
"base_suffix_phrases": suffix_phrases,
"overlay_suffix_phrases": overlay_phrases,
}
def compose_prompt(
prompt: str,
style: StyleTemplate,
*,
template_variant: str,
style_strength: str = "strong",
dedupe_mode: str = "smart",
overlay_style: Optional[StyleTemplate] = None,
) -> Tuple[str, Dict[str, Any]]:
prompt = prompt or ""
applied_variant, prefix, suffix = style.variant_prompt(template_variant)
overlay_variant = DEFAULT_VARIANT
overlay_suffix = ""
if overlay_style is not None:
overlay_variant, _overlay_prefix, overlay_suffix = overlay_style.variant_prompt(template_variant)
if applied_variant == DEFAULT_VARIANT:
styled_prompt, details = compose_default_prompt(
prompt,
style,
style_strength=style_strength,
dedupe_mode=dedupe_mode,
overlay_style=overlay_style,
)
details["variant"] = applied_variant
details["overlay_variant"] = overlay_variant if overlay_style else ""
return styled_prompt, details
parts = [prompt, prefix, suffix, overlay_suffix]
styled_prompt = norm_space(" ".join(part for part in parts if part))
return styled_prompt, {
"variant": applied_variant,
"overlay_variant": overlay_variant if overlay_style else "",
"base_prefix_phrases": [],
"base_suffix_phrases": [],
"overlay_suffix_phrases": [],
}
def compose_prompt_legacy(
prompt: str,
style: StyleTemplate,
*,
template_variant: str,
) -> Tuple[str, Dict[str, Any]]:
prompt = prompt or ""
applied_variant, prefix, suffix = style.variant_prompt(template_variant)
if applied_variant != DEFAULT_VARIANT:
styled_prompt = norm_space(" ".join(part for part in (prompt, prefix, suffix) if part))
return styled_prompt, {
"variant": applied_variant,
"base_prefix_phrases": [],
"base_suffix_phrases": [],
}
prefix_phrases = split_phrases(style.prefix)
prompt_phrases = split_phrases(prompt)
suffix_phrases = split_phrases(style.suffix)
phrases = dedupe_phrases(prefix_phrases + prompt_phrases + suffix_phrases)
styled_prompt = DEFAULT_PHRASE_SEPARATOR.join(phrase for phrase in phrases if phrase)
return styled_prompt, {
"variant": DEFAULT_VARIANT,
"base_prefix_phrases": prefix_phrases,
"base_suffix_phrases": suffix_phrases,
}
def is_color_grade_style(style: StyleTemplate) -> bool:
return style.category.startswith("Color Grade")
def resolve_overlay_style(library: StyleLibrary, overlay_style_id: str) -> Optional[StyleTemplate]:
overlay_style_id = (overlay_style_id or "").strip()
if not overlay_style_id:
return None
chosen = library.by_id.get(overlay_style_id)
if chosen is None:
raise StyleLibraryError(f"Unknown overlay_style_id: {overlay_style_id}")
if not is_color_grade_style(chosen):
raise StyleLibraryError(
f"overlay_style_id must reference a Color Grade style: {overlay_style_id}"
)
return chosen
def make_style_meta(
*,
chosen_style: Optional[StyleTemplate],
overlay_style: Optional[StyleTemplate],
requested_variant: str,
applied_variant: str,
selection_mode: str,
style_search: str,
category_hint: str,
tag_hint: str,
style_strength: str,
dedupe_mode: str,
on_missing_style: str,
prompt_details: Mapping[str, Any],
error: str = "",
) -> str:
payload = {
"status": "error" if error else "ok",
"error": error,
"selection_mode": selection_mode,
"style_search": style_search,
"category_hint": category_hint,
"tag_hint": tag_hint,
"requested_variant": requested_variant,
"applied_variant": applied_variant,
"style_strength": style_strength,
"dedupe_mode": dedupe_mode,
"on_missing_style": on_missing_style,
"style": {
"id": chosen_style.id if chosen_style else "",
"name": chosen_style.name if chosen_style else "",
"category": chosen_style.category if chosen_style else "",
"tags": list(chosen_style.tags) if chosen_style else [],
},
"overlay": {
"id": overlay_style.id if overlay_style else "",
"name": overlay_style.name if overlay_style else "",
"category": overlay_style.category if overlay_style else "",
"tags": list(overlay_style.tags) if overlay_style else [],
},
"prompt_details": dict(prompt_details),
}
return json.dumps(payload, ensure_ascii=True, sort_keys=True)
def available_categories(styles: Sequence[StyleTemplate]) -> List[str]:
categories = {style.category for style in styles if style.category.strip()}
categories.update(CATEGORY_BASE_PREFIX.keys())
categories.update(CATEGORY_BASE_SUFFIX.keys())
return sorted(categories, key=lambda value: value.casefold())
def write_legacy_snapshot(path: str = LEGACY_STYLES_PATH, load_policy: str = LOAD_POLICY_STRICT) -> int:
library = load_style_library(load_policy=load_policy)
payload = {"version": 1, "styles": [style_to_dict(style) for style in library.styles]}
os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, "w", encoding="utf-8") as handle:
json.dump(payload, handle, indent=2, ensure_ascii=True)
handle.write("\n")
return len(library.styles)
+51 -51
View File
@@ -6,13 +6,13 @@
"name": "Cinematic Anamorphic",
"category": "Cinema",
"default": {
"prefix": "cinematic film still, professional cinematography, cinematic framing, carefully composed shot, atmospheric depth, realistic lighting, cinematic, anamorphic lens, shallow depth of field, dramatic lighting",
"prefix": "cinematic film still, professional cinematography, cinematic framing, carefully composed shot, atmospheric depth, realistic lighting, cinematic, anamorphic look, shallow depth of field, dramatic lighting",
"suffix": "film grain, subtle halation, rich contrast, color graded, filmic color science, smooth highlight rolloff, deep blacks, subtle film grain, soft halation, high dynamic range"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cinematic anamorphic film still, shallow depth of field. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: tense, grounded, realistic. Texture: subtle film grain and halation."
"suffix": "Style: cinematic anamorphic film still, shallow depth of field. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: tense, grounded, realistic. Texture: subtle film grain and halation. Key cues: cinematic, anamorphic look, shallow depth of field, dramatic lighting. Finish cues: film grain, subtle halation, rich contrast, color graded. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -32,7 +32,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: film noir, cinematic film still. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: cohesive, story-driven."
"suffix": "Style: film noir, cinematic film still. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: cohesive, story-driven. Key cues: film noir, high contrast, hard shadows, black and white. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -51,7 +51,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: neo noir, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cohesive, story-driven."
"suffix": "Style: neo noir, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cohesive, story-driven. Key cues: neo-noir, moody contrast, deep shadows, night scene. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -70,7 +70,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: gritty crime thriller, cinematic film still. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: cohesive, story-driven."
"suffix": "Style: gritty crime thriller, cinematic film still. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: cohesive, story-driven. Key cues: gritty crime thriller, handheld feel, muted colors. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -89,7 +89,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: dreamy romance, cinematic film still. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: cohesive, story-driven."
"suffix": "Style: dreamy romance, cinematic film still. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: cohesive, story-driven. Key cues: dreamy cinematic, soft focus, warm tones. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -102,13 +102,13 @@
"name": "Sci-Fi Neon",
"category": "Cinema",
"default": {
"prefix": "cinematic film still, professional cinematography, cinematic framing, carefully composed shot, atmospheric depth, realistic lighting, sci-fi cinematic, neon glow, wet streets, atmospheric haze",
"prefix": "cinematic film still, professional cinematography, cinematic framing, carefully composed shot, atmospheric depth, realistic lighting, sci-fi cinematic, neon glow, wet reflective surfaces, atmospheric haze",
"suffix": "cinematic color grade, subtle film grain, filmic color science, smooth highlight rolloff, deep blacks, soft halation, high dynamic range"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: sci-fi neon, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cohesive, story-driven."
"suffix": "Style: sci-fi neon, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cohesive, story-driven. Key cues: sci-fi cinematic, neon glow, wet reflective surfaces, atmospheric haze. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -127,7 +127,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: epic fantasy, cinematic film still. Lighting: god rays through haze, high dynamic range. Mood: cohesive, story-driven."
"suffix": "Style: epic fantasy, cinematic film still. Lighting: god rays through haze, high dynamic range. Mood: cohesive, story-driven. Key cues: epic cinematic, volumetric light rays, dramatic scale. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -140,13 +140,13 @@
"name": "Documentary Handheld",
"category": "Cinema",
"default": {
"prefix": "cinematic film still, professional cinematography, cinematic framing, carefully composed shot, atmospheric depth, realistic lighting, documentary, handheld camera, natural light, authentic moments",
"prefix": "cinematic film still, professional cinematography, cinematic framing, carefully composed shot, atmospheric depth, realistic lighting, documentary, handheld framing, natural light, authentic moments",
"suffix": "cinematic color grade, subtle film grain, filmic color science, smooth highlight rolloff, deep blacks, soft halation, high dynamic range"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: documentary handheld, cinematic film still. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: cohesive, story-driven."
"suffix": "Style: documentary handheld, cinematic film still. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: cohesive, story-driven. Key cues: documentary, handheld framing, natural light, authentic moments. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -165,7 +165,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vintage 16mm, cinematic film still. Lighting: practical tungsten lamps, warm falloff. Mood: cohesive, story-driven."
"suffix": "Style: vintage 16mm, cinematic film still. Lighting: practical tungsten lamps, warm falloff. Mood: cohesive, story-driven. Key cues: 16mm film look, visible grain, soft contrast. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -184,7 +184,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vintage 35mm, cinematic film still. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: cohesive, story-driven."
"suffix": "Style: vintage 35mm, cinematic film still. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: cohesive, story-driven. Key cues: 35mm film look, gentle grain, natural color. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -203,7 +203,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: imax blockbuster, cinematic film still. Lighting: high-impact key light with controlled fill. Mood: cohesive, story-driven."
"suffix": "Style: imax blockbuster, cinematic film still. Lighting: high-impact key light with controlled fill. Mood: cohesive, story-driven. Key cues: large format cinema, crisp detail, dramatic composition. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -222,7 +222,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: horror suspense, cinematic film still. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: cohesive, story-driven."
"suffix": "Style: horror suspense, cinematic film still. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: cohesive, story-driven. Key cues: cinematic horror, low key lighting, ominous atmosphere. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -241,7 +241,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cozy slice-of-life, cinematic film still. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: cohesive, story-driven."
"suffix": "Style: cozy slice-of-life, cinematic film still. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: cohesive, story-driven. Key cues: warm cinematic, intimate framing, soft contrast. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -260,7 +260,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: desert western, cinematic film still. Lighting: harsh sun with long shadows, heat haze. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: desert western, cinematic film still. Lighting: harsh sun with long shadows, heat haze. Mood: cinematic, cohesive, story-driven. Key cues: cinematic western, wide landscape, dusty atmosphere. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -279,7 +279,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cold war spy thriller, cinematic film still. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: cold war spy thriller, cinematic film still. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: cinematic, cohesive, story-driven. Key cues: spy thriller, moody interiors, controlled palette. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -298,7 +298,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: post-apocalyptic, cinematic film still. Lighting: harsh daylight filtered through dust and smoke. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: post-apocalyptic, cinematic film still. Lighting: harsh daylight filtered through dust and smoke. Mood: cinematic, cohesive, story-driven. Key cues: post-apocalyptic cinematic, weathered textures, dusty haze. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -317,7 +317,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: space opera, cinematic film still. Lighting: bright rim light against deep space, high contrast. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: space opera, cinematic film still. Lighting: bright rim light against deep space, high contrast. Mood: cinematic, cohesive, story-driven. Key cues: space opera cinematic, high contrast, dramatic scale. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -336,7 +336,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: underwater drama, cinematic film still. Lighting: underwater caustic patterns, shafts of light through water. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: underwater drama, cinematic film still. Lighting: underwater caustic patterns, shafts of light through water. Mood: cinematic, cohesive, story-driven. Key cues: underwater cinematic, caustics, floating particles. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -355,7 +355,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: candlelit period drama, cinematic film still. Lighting: warm candlelight with soft falloff and deep shadows. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: candlelit period drama, cinematic film still. Lighting: warm candlelight with soft falloff and deep shadows. Mood: cinematic, cohesive, story-driven. Key cues: period drama, candlelit, warm shadows. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -374,7 +374,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: rainy night alley, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: rainy night alley, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cinematic, cohesive, story-driven. Key cues: cinematic night scene, rainy street, wet reflections. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -393,7 +393,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: bright day comedy, cinematic film still. Lighting: bright daylight with soft fill, cheerful contrast. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: bright day comedy, cinematic film still. Lighting: bright daylight with soft fill, cheerful contrast. Mood: cinematic, cohesive, story-driven. Key cues: bright cinematic, clean colors, lighthearted tone. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -412,7 +412,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mystery thriller, cinematic film still. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: mystery thriller, cinematic film still. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: cinematic, cohesive, story-driven. Key cues: mystery thriller, moody, subtle haze. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -425,13 +425,13 @@
"name": "High-Speed Action",
"category": "Cinema",
"default": {
"prefix": "cinematic film still, professional cinematography, cinematic framing, carefully composed shot, atmospheric depth, realistic lighting, action blockbuster, dynamic camera, sharp highlights",
"prefix": "cinematic film still, professional cinematography, cinematic framing, carefully composed shot, atmospheric depth, realistic lighting, action blockbuster, dynamic framing, sharp highlights",
"suffix": "cinematic color grade, subtle film grain, filmic color science, smooth highlight rolloff, deep blacks, soft halation, high dynamic range"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: high-speed action, cinematic film still. Lighting: high-impact lighting, crisp highlights, controlled motion blur. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: high-speed action, cinematic film still. Lighting: high-impact lighting, crisp highlights, controlled motion blur. Mood: cinematic, cohesive, story-driven. Key cues: action blockbuster, dynamic framing, sharp highlights. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -450,7 +450,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: courtroom drama, cinematic film still. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: courtroom drama, cinematic film still. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: cinematic, cohesive, story-driven. Key cues: dramatic courtroom scene, serious tone, clean framing. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -469,7 +469,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: coming-of-age, cinematic film still. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: coming-of-age, cinematic film still. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: cinematic, cohesive, story-driven. Key cues: warm cinematic, naturalistic, gentle grain. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -488,7 +488,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: slow cinema, cinematic film still. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: slow cinema, cinematic film still. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: cinematic, cohesive, story-driven. Key cues: slow cinema, minimalist framing, quiet atmosphere. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -507,7 +507,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: surreal dream sequence, cinematic film still. Lighting: ethereal soft light with gentle bloom and haze. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: surreal dream sequence, cinematic film still. Lighting: ethereal soft light with gentle bloom and haze. Mood: cinematic, cohesive, story-driven. Key cues: surreal cinematic, soft diffusion, dreamlike haze. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -526,7 +526,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: war documentary, cinematic film still. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: war documentary, cinematic film still. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: cinematic, cohesive, story-driven. Key cues: war documentary, gritty realism, handheld. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -539,13 +539,13 @@
"name": "Sports Broadcast Cinematic",
"category": "Cinema",
"default": {
"prefix": "cinematic film still, professional cinematography, cinematic framing, carefully composed shot, atmospheric depth, realistic lighting, sports cinematic, telephoto compression, fast shutter feel",
"prefix": "cinematic film still, professional cinematography, cinematic framing, carefully composed shot, atmospheric depth, realistic lighting, sports cinematic, compressed perspective, fast shutter feel",
"suffix": "cinematic color grade, subtle film grain, filmic color science, smooth highlight rolloff, deep blacks, soft halation, high dynamic range"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: sports broadcast cinematic, cinematic film still. Lighting: stadium lights, crisp highlights, dynamic contrast. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: sports broadcast cinematic, cinematic film still. Lighting: stadium lights, crisp highlights, dynamic contrast. Mood: cinematic, cohesive, story-driven. Key cues: sports cinematic, compressed perspective, fast shutter feel. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -564,7 +564,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: retro futurism, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: retro futurism, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cinematic, cohesive, story-driven. Key cues: retro futurism, clean shapes, neon accents. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -583,7 +583,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: urban nightscape, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: urban nightscape, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cinematic, cohesive, story-driven. Key cues: urban night cinematic, city lights, bokeh. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -602,7 +602,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: snowstorm survival, cinematic film still. Lighting: cold overcast light with blowing snow and low visibility. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: snowstorm survival, cinematic film still. Lighting: cold overcast light with blowing snow and low visibility. Mood: cinematic, cohesive, story-driven. Key cues: cinematic survival, snowstorm, cold palette. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -621,7 +621,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: tropical heat, cinematic film still. Lighting: bright sun filtered through foliage, humid haze. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: tropical heat, cinematic film still. Lighting: bright sun filtered through foliage, humid haze. Mood: cinematic, cohesive, story-driven. Key cues: cinematic tropical, humid atmosphere, vibrant greens. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -640,7 +640,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: firelit camp scene, cinematic film still. Lighting: warm firelight with flicker and soft smoke haze. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: firelit camp scene, cinematic film still. Lighting: warm firelight with flicker and soft smoke haze. Mood: cinematic, cohesive, story-driven. Key cues: cinematic firelight, warm glow, night ambience. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -659,7 +659,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: neon club scene, cinematic film still. Lighting: saturated neon lights, moving beams, haze in the air. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: neon club scene, cinematic film still. Lighting: saturated neon lights, moving beams, haze in the air. Mood: cinematic, cohesive, story-driven. Key cues: cinematic club, colored lights, smoke haze. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -678,7 +678,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: foggy harbor, cinematic film still. Lighting: fog diffusion around practical lights, soft silhouettes. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: foggy harbor, cinematic film still. Lighting: fog diffusion around practical lights, soft silhouettes. Mood: cinematic, cohesive, story-driven. Key cues: cinematic fog, dock lights, atmospheric depth. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -697,7 +697,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vintage home video, cinematic film still. Lighting: simple indoor practical lights, gentle falloff. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: vintage home video, cinematic film still. Lighting: simple indoor practical lights, gentle falloff. Mood: cinematic, cohesive, story-driven. Key cues: retro home video, soft focus, analog feel. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -716,7 +716,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: coastal road trip, cinematic film still. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: coastal road trip, cinematic film still. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: cinematic, cohesive, story-driven. Key cues: cinematic road trip, sunlit coastline, nostalgic tone. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -735,7 +735,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: subway platform, cinematic film still. Lighting: practical fluorescent lights with mixed color temperature. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: subway platform, cinematic film still. Lighting: practical fluorescent lights with mixed color temperature. Mood: cinematic, cohesive, story-driven. Key cues: urban cinematic, subway platform, gritty realism. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -754,7 +754,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: rainy car interior, cinematic film still. Lighting: streetlights and dashboard glow, rain reflections on glass. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: rainy car interior, cinematic film still. Lighting: streetlights and dashboard glow, rain reflections on glass. Mood: cinematic, cohesive, story-driven. Key cues: cinematic car interior, rain streaks, reflections. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -773,7 +773,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: desaturated war film, cinematic film still. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: desaturated war film, cinematic film still. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: cinematic, cohesive, story-driven. Key cues: war film look, desaturated palette, gritty texture. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -792,7 +792,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: bright musical number, cinematic film still. Lighting: bright stage key light with clean fill and saturated colors. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: bright musical number, cinematic film still. Lighting: bright stage key light with clean fill and saturated colors. Mood: cinematic, cohesive, story-driven. Key cues: classic musical, clean stage lighting, bold colors. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -811,7 +811,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: sunlit kitchen scene, cinematic film still. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: sunlit kitchen scene, cinematic film still. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: cinematic, cohesive, story-driven. Key cues: slice-of-life cinematic, sunlit interior, warm realism. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -830,7 +830,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: neon diner, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: neon diner, cinematic film still. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: cinematic, cohesive, story-driven. Key cues: retro diner cinematic, neon accents, night scene. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -849,7 +849,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: storm chase, cinematic film still. Lighting: storm light with dramatic contrast and wind-driven rain. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: storm chase, cinematic film still. Lighting: storm light with dramatic contrast and wind-driven rain. Mood: cinematic, cohesive, story-driven. Key cues: cinematic storm, dramatic clouds, high tension. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -868,7 +868,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: quiet library mystery, cinematic film still. Lighting: soft window beams through dust, warm practical accents. Mood: cinematic, cohesive, story-driven."
"suffix": "Style: quiet library mystery, cinematic film still. Lighting: soft window beams through dust, warm practical accents. Mood: cinematic, cohesive, story-driven. Key cues: mystery cinematic, dusty light beams, quiet tension. Finish cues: cinematic color grade, subtle film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+84 -84
View File
@@ -6,13 +6,13 @@
"name": "Clean Product Photo",
"category": "Product",
"default": {
"prefix": "commercial product photography, studio strobe lighting, seamless background, controlled reflections, clean composition, studio product photography, clean background, softbox lighting, sharp focus",
"prefix": "commercial product photography, controlled studio lighting, minimal background, controlled reflections, clean composition, studio product photography, clean background, diffused studio lighting, sharp focus",
"suffix": "high detail, minimal reflections, crisp edges, clean specular highlights, premium look, minimal clutter"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: professional studio product photograph on a clean seamless background. Lighting: studio strobe with a large softbox, clean specular highlights. Composition: centered, clean silhouette, crisp edges."
"suffix": "Style: professional studio product photograph on a clean minimal background. Lighting: large diffused key light with clean specular highlights. Composition: centered, clean silhouette, crisp edges. Key cues: studio product photography, clean background, diffused studio lighting, sharp focus. Finish cues: high detail, minimal reflections, crisp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -26,13 +26,13 @@
"name": "Rembrandt Portrait",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, portrait photography, Rembrandt lighting, 85mm lens, shallow depth of field",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, portrait photography, Rembrandt lighting, portrait compression, shallow depth of field",
"suffix": "natural skin texture, sharp eyes, subtle background blur, sharp focus, high detail, balanced exposure, fine texture detail, natural contrast, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: rembrandt portrait, realistic photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: rembrandt portrait, realistic photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: portrait photography, Rembrandt lighting, portrait compression, shallow depth of field. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -45,13 +45,13 @@
"name": "Butterfly Lighting Portrait",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, portrait photography, butterfly lighting, beauty dish, clean catchlights",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, portrait photography, butterfly lighting, centered key light, clean catchlights",
"suffix": "natural skin texture, sharp eyes, subtle background blur, sharp focus, high detail, balanced exposure, fine texture detail, natural contrast, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: butterfly lighting portrait, realistic photograph. Lighting: beauty dish overhead, soft fill, clean shadows under cheekbones. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: butterfly lighting portrait, realistic photograph. Lighting: centered overhead key light with soft fill, clean shadows under cheekbones. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: portrait photography, butterfly lighting, centered key light, clean catchlights. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -70,7 +70,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: split lighting portrait, realistic photograph. Lighting: dramatic side lighting with deep shadows and bright highlights. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: split lighting portrait, realistic photograph. Lighting: dramatic side lighting with deep shadows and bright highlights. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: portrait photography, split lighting, high contrast. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -89,7 +89,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: high key studio portrait, realistic photograph. Lighting: broad soft key, high fill ratio, bright seamless background. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: high key studio portrait, realistic photograph. Lighting: broad soft key, high fill ratio, bright seamless background. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: high key portrait, bright background, soft shadows. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -108,7 +108,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: low key studio portrait, realistic photograph. Lighting: dramatic side lighting with deep shadows and bright highlights. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: low key studio portrait, realistic photograph. Lighting: dramatic side lighting with deep shadows and bright highlights. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: low key portrait, deep shadows, dramatic contrast. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -127,7 +127,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: golden hour portrait, realistic photograph. Lighting: golden hour backlight with subtle lens flare and warm rim light. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: golden hour portrait, realistic photograph. Lighting: golden hour backlight with warm rim light and gentle bloom. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: golden hour portrait, warm backlight, natural skin tones. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -146,7 +146,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: street portrait, realistic photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: street portrait, realistic photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: street portrait, candid, natural light. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -165,7 +165,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: editorial portrait, realistic photograph. Lighting: studio strobe with a large softbox, clean specular highlights. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: editorial portrait, realistic photograph. Lighting: large diffused key light with clean specular highlights. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: editorial portrait, stylized lighting, clean composition. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -184,7 +184,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: rim light portrait, realistic photograph. Lighting: strong rim light from behind, soft key, deep background. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: rim light portrait, realistic photograph. Lighting: strong rim light from behind, soft key, deep background. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: portrait photography, rim light, dark background, subject separation. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -203,7 +203,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: broad lighting portrait, realistic photograph. Lighting: key light on the camera side of the face, soft fill. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: broad lighting portrait, realistic photograph. Lighting: key light on the near side of the face, soft fill. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: portrait photography, broad lighting, soft shadows. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -222,7 +222,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: short lighting portrait, realistic photograph. Lighting: key light on the far side of the face, controlled fill. Focus: sharp eyes, natural skin texture, gentle background blur."
"suffix": "Style: short lighting portrait, realistic photograph. Lighting: key light on the far side of the face, controlled fill. Focus: sharp eyes, natural skin texture, gentle background blur. Key cues: portrait photography, short lighting, sculpted face. Finish cues: natural skin texture, sharp eyes, subtle background blur. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -241,7 +241,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: street photography, realistic photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: grounded, natural, believable."
"suffix": "Style: street photography, realistic photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: grounded, natural, believable. Key cues: street photography, candid moment, natural light. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -259,7 +259,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: travel documentary, realistic photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: grounded, natural, believable."
"suffix": "Style: travel documentary, realistic photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: grounded, natural, believable. Key cues: travel documentary photography, authentic details, natural color. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -277,7 +277,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: food photography, realistic photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: grounded, natural, believable."
"suffix": "Style: food photography, realistic photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: grounded, natural, believable. Key cues: food photography, shallow depth of field, appetizing lighting. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -295,7 +295,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: macro photography, realistic photograph. Lighting: diffused macro lighting, controlled reflections, crisp microtexture. Mood: grounded, natural, believable."
"suffix": "Style: macro photography, realistic photograph. Lighting: diffused macro lighting, controlled reflections, crisp microtexture. Mood: grounded, natural, believable. Key cues: macro photography, extreme close-up, micro texture, shallow depth of field. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -307,13 +307,13 @@
"name": "Wildlife Photography",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, wildlife photography, telephoto lens, natural habitat",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, wildlife photography, compressed perspective, natural habitat",
"suffix": "realistic detail, clean color, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: wildlife photography, realistic photograph. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: grounded, natural, believable."
"suffix": "Style: wildlife photography, realistic photograph. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: grounded, natural, believable. Key cues: wildlife photography, compressed perspective, natural habitat. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -331,7 +331,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: architecture photography, realistic photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: grounded, natural, believable."
"suffix": "Style: architecture photography, realistic photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: grounded, natural, believable. Key cues: architecture photography, straight lines, clean geometry. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -343,13 +343,13 @@
"name": "Interior Photography",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, interior photography, wide angle lens, natural window light",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, interior photography, wide field of view, soft natural light",
"suffix": "realistic detail, clean color, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: interior photography, realistic photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: grounded, natural, believable."
"suffix": "Style: interior photography, realistic photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: grounded, natural, believable. Key cues: interior photography, wide field of view, soft natural light. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -361,13 +361,13 @@
"name": "Aerial Drone Photo",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, aerial drone photography, top-down view, sharp detail",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, aerial photography, top-down view, sharp detail",
"suffix": "realistic detail, clean color, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: aerial drone photo, realistic photograph. Lighting: clear daylight with defined but soft shadows. Mood: grounded, natural, believable."
"suffix": "Style: aerial top-down photograph, realistic photograph. Lighting: clear daylight with defined but soft shadows. Mood: grounded, natural, believable. Key cues: aerial photography, top-down view, sharp detail. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -379,13 +379,13 @@
"name": "Long Exposure",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, long exposure photography, motion blur trails, tripod shot",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, long exposure photography, motion blur trails, locked-off frame",
"suffix": "realistic detail, clean color, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: long exposure, realistic photograph. Lighting: dusk ambient with long exposure light trails. Mood: grounded, natural, believable."
"suffix": "Style: long exposure, realistic photograph. Lighting: dusk ambient with long exposure light trails. Mood: grounded, natural, believable. Key cues: long exposure photography, motion blur trails, locked-off frame. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -403,7 +403,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: black and white, realistic photograph. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: grounded, natural, believable."
"suffix": "Style: black and white, realistic photograph. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: grounded, natural, believable. Key cues: black and white photography, strong tonal range, fine grain. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -421,7 +421,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: infrared, realistic photograph. Lighting: bright midday sun, strong infrared contrast. Mood: grounded, natural, believable."
"suffix": "Style: infrared, realistic photograph. Lighting: bright midday sun, strong infrared contrast. Mood: grounded, natural, believable. Key cues: infrared photography, surreal foliage tones, high contrast. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -433,13 +433,13 @@
"name": "Tilt-Shift Miniature",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, tilt-shift photography, miniature effect, selective focus",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, miniature perspective effect, selective focus, diorama-like scale",
"suffix": "realistic detail, clean color, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: tilt-shift miniature, realistic photograph. Lighting: daylight with crisp miniature-scale shadows. Mood: grounded, natural, believable."
"suffix": "Style: miniature diorama perspective effect, realistic photograph. Lighting: daylight with crisp miniature-scale shadows. Mood: grounded, natural, believable. Key cues: miniature perspective effect, selective focus, diorama-like scale. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -457,7 +457,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: night street photo, realistic photograph. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: grounded, natural, believable."
"suffix": "Style: night street photo, realistic photograph. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Mood: grounded, natural, believable. Key cues: night street photography, city lights, bokeh, wet reflections. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -475,7 +475,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: concert photography, realistic photograph. Lighting: dramatic stage lighting with colored highlights. Mood: grounded, natural, believable."
"suffix": "Style: concert photography, realistic photograph. Lighting: dramatic stage lighting with colored highlights. Mood: grounded, natural, believable. Key cues: concert photography, stage lights, dynamic contrast. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -493,7 +493,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: automotive photo, realistic photograph. Lighting: controlled reflections, crisp highlights, studio or golden hour. Mood: grounded, natural, believable."
"suffix": "Style: automotive photo, realistic photograph. Lighting: controlled reflections, crisp highlights, studio or golden hour. Mood: grounded, natural, believable. Key cues: automotive photography, clean reflections, sharp lines. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -511,7 +511,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: wedding photo, realistic photograph. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: grounded, natural, believable."
"suffix": "Style: wedding photo, realistic photograph. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: grounded, natural, believable. Key cues: wedding photography, soft romantic light, candid moments. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -529,7 +529,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: still life photo, realistic photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: grounded, natural, believable."
"suffix": "Style: still life photo, realistic photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: grounded, natural, believable. Key cues: still life photography, careful composition, soft shadows. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -547,7 +547,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: flat lay, realistic photograph. Lighting: soft overhead diffused light, minimal harsh shadows. Mood: grounded, natural, believable."
"suffix": "Style: flat lay, realistic photograph. Lighting: soft overhead diffused light, minimal harsh shadows. Mood: grounded, natural, believable. Key cues: flat lay photography, top-down, organized composition. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -565,7 +565,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: on-camera flash, realistic photograph. Lighting: on-camera flash, hard shadows, punchy contrast. Mood: grounded, natural, believable."
"suffix": "Style: direct flash snapshot, realistic photograph. Lighting: direct on-axis flash, hard shadows, punchy contrast. Mood: grounded, natural, believable. Key cues: direct flash photography, hard shadows, party snapshot. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -577,13 +577,13 @@
"name": "Ring Flash Portrait",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, ring flash portrait, crisp catchlight, high clarity",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, on-axis circular flash portrait, crisp catchlight, high clarity",
"suffix": "realistic detail, clean color, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: ring flash portrait, realistic photograph. Lighting: ring flash with crisp shadows and clean contrast. Mood: grounded, natural, believable."
"suffix": "Style: on-axis circular flash portrait, realistic photograph. Lighting: on-axis circular flash with crisp shadows and clean contrast. Mood: grounded, natural, believable. Key cues: on-axis circular flash portrait, crisp catchlight, high clarity. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -601,7 +601,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cinematic backlight, realistic photograph. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: grounded, natural, believable."
"suffix": "Style: cinematic backlight, realistic photograph. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: grounded, natural, believable. Key cues: backlit photography, rim light, atmospheric haze. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -619,7 +619,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: silhouette, realistic photograph. Lighting: strong backlight creating a crisp silhouette. Mood: grounded, natural, believable."
"suffix": "Style: silhouette, realistic photograph. Lighting: strong backlight creating a crisp silhouette. Mood: grounded, natural, believable. Key cues: silhouette photography, strong backlight, clean outline. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -637,7 +637,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: rainy window, realistic photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: grounded, natural, believable."
"suffix": "Style: rainy window, realistic photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: grounded, natural, believable. Key cues: moody window scene, raindrops on glass, soft bokeh. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -655,7 +655,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: astrophotography, realistic photograph. Lighting: moonless night, crisp stars, low noise look. Mood: grounded, natural, believable."
"suffix": "Style: astrophotography, realistic photograph. Lighting: moonless night, crisp stars, low noise look. Mood: grounded, natural, believable. Key cues: astrophotography, night sky, stars, clean exposure. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -667,13 +667,13 @@
"name": "Milky Way Landscape",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, milky way, night landscape, wide angle, stars",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, milky way, night landscape, wide field of view, stars",
"suffix": "realistic detail, clean color, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: milky way landscape, realistic photograph. Lighting: starlight and faint airglow, crisp night contrast. Mood: grounded, natural, believable."
"suffix": "Style: milky way landscape, realistic photograph. Lighting: starlight and faint airglow, crisp night contrast. Mood: grounded, natural, believable. Key cues: milky way, night landscape, wide field of view, stars. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -691,7 +691,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: underwater photo, realistic photograph. Lighting: underwater light beams and caustics, soft particulate haze. Mood: grounded, natural, believable."
"suffix": "Style: underwater photo, realistic photograph. Lighting: underwater light beams and caustics, soft particulate haze. Mood: grounded, natural, believable. Key cues: underwater photography, clear water, floating particles, blue tones. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -703,13 +703,13 @@
"name": "Real Estate Photo",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, real estate photography, wide angle, clean lines, bright interior",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, real estate photography, wide field of view, clean lines, bright interior",
"suffix": "realistic detail, clean color, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: real estate photo, realistic photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: grounded, natural, believable."
"suffix": "Style: real estate photo, realistic photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: grounded, natural, believable. Key cues: real estate photography, wide field of view, clean lines, bright interior. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -721,13 +721,13 @@
"name": "Sports Action Freeze",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, sports photography, fast shutter, sharp action, telephoto",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, sports photography, fast shutter, sharp action, compressed perspective",
"suffix": "realistic detail, clean color, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: sports action freeze, realistic photograph. Lighting: stadium lighting, crisp highlights, frozen motion. Mood: grounded, natural, believable."
"suffix": "Style: sports action freeze, realistic photograph. Lighting: stadium lighting, crisp highlights, frozen motion. Mood: grounded, natural, believable. Key cues: sports photography, fast shutter, sharp action, compressed perspective. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -745,7 +745,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: motion blur action, realistic photograph. Lighting: controlled highlights supporting motion blur and panning. Mood: grounded, natural, believable."
"suffix": "Style: motion blur action, realistic photograph. Lighting: controlled highlights supporting motion blur and panning. Mood: grounded, natural, believable. Key cues: motion blur, panning shot, dynamic movement. Finish cues: realistic detail, clean color, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -763,7 +763,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: soft 35mm film look, realistic photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Texture: subtle grain and gentle halation."
"suffix": "Style: soft 35mm film look, realistic photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Texture: subtle grain and gentle halation. Key cues: 35mm film look, soft contrast, gentle grain. Finish cues: natural skin tones, subtle halation, film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -782,7 +782,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vibrant slide film look, realistic photograph. Lighting: bright daylight with saturated color separation. Texture: subtle grain and gentle halation."
"suffix": "Style: vibrant slide film look, realistic photograph. Lighting: bright daylight with saturated color separation. Texture: subtle grain and gentle halation. Key cues: slide film look, punchy colors, crisp contrast. Finish cues: natural skin tones, subtle halation, film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -801,7 +801,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: muted documentary film, realistic photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Texture: subtle grain and gentle halation."
"suffix": "Style: muted documentary film, realistic photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Texture: subtle grain and gentle halation. Key cues: documentary film look, muted palette, fine grain. Finish cues: natural skin tones, subtle halation, film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -820,7 +820,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: warm tungsten film, realistic photograph. Lighting: warm practical lamps, gentle falloff, cozy ambience. Texture: subtle grain and gentle halation."
"suffix": "Style: warm tungsten film, realistic photograph. Lighting: warm practical lamps, gentle falloff, cozy ambience. Texture: subtle grain and gentle halation. Key cues: warm tungsten film look, practical lights, soft glow. Finish cues: natural skin tones, subtle halation, film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -839,7 +839,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cool blue hour film, realistic photograph. Lighting: blue hour ambient mixed with warm practicals, subtle glow. Texture: subtle grain and gentle halation."
"suffix": "Style: cool blue hour film, realistic photograph. Lighting: blue hour ambient mixed with warm practicals, subtle glow. Texture: subtle grain and gentle halation. Key cues: blue hour film look, cool tones, city lights. Finish cues: natural skin tones, subtle halation, film grain. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -858,7 +858,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: deep focus, realistic photograph. Lighting: even controlled light supporting deep focus clarity. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: deep focus, realistic photograph. Lighting: even controlled light supporting deep focus clarity. Focus: clear subject, believable materials, coherent lighting. Key cues: deep focus, sharp foreground and background, clean optics. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -877,7 +877,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: shallow dof bokeh, realistic photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: shallow dof bokeh, realistic photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Focus: clear subject, believable materials, coherent lighting. Key cues: shallow depth of field, creamy bokeh, subject isolation. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -896,7 +896,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: high dynamic range, realistic photograph. Lighting: naturalistic scene lighting with preserved highlights. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: high dynamic range, realistic photograph. Lighting: naturalistic scene lighting with preserved highlights. Focus: clear subject, believable materials, coherent lighting. Key cues: high dynamic range, balanced highlights and shadows, realistic tones. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -915,7 +915,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: soft diffusion glow, realistic photograph. Lighting: soft diffused key light with gentle bloom. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: soft diffusion glow, realistic photograph. Lighting: soft diffused key light with gentle bloom. Focus: clear subject, believable materials, coherent lighting. Key cues: soft diffusion, gentle glow, dreamy highlights. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -934,7 +934,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: hard flash shadow, realistic photograph. Lighting: hard flash with sharp shadows and specular highlights. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: hard flash shadow, realistic photograph. Lighting: hard flash with sharp shadows and specular highlights. Focus: clear subject, believable materials, coherent lighting. Key cues: hard flash, sharp shadows, crisp contrast. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -953,7 +953,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: moody window light, realistic photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: moody window light, realistic photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Focus: clear subject, believable materials, coherent lighting. Key cues: window light, soft shadows, intimate mood. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -972,7 +972,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: backlit rim light, realistic photograph. Lighting: golden hour backlight with subtle lens flare and warm rim light. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: backlit rim light, realistic photograph. Lighting: golden hour backlight with warm rim light and gentle bloom. Focus: clear subject, believable materials, coherent lighting. Key cues: backlit, rim light, atmospheric haze. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -991,7 +991,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: volumetric light beams, realistic photograph. Lighting: strong directional light creating volumetric beams through haze. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: volumetric light beams, realistic photograph. Lighting: strong directional light creating volumetric beams through haze. Focus: clear subject, believable materials, coherent lighting. Key cues: volumetric light, god rays, haze. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1004,13 +1004,13 @@
"name": "Rain Reflections",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, wet streets, reflections, night bokeh",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, wet reflective surfaces, reflections, night bokeh",
"suffix": "realistic detail, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: rain reflections, realistic photograph. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: rain reflections, realistic photograph. Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces. Focus: clear subject, believable materials, coherent lighting. Key cues: wet reflective surfaces, reflections, night bokeh. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1029,7 +1029,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: minimalist studio, realistic photograph. Lighting: studio strobe with a large softbox, clean specular highlights. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: minimalist studio, realistic photograph. Lighting: large diffused key light with clean specular highlights. Focus: clear subject, believable materials, coherent lighting. Key cues: minimalist studio photo, clean seamless, controlled reflections. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1048,7 +1048,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: close-up texture study, realistic photograph. Lighting: raking light to reveal texture and surface detail. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: close-up texture study, realistic photograph. Lighting: raking light to reveal texture and surface detail. Focus: clear subject, believable materials, coherent lighting. Key cues: close-up photo, micro texture, tactile detail. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1067,7 +1067,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: soft overcast natural, realistic photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: soft overcast natural, realistic photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Focus: clear subject, believable materials, coherent lighting. Key cues: soft overcast, even skin tones, gentle contrast. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1086,7 +1086,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: high key commercial, realistic photograph. Lighting: large soft sources with high fill for clean whites. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: high key commercial, realistic photograph. Lighting: large soft sources with high fill for clean whites. Focus: clear subject, believable materials, coherent lighting. Key cues: high key commercial, clean whites, soft shadows. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1105,7 +1105,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: low key dramatic, realistic photograph. Lighting: dramatic side lighting with deep shadows and bright highlights. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: low key dramatic, realistic photograph. Lighting: dramatic side lighting with deep shadows and bright highlights. Focus: clear subject, believable materials, coherent lighting. Key cues: low key, deep shadows, controlled highlights. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1124,7 +1124,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: specular highlight study, realistic photograph. Lighting: small hard sources for crisp specular highlights with controlled fill. Focus: clear subject, believable materials, coherent lighting."
"suffix": "Style: specular highlight study, realistic photograph. Lighting: small hard sources for crisp specular highlights with controlled fill. Focus: clear subject, believable materials, coherent lighting. Key cues: specular highlights, controlled reflections, shiny surfaces. Finish cues: realistic detail, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1137,13 +1137,13 @@
"name": "Lens Vibe: 24mm Wide Angle",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, wide angle, 24mm lens feel, strong perspective",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, wide field of view, 24mm perspective, strong perspective",
"suffix": "clean optics, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic photograph with a specific lens perspective. Composition: wide-angle perspective with strong leading lines. Lighting: overcast daylight, even illumination, soft shadow transitions."
"suffix": "Style: realistic photograph with a specific perspective and field of view. Composition: wide field of view with strong leading lines. Lighting: overcast daylight, even illumination, soft shadow transitions. Key cues: wide field of view, 24mm perspective, strong perspective. Finish cues: clean optics, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1156,13 +1156,13 @@
"name": "Lens Vibe: 35mm Documentary",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, 35mm lens feel, documentary framing, natural perspective",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, 35mm perspective, documentary framing, natural perspective",
"suffix": "clean optics, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic photograph with a specific lens perspective. Composition: documentary framing with natural perspective. Lighting: overcast daylight, even illumination, soft shadow transitions."
"suffix": "Style: realistic photograph with a specific perspective and field of view. Composition: documentary framing with natural perspective. Lighting: overcast daylight, even illumination, soft shadow transitions. Key cues: 35mm perspective, documentary framing, natural perspective. Finish cues: clean optics, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1175,13 +1175,13 @@
"name": "Lens Vibe: 50mm Natural",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, 50mm lens feel, natural perspective, balanced framing",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, 50mm perspective, natural perspective, balanced framing",
"suffix": "clean optics, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic photograph with a specific lens perspective. Composition: balanced perspective and natural proportions. Lighting: overcast daylight, even illumination, soft shadow transitions."
"suffix": "Style: realistic photograph with a specific perspective and field of view. Composition: balanced perspective and natural proportions. Lighting: overcast daylight, even illumination, soft shadow transitions. Key cues: 50mm perspective, natural perspective, balanced framing. Finish cues: clean optics, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1194,13 +1194,13 @@
"name": "Lens Vibe: 85mm Portrait",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, 85mm lens feel, portrait compression, shallow depth of field",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, 85mm portrait perspective, portrait compression, shallow depth of field",
"suffix": "clean optics, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic photograph with a specific lens perspective. Composition: flattering compression with shallow depth of field. Lighting: overcast daylight, even illumination, soft shadow transitions."
"suffix": "Style: realistic photograph with a specific perspective and field of view. Composition: flattering compression with shallow depth of field. Lighting: overcast daylight, even illumination, soft shadow transitions. Key cues: 85mm portrait perspective, portrait compression, shallow depth of field. Finish cues: clean optics, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -1213,13 +1213,13 @@
"name": "Lens Vibe: 135mm Telephoto",
"category": "Photography",
"default": {
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, telephoto compression, 135mm lens feel, compressed background",
"prefix": "professional photography, realistic lighting, natural color rendition, coherent shadows, true-to-life textures, strong compression, 135mm compressed perspective, compressed background",
"suffix": "clean optics, natural contrast, sharp focus, high detail, balanced exposure, fine texture detail, clean highlights"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic photograph with a specific lens perspective. Composition: strong telephoto compression and layered background. Lighting: overcast daylight, even illumination, soft shadow transitions."
"suffix": "Style: realistic photograph with a specific perspective and field of view. Composition: strong compression and layered background. Lighting: overcast daylight, even illumination, soft shadow transitions. Key cues: strong compression, 135mm compressed perspective, compressed background. Finish cues: clean optics, natural contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+49 -49
View File
@@ -12,7 +12,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: ink wash illustration on textured paper. Lighting: soft ambient light emphasizing paper texture and brush edges. Mood: calm, minimal, expressive."
"suffix": "Style: ink wash illustration on textured paper. Lighting: soft ambient light emphasizing paper texture and brush edges. Mood: calm, minimal, expressive. Key cues: ink wash illustration, expressive brushwork, paper texture. Finish cues: soft diffusion, monochrome ink tones, subtle bleeding edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -32,7 +32,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: anime illustration with clean linework and cel shading. Lighting: clear, readable key light with soft fill. Mood: vibrant, expressive, high clarity."
"suffix": "Style: anime illustration with clean linework and cel shading. Lighting: clear, readable key light with soft fill. Mood: vibrant, expressive, high clarity. Key cues: anime style, clean line art, cel shading, vibrant colors. Finish cues: sharp eyes, expressive face, crisp edges, detailed background. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -52,7 +52,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: watercolor illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: watercolor illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: watercolor illustration, translucent washes, soft edges, granulation, textured paper. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -70,7 +70,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: gouache painting. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: gouache painting. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: gouache painting, opaque matte paint, bold shapes, flat color blocks, brush strokes. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -88,7 +88,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: oil painting. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: oil painting. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: oil painting, painterly, rich brush strokes, impasto texture, canvas texture. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -106,7 +106,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: acrylic painting. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: acrylic painting. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: acrylic painting, bold brushwork, layered paint, matte finish, clean edges. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -124,7 +124,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: colored pencil drawing. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: colored pencil drawing. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: colored pencil drawing, fine hatching, paper grain, soft shading, hand-drawn texture. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -142,7 +142,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: graphite pencil sketch. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: graphite pencil sketch. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: graphite pencil sketch, linework, shaded rendering, paper texture, loose sketch. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -160,7 +160,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: charcoal drawing. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: charcoal drawing. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: charcoal drawing, smudged shading, dusty texture, high contrast, paper grain. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -178,7 +178,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: pastel drawing. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: pastel drawing. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: soft pastel drawing, powdery texture, blended gradients, soft edges, paper tooth. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -196,7 +196,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: ink line art. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: ink line art. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: ink line art, clean linework, high contrast, minimal shading, smooth contours. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -214,7 +214,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: marker illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: marker illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: marker illustration, smooth gradients, bold shapes, clean outlines, paper texture. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -232,7 +232,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: children's book illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: children's book illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: children's book illustration, storybook style, soft shapes, warm palette, gentle shading. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -250,7 +250,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: graphic novel panel. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: graphic novel panel. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: graphic novel panel, dramatic inking, heavy shadows, panel composition, high contrast. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -268,7 +268,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: manga panel. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: manga panel. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: manga panel, black ink, screentones, dynamic paneling, clean linework. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -286,7 +286,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: anime keyframe. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: anime keyframe. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: anime key visual, clean lineart, cel shading, expressive faces, vibrant colors. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -304,7 +304,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: pixel art. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: pixel art. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: pixel art, 16-bit, limited palette, dithering, crisp pixels. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -322,7 +322,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vector flat. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: vector flat. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: vector illustration, flat colors, clean shapes, minimal shading, crisp edges. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -340,7 +340,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: isometric vector. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: isometric vector. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: isometric vector illustration, clean geometry, consistent shadows, flat colors, crisp lines. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -358,7 +358,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: technical diagram. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: technical diagram. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: technical illustration, clean lines, diagrammatic layout, labeled parts, flat lighting. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -376,7 +376,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: linocut print. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: linocut print. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: linocut print, carved line texture, rough edges, high contrast, ink on paper. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -394,7 +394,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: woodcut print. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: woodcut print. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: woodcut print, carved texture, bold lines, high contrast, ink on paper. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -412,7 +412,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: engraving. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: engraving. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: engraving, fine hatching, crosshatching, vintage print, antique paper. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -430,7 +430,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: etching. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: etching. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: etching, crosshatching, fine lines, paper texture, vintage print. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -448,7 +448,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: stippling. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: stippling. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: stippling, ink dots, dot shading, high detail, paper texture. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -466,7 +466,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: pointillism. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: pointillism. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: pointillism, tiny color dots, optical blending, painterly, soft edges. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -484,7 +484,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: ukiyo-e woodblock. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: ukiyo-e woodblock. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: ukiyo-e woodblock print, flat color areas, stylized linework, traditional print texture, limited palette. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -502,7 +502,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: impressionist painting. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: impressionist painting. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: impressionist painting, broken brush strokes, soft edges, painterly light, colorful palette. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -520,7 +520,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: expressionist painting. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: expressionist painting. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: expressionist painting, bold color, emotional brushwork, strong shapes, high contrast. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -538,7 +538,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: minimal line illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: minimal line illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: minimal line illustration, single line drawing, clean negative space, simple forms, minimal shading. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -556,7 +556,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: sticker illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: sticker illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: sticker illustration, thick outline, flat colors, simple shading, die-cut sticker. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -574,7 +574,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: chalkboard sketch. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: chalkboard sketch. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: chalkboard drawing, chalk texture, hand-drawn, dusty strokes, blackboard background. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -592,7 +592,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: blueprint drawing. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: blueprint drawing. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: blueprint drawing, white lines on blue, technical diagram, schematic layout, clean labels. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -610,7 +610,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: paper cutout. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: paper cutout. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: paper cutout illustration, layered paper, handcrafted, soft cast shadows, cut edges. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -628,7 +628,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: collage illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive."
"suffix": "Style: collage illustration. Lighting: soft even light that supports the medium. Mood: consistent, intentional, cohesive. Key cues: collage illustration, torn paper edges, mixed media, layered textures, paper grain. Finish cues: clean composition, cohesive palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -646,7 +646,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: art nouveau illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: art nouveau illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: art nouveau illustration, ornamental lines, flowing forms. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -665,7 +665,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: art deco illustration illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: art deco illustration illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: art deco illustration, geometric elegance, stylized forms. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -684,7 +684,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: surrealism illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: surrealism illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: surreal illustration, dream logic, unexpected juxtapositions. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -703,7 +703,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cubism illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: cubism illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: cubist painting style, geometric planes, fragmented forms. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -722,7 +722,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: fauvism illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: fauvism illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: fauvist colors, bold palette, simplified shapes. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -741,7 +741,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: minimalist illustration illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: minimalist illustration illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: minimalist illustration, simple forms, strong negative space. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -760,7 +760,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: retro 1950s illustration illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: retro 1950s illustration illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: retro 1950s illustration, mid-century shapes, limited palette. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -779,7 +779,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vintage scientific plate illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: vintage scientific plate illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: vintage scientific illustration, fine lines, paper texture. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -798,7 +798,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: fantasy map illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: fantasy map illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: fantasy map illustration, ink lines, parchment texture. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -817,7 +817,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: isometric pixel art illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: isometric pixel art illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: isometric pixel art, limited palette, crisp pixels. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -836,7 +836,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: chibi character illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: chibi character illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: chibi style, cute proportions, clean outlines. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -855,7 +855,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mecha blueprint illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: mecha blueprint illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: mecha blueprint, technical drawing, clean labels. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -874,7 +874,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: storybook pencil illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: storybook pencil illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: storybook pencil drawing, soft shading, gentle lines. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -893,7 +893,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: painterly concept art illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional."
"suffix": "Style: painterly concept art illustration. Lighting: soft even light appropriate to the medium. Mood: cohesive and intentional. Key cues: painterly concept art, loose brushwork, atmospheric perspective. Finish cues: cohesive palette, clean composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+285
View File
@@ -0,0 +1,285 @@
{
"version": 1,
"styles": [
{
"id": "repro_mimeograph_duplication",
"name": "Reprographic: Mimeograph Duplication",
"category": "Printmaking/Expanded",
"default": {
"prefix": "printmaking, ink on paper, handcrafted texture, carved lines, high contrast, mimeograph duplication, stencil master, inked drum texture, duplicated sheets",
"suffix": "slight misregistration, inky density shifts, porous paper texture, office-print rhythm, paper texture, ink texture, rough edges, high contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mimeograph duplication with stencil-master imperfections. Lighting: flat even light preserving paper and ink density variation. Texture: inked drum transfer, porous paper, and repeated-sheet inconsistency. Key cues: mimeograph duplication, stencil master, inked drum texture, duplicated sheets. Finish cues: slight misregistration, inky density shifts, porous paper texture, office-print rhythm. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"mimeograph",
"print"
]
},
{
"id": "repro_spirit_duplicator_copy",
"name": "Reprographic: Spirit Duplicator",
"category": "Printmaking/Expanded",
"default": {
"prefix": "printmaking, ink on paper, handcrafted texture, carved lines, high contrast, spirit duplicator copy, purple aniline tones, soft duplicate texturing, school-office print",
"suffix": "lavender cast, soft edges, faded pressure transfer, paper softness, paper texture, ink texture, rough edges, high contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: spirit-duplicator copy with characteristic purple cast. Lighting: flat diffuse light that keeps the faded duplicate texture legible. Texture: soft transfer edges, pale dye density, and absorbent paper. Key cues: spirit duplicator copy, purple aniline tones, soft duplicate texturing, school-office print. Finish cues: lavender cast, soft edges, faded pressure transfer, paper softness. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"spirit_duplicator",
"print"
]
},
{
"id": "repro_diazo_blueprint",
"name": "Reprographic: Diazo Blueprint",
"category": "Photography/Alt Process",
"default": {
"prefix": "cyanotype print, blueprint blue, pale white linework, coated paper texture, graphic plan aesthetic",
"suffix": "paper grain, soft process fading, crisp line edges, matte coated sheet, controlled contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cyanotype-like blueprint print with pale linework on deep blue paper. Lighting: flat even light preserving paper grain and line clarity. Texture: matte coated paper, soft process fading, and crisp pale lines. Key cues: blueprint blue, pale white linework, coated paper texture, graphic plan aesthetic. Finish cues: paper grain, soft process fading, crisp line edges, matte coated sheet. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"diazo",
"blueprint"
]
},
{
"id": "repro_whiteprint_copy",
"name": "Reprographic: Whiteprint Copy",
"category": "Photography/Alt Process",
"default": {
"prefix": "whiteprint aesthetic, pale paper ground, soft blue linework, engineering-print look, matte sheet texture",
"suffix": "fine paper grain, faint blue tint, clean line edges, document paper wear, restrained contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: whiteprint-style reproduction with blue linework on pale paper. Lighting: neutral even light preserving line clarity and sheet texture. Texture: matte paper, faint blue tint, and lightly worn print edges. Key cues: pale paper ground, soft blue linework, engineering-print look, matte sheet texture. Finish cues: fine paper grain, faint blue tint, clean line edges, document paper wear. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"whiteprint",
"technical_copy"
]
},
{
"id": "repro_offset_litho_misregistration",
"name": "Reprographic: Offset Misregistration",
"category": "Graphic Design",
"default": {
"prefix": "offset print look, slight CMYK drift, layered overprint color, poster ink texture, graphic print surface",
"suffix": "registration drift, ink overlap edges, paper tooth, press imperfection texture, bold printed contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: offset print with slight CMYK misregistration and overprinted color layers. Lighting: flat print-preview light with minimal shading. Texture: paper tooth, ink overlap edges, and gentle press drift. Key cues: offset print look, slight CMYK drift, layered overprint color, poster ink texture. Finish cues: registration drift, ink overlap edges, paper tooth, press imperfection texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"offset",
"graphic"
]
},
{
"id": "repro_newsprint_halftone",
"name": "Reprographic: Newsprint Halftone",
"category": "Graphic Design",
"default": {
"prefix": "newsprint print look, coarse halftone dots, absorbent paper stock, editorial print texture, monochrome or limited color",
"suffix": "dot gain, soft ink spread, paper fuzz, cheap stock texture, gritty printed contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: newsprint reproduction with coarse halftone dots and absorbent paper texture. Lighting: flat editorial light keeping dot structure readable. Texture: dot gain, soft ink spread, and cheap stock fuzz. Key cues: coarse halftone dots, absorbent paper stock, editorial print texture, limited-color print. Finish cues: dot gain, soft ink spread, paper fuzz, cheap stock texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"newsprint",
"halftone"
]
},
{
"id": "repro_xerox_zine_photocopy",
"name": "Reprographic: Xerox Zine Photocopy",
"category": "Graphic Design",
"default": {
"prefix": "photocopy zine aesthetic, stark black toner, rough collage print, DIY copy-art texture, matte office paper",
"suffix": "toner speckle, edge shadowing, paper curl, rough copy texture, gritty contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: photocopy zine print with stark black toner and rough copy-art texture. Lighting: flat copy-table light with no dramatic shading. Texture: toner speckle, edge shadowing, and matte office paper curl. Key cues: photocopy zine aesthetic, stark black toner, rough collage print, DIY copy-art texture. Finish cues: toner speckle, edge shadowing, paper curl, rough copy texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"photocopy",
"zine"
]
},
{
"id": "repro_carbon_copy_manifold",
"name": "Reprographic: Carbon Copy Manifold",
"category": "Printmaking/Expanded",
"default": {
"prefix": "printmaking, ink on paper, handcrafted texture, carved lines, high contrast, carbon copy manifold, pressure transfer typing, duplicate form, ghosted text impression",
"suffix": "soft duplicate offset, paper stack pressure marks, form-stock texture, typed imprint feel, paper texture, ink texture, rough edges, high contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: carbon-copy manifold form with pressure-transferred duplicate impression. Lighting: neutral even light revealing paper stack pressure and duplicate offset. Texture: soft transfer, form-stock grain, and faint stacked-sheet marks. Key cues: carbon copy manifold, pressure transfer typing, duplicate form, ghosted text impression. Finish cues: soft duplicate offset, paper stack pressure marks, form-stock texture, typed imprint feel. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"carbon_copy",
"office_print"
]
},
{
"id": "repro_contact_sheet_proof",
"name": "Reprographic: Contact Sheet Proof",
"category": "Photography/Alt Process",
"default": {
"prefix": "contact-sheet darkroom print, small photo borders, glossy proof paper, analog print-sheet aesthetic",
"suffix": "glossy paper sheen, narrow frame borders, archival print texture, soft darkroom proof feel"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: darkroom contact-sheet print with small bordered frames and glossy proof paper. Lighting: soft even light preserving paper sheen and border traces. Texture: glossy proof paper, archival print surface, and subtle frame spacing. Key cues: contact-sheet darkroom print, small photo borders, glossy proof paper, analog print-sheet aesthetic. Finish cues: glossy paper sheen, narrow frame borders, archival print texture, soft darkroom proof feel. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"contact_sheet",
"analog_print"
]
},
{
"id": "repro_rotogravure_ink_pattern",
"name": "Reprographic: Rotogravure Ink Pattern",
"category": "Printmaking/Expanded",
"default": {
"prefix": "printmaking, ink on paper, handcrafted texture, carved lines, high contrast, rotogravure print, copper-cell ink pattern, smooth tonal reproduction, press cylinder texture",
"suffix": "fine cell grain, velvety darks, printed paper texture, high-volume press character, paper texture, ink texture, rough edges, high contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: rotogravure reproduction with smooth tonal printing and fine cell patterning. Lighting: flat print-preview light preserving tonal reproduction and cell grain. Texture: velvety darks, fine gravure grain, and coated paper response. Key cues: rotogravure print, copper-cell ink pattern, smooth tonal reproduction, press cylinder texture. Finish cues: fine cell grain, velvety darks, printed paper texture, high-volume press character. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"rotogravure",
"print"
]
},
{
"id": "repro_cmyk_registration_proof",
"name": "Reprographic: CMYK Registration Proof",
"category": "Graphic Design",
"default": {
"prefix": "CMYK proof print, layered process color, slight registration drift, print-shop proof texture, offset ink surface",
"suffix": "ink alignment variation, paper tooth, printed color layering, proof-sheet texture, clean graphic contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: CMYK proof print with layered process color and slight registration drift. Lighting: neutral inspection light with minimal glare. Texture: paper tooth, printed color layering, and subtle alignment variation. Key cues: CMYK proof print, layered process color, slight registration drift, print-shop proof texture. Finish cues: ink alignment variation, paper tooth, printed color layering, proof-sheet texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"cmyk",
"proof"
]
},
{
"id": "repro_thermographic_raised_ink",
"name": "Reprographic: Thermographic Raised Ink",
"category": "Printmaking/Expanded",
"default": {
"prefix": "printmaking, ink on paper, handcrafted texture, carved lines, high contrast, thermographic raised ink, powder-fused lettering, slight gloss, printed stationery",
"suffix": "raised ink relief, subtle sheen, paper texture, formal print finish, ink texture, rough edges, high contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: thermographic print with powder-fused raised ink. Lighting: soft raking light revealing slight relief and glossy edges. Texture: raised lettering, subtle sheen, and fine stationery stock. Key cues: thermographic raised ink, powder-fused lettering, slight gloss, printed stationery. Finish cues: raised ink relief, subtle sheen, paper texture, formal print finish. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"thermography",
"raised_ink"
]
},
{
"id": "repro_rubber_stamp_overprint",
"name": "Reprographic: Rubber Stamp Overprint",
"category": "Printmaking/Expanded",
"default": {
"prefix": "printmaking, ink on paper, handcrafted texture, carved lines, high contrast, rubber stamp overprint, layered ink stamps, imperfect repeat, manual registration",
"suffix": "ink pooling, stamp edge chatter, paper tooth, hand-pressed irregularity, paper texture, ink texture, rough edges, high contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: rubber-stamped overprint with imperfect manual registration. Lighting: flat diffuse light preserving ink pooling and stamp edge chatter. Texture: hand-pressed irregularity, paper tooth, and layered ink density. Key cues: rubber stamp overprint, layered ink stamps, imperfect repeat, manual registration. Finish cues: ink pooling, stamp edge chatter, paper tooth, hand-pressed irregularity. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"rubber_stamp",
"overprint"
]
},
{
"id": "repro_dot_gain_press_sheet",
"name": "Reprographic: Dot Gain Press Sheet",
"category": "Graphic Design",
"default": {
"prefix": "screened print texture, dot gain, soft ink spread, absorbent press paper, calibration-print look",
"suffix": "softened dot edges, paper absorbency, density variation, press-sheet texture, matte printed surface"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: screened print showing dot gain and soft ink spread on absorbent paper. Lighting: neutral inspection light that keeps screened texture readable. Texture: softened dot edges, density variation, and matte press paper. Key cues: screened print texture, dot gain, soft ink spread, absorbent press paper. Finish cues: softened dot edges, paper absorbency, density variation, press-sheet texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"reprographic",
"dot_gain",
"press"
]
}
]
}
+405
View File
@@ -0,0 +1,405 @@
{
"version": 1,
"styles": [
{
"id": "artist_leonardo_da_vinci_sfumato",
"name": "Artist: Leonardo da Vinci (Sfumato + Subtle Chiaroscuro)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Leonardo da Vinci, High Renaissance, sfumato, subtle tonal transitions, delicate glazing, gentle chiaroscuro, atmospheric perspective",
"suffix": "smooth gradients, refined realism, calm harmony, soft atmospheric depth, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: High Renaissance painting in the style of Leonardo da Vinci, refined realism with sfumato. Lighting: gentle chiaroscuro with soft shadow transitions. Technique: delicate glazing, subtle tonal gradients, atmospheric perspective. Key cues: in the style of Leonardo da Vinci, High Renaissance, sfumato, subtle tonal transitions, delicate glazing, gentle chiaroscuro, atmospheric perspective. Finish cues: smooth gradients, refined realism, calm harmony, soft atmospheric depth. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "leonardo_da_vinci", "high_renaissance", "sfumato"]
},
{
"id": "artist_raphael_harmonious_renaissance",
"name": "Artist: Raphael (Harmonious High Renaissance)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Raphael, High Renaissance, harmonious composition, idealized forms, graceful linework, clear perspective, soft modeling, balanced symmetry",
"suffix": "serene mood, smooth paint handling, gentle highlights, harmonious color, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: High Renaissance painting in the style of Raphael, clarity and harmony. Composition: balanced symmetry, clear perspective, idealized forms, graceful contours. Color: harmonious palette with soft transitions and calm unity. Key cues: in the style of Raphael, High Renaissance, harmonious composition, idealized forms, graceful linework, clear perspective, balanced symmetry. Finish cues: serene mood, smooth paint handling, gentle highlights, harmonious color. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "raphael", "high_renaissance"]
},
{
"id": "artist_michelangelo_monumental_fresco",
"name": "Artist: Michelangelo (Monumental Forms + Fresco)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Michelangelo, High Renaissance, monumental forms, sculptural anatomy, dramatic foreshortening, powerful gestures, fresco painting, bold modeling",
"suffix": "monumental scale, dramatic value range, strong highlights and shadows, dynamic composition, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: monumental High Renaissance fresco painting in the style of Michelangelo. Form: sculptural anatomy, heroic scale, dramatic foreshortening, powerful gestures. Shading: bold modeling with a wide value range and clear form separation. Key cues: in the style of Michelangelo, High Renaissance, monumental forms, sculptural anatomy, dramatic foreshortening, fresco painting, bold modeling. Finish cues: monumental scale, dramatic value range, strong highlights and shadows, dynamic composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "michelangelo", "high_renaissance", "fresco"]
},
{
"id": "artist_botticelli_linear_grace_tempera",
"name": "Artist: Sandro Botticelli (Linear Grace + Tempera)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Sandro Botticelli, Early Renaissance, linear grace, flowing contours, delicate tempera-like handling, decorative patterning, clear silhouettes, gentle pastel palette",
"suffix": "crisp contours, delicate shading, ornamental detail, elegant rhythm, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Early Renaissance painting in the style of Sandro Botticelli, emphasizing linear grace. Line: flowing contours, clear silhouettes, elegant rhythm, ornamental detail. Technique: tempera-like precision with delicate shading and gentle color harmony. Key cues: in the style of Sandro Botticelli, Early Renaissance, linear grace, flowing contours, decorative patterning, clear silhouettes. Finish cues: crisp contours, delicate shading, ornamental detail, elegant rhythm. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "botticelli", "early_renaissance"]
},
{
"id": "artist_caravaggio_tenebrism",
"name": "Artist: Caravaggio (Tenebrism + Dramatic Realism)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Caravaggio, Baroque, tenebrism, intense chiaroscuro, dramatic realism, strong directional light, deep shadow fields, theatrical contrast",
"suffix": "high contrast, hard-edged light falloff, rich darks, warm highlights, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Baroque oil painting in the style of Caravaggio, dramatic realism with tenebrism. Lighting: intense chiaroscuro with deep shadow fields and hard-edged light falloff. Mood: tense and theatrical, with bold value contrasts. Key cues: in the style of Caravaggio, Baroque, tenebrism, intense chiaroscuro, dramatic realism, strong directional light. Finish cues: high contrast, rich darks, warm highlights, hard-edged light falloff. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "caravaggio", "baroque", "tenebrism"]
},
{
"id": "artist_rembrandt_chiaroscuro_impasto",
"name": "Artist: Rembrandt van Rijn (Chiaroscuro + Impasto)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Rembrandt van Rijn, Dutch Golden Age, warm chiaroscuro, impasto highlights, rich earth tones, painterly brushwork, subtle glazing, psychological depth",
"suffix": "thick paint texture, warm amber light, deep soft shadows, rich tonal range, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Dutch Golden Age oil painting in the style of Rembrandt van Rijn, warm chiaroscuro and painterly depth. Lighting: dramatic but warm light with deep soft shadows and strong form modeling. Texture: impasto highlights with visible brushwork and subtle glazing in midtones. Key cues: in the style of Rembrandt van Rijn, Dutch Golden Age, warm chiaroscuro, impasto highlights, rich earth tones, painterly brushwork. Finish cues: thick paint texture, warm amber light, deep soft shadows, rich tonal range. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "rembrandt", "dutch_golden_age", "chiaroscuro", "impasto"]
},
{
"id": "artist_vermeer_luminous_daylight",
"name": "Artist: Johannes Vermeer (Luminous Soft Daylight)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Johannes Vermeer, Dutch Golden Age, luminous daylight, soft diffused side light, tranquil composition, subtle color harmony, smooth glazing, quiet realism",
"suffix": "pearl-like highlights, clean edges, calm atmosphere, delicate texture, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Dutch Golden Age painting in the style of Johannes Vermeer, luminous realism and calm clarity. Lighting: soft diffused daylight from one side, gentle shadow transitions, pearl-like highlights. Technique: smooth glazing, clean edges, subtle color harmony, quiet atmosphere. Key cues: in the style of Johannes Vermeer, Dutch Golden Age, luminous daylight, soft diffused side light, smooth glazing, subtle color harmony. Finish cues: pearl-like highlights, clean edges, calm atmosphere, delicate texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "vermeer", "dutch_golden_age", "luminous"]
},
{
"id": "artist_velazquez_tonal_realism",
"name": "Artist: Diego Velázquez (Tonal Realism + Loose Brushwork)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Diego Velázquez, Spanish Baroque, tonal realism, loose confident brushwork, subdued palette, atmospheric space, naturalistic rendering, understated highlights",
"suffix": "painterly edges, tonal unity, subtle highlights, atmospheric depth, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Spanish Baroque painting in the style of Diego Velázquez, naturalistic tonal realism. Brushwork: loose and confident with painterly edges and subtle transitions. Color: subdued palette with tonal unity and understated highlights, emphasizing atmosphere. Key cues: in the style of Diego Velázquez, Spanish Baroque, tonal realism, loose confident brushwork, subdued palette, atmospheric space. Finish cues: painterly edges, tonal unity, subtle highlights, atmospheric depth. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "velazquez", "spanish_baroque", "tonal_painting"]
},
{
"id": "artist_goya_expressive_romanticism",
"name": "Artist: Francisco Goya (Expressive Romanticism)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Francisco Goya, Romanticism, expressive brushwork, somber palette, dramatic contrast, psychological intensity, raw painterly texture, moody atmosphere",
"suffix": "bold value contrasts, rough brush texture, dark tonal weight, intense mood, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Romantic-era painting in the style of Francisco Goya, expressive and psychologically intense. Tone: somber palette with dark tonal weight and bold value contrasts. Brushwork: raw painterly texture, energetic marks, heightened dramatic contrast. Key cues: in the style of Francisco Goya, Romanticism, expressive brushwork, somber palette, dramatic contrast, psychological intensity. Finish cues: bold value contrasts, rough brush texture, dark tonal weight, intense mood. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "goya", "romanticism", "expressive"]
},
{
"id": "artist_turner_luminous_atmosphere",
"name": "Artist: J. M. W. Turner (Luminous Atmosphere)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of J. M. W. Turner, Romanticism, luminous atmosphere, dissolving forms, swirling light, vaporous haze, radiant color, atmospheric perspective",
"suffix": "glowing light effects, soft edges, misty diffusion, energetic paint movement, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Romantic painting in the style of J. M. W. Turner, luminous atmosphere and radiant color. Atmosphere: vaporous haze, dissolving forms, soft edges, misty diffusion. Light: glowing light effects with energetic paint movement and dramatic tonal transitions. Key cues: in the style of J. M. W. Turner, Romanticism, luminous atmosphere, dissolving forms, swirling light, vaporous haze. Finish cues: glowing light effects, soft edges, misty diffusion, radiant color. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "turner", "romanticism", "atmospheric"]
},
{
"id": "artist_monet_impressionist_light",
"name": "Artist: Claude Monet (Impressionist Light)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Claude Monet, Impressionism, broken brushstrokes, plein-air light, shimmering color, soft edges, optical color mixing, atmospheric haze",
"suffix": "sparkling highlights, loose strokes, airy atmosphere, light-drenched palette, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Impressionist painting in the style of Claude Monet, focused on light and atmosphere. Brushwork: short broken strokes with soft edges and shimmering color transitions. Color: optical mixing and plein-air light effects with a light-drenched palette and gentle haze. Key cues: in the style of Claude Monet, Impressionism, broken brushstrokes, plein-air light, shimmering color, atmospheric haze. Finish cues: sparkling highlights, loose strokes, airy atmosphere, light-drenched palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "monet", "impressionism"]
},
{
"id": "artist_seurat_pointillism",
"name": "Artist: Georges Seurat (Pointillism)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Georges Seurat, Neo-Impressionism, pointillism, tiny color dots, optical color mixing, precise composition, clear silhouettes, controlled palette",
"suffix": "granular dot texture, luminous color vibration, crisp contours, structured composition, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Neo-Impressionist painting in the style of Georges Seurat, built from pointillist color dots. Technique: tiny dots and dabs that create optical color mixing and luminous vibration at a distance. Composition: precise and structured with crisp contours and controlled rhythm. Key cues: in the style of Georges Seurat, Neo-Impressionism, pointillism, tiny color dots, optical color mixing, precise composition. Finish cues: granular dot texture, luminous color vibration, crisp contours, structured composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "seurat", "neo_impressionism", "pointillism"]
},
{
"id": "artist_cezanne_constructive_brushwork",
"name": "Artist: Paul Cézanne (Constructive Brushwork)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Paul Cézanne, Post-Impressionism, constructive brushwork, chromatic planes, simplified geometry, underlying structure, warm-cool modulation, architectonic composition",
"suffix": "blocky color planes, structured forms, balanced weight, textured strokes, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Post-Impressionist painting in the style of Paul Cézanne, emphasizing structure and form. Brushwork: constructive strokes that build planes of color and underlying geometry. Color: warm-cool modulation and chromatic planes that create solid, architectonic composition. Key cues: in the style of Paul Cézanne, Post-Impressionism, constructive brushwork, chromatic planes, simplified geometry, underlying structure. Finish cues: blocky color planes, structured forms, balanced weight, textured strokes. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "cezanne", "post_impressionism", "constructive"]
},
{
"id": "artist_van_gogh_expressive_impasto",
"name": "Artist: Vincent van Gogh (Expressive Impasto)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Vincent van Gogh, Post-Impressionism, striking color, emphatic brushwork, thick impasto, swirling directional strokes, bold outlines, high-chroma palette",
"suffix": "visible paint texture, energetic strokes, intense complementary contrast, dynamic movement, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Post-Impressionist oil painting in the style of Vincent van Gogh, energetic and expressive. Brushwork: emphatic directional strokes with thick impasto and visible paint texture. Color: striking high-chroma palette with intense complementary contrasts and bold outlines. Key cues: in the style of Vincent van Gogh, Post-Impressionism, striking color, emphatic brushwork, thick impasto, bold outlines. Finish cues: visible paint texture, energetic strokes, intense complementary contrast, dynamic movement. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "van_gogh", "post_impressionism", "impasto", "expressive"]
},
{
"id": "artist_gauguin_synthetism",
"name": "Artist: Paul Gauguin (Synthetism)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Paul Gauguin, Post-Impressionism, synthetism, bold flat color areas, simplified shapes, strong outlines, symbolic color, decorative pattern",
"suffix": "flat planes, clean contours, saturated color blocks, poster-like clarity, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Post-Impressionist painting in the style of Paul Gauguin, synthetist and decorative. Shape: simplified forms with strong outlines and bold flat color areas. Color: symbolic, saturated blocks with poster-like clarity and patterned surfaces. Key cues: in the style of Paul Gauguin, Post-Impressionism, synthetism, bold flat color areas, simplified shapes, strong outlines. Finish cues: flat planes, clean contours, saturated color blocks, poster-like clarity. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "gauguin", "post_impressionism", "synthetism"]
},
{
"id": "artist_matisse_fauvist_color",
"name": "Artist: Henri Matisse (Fauvist Color)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Henri Matisse, Fauvism, bold saturated color, expressive contours, flattened space, decorative pattern, simplified forms, lively composition",
"suffix": "vivid palette, clean color fields, strong outlines, rhythmic shapes, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Fauvist painting in the style of Henri Matisse, emphasizing bold expressive color. Color: vivid saturated palette with large luminous patches and simplified forms. Line: expressive contours and flattened space with decorative rhythm and strong outlines. Key cues: in the style of Henri Matisse, Fauvism, bold saturated color, expressive contours, flattened space, decorative pattern. Finish cues: vivid palette, clean color fields, strong outlines, rhythmic shapes. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "matisse", "fauvism", "color"]
},
{
"id": "artist_picasso_analytical_cubism",
"name": "Artist: Pablo Picasso (Analytical Cubism)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Pablo Picasso, Cubism, multiple viewpoints, fractured planes, faceted geometry, flattened picture plane, angular forms, limited earthy palette",
"suffix": "geometric fragmentation, sharp edges, planar shading, abstracted structure, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: analytical Cubism in the style of Pablo Picasso, fractured structure and multiple viewpoints. Form: faceted geometry, angular planes, flattened picture plane, abstracted construction. Color: limited earthy palette with planar shading and sharp edges. Key cues: in the style of Pablo Picasso, Cubism, multiple viewpoints, fractured planes, faceted geometry, flattened picture plane. Finish cues: geometric fragmentation, sharp edges, planar shading, abstracted structure. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "picasso", "cubism", "geometric"]
},
{
"id": "artist_kandinsky_geometric_abstraction",
"name": "Artist: Wassily Kandinsky (Geometric Abstraction)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Wassily Kandinsky, abstract art, geometric abstraction, dynamic lines, bold shapes, color-form relationships, rhythmic composition, nonobjective",
"suffix": "vibrant color interplay, clean shapes, energetic balance, abstract spatial tension, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: geometric abstraction in the style of Wassily Kandinsky, nonobjective and rhythmic. Composition: dynamic lines and bold shapes arranged with energetic balance and abstract spatial tension. Color: intentional color-form relationships with vibrant interplay and clear structure. Key cues: in the style of Wassily Kandinsky, abstract art, geometric abstraction, dynamic lines, bold shapes, color-form relationships. Finish cues: vibrant color interplay, clean shapes, energetic balance, abstract spatial tension. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "kandinsky", "abstract", "geometric"]
},
{
"id": "artist_mondrian_de_stijl_grid",
"name": "Artist: Piet Mondrian (De Stijl Grid)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Piet Mondrian, De Stijl, neoplasticism, orthogonal grid, primary colors, black lines, flat planes, strict geometry",
"suffix": "clean grid structure, flat color blocks, sharp edges, minimal composition, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: De Stijl abstraction in the style of Piet Mondrian, rigorous geometric order. Composition: orthogonal grid with black lines and flat planes of primary colors. Design: minimal, balanced, and precise with sharp edges and clean structure. Key cues: in the style of Piet Mondrian, De Stijl, neoplasticism, orthogonal grid, primary colors, black lines. Finish cues: clean grid structure, flat color blocks, sharp edges, minimal composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "mondrian", "de_stijl", "neoplasticism"]
},
{
"id": "artist_klimt_ornamental_gold",
"name": "Artist: Gustav Klimt (Ornamental Gold)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Gustav Klimt, Vienna Secession, ornamental patterning, gold leaf accents, flat decorative surfaces, linear drawing, mosaic-like texture, symbolic elegance",
"suffix": "golden shimmer, intricate ornament, flat stylization, rich decorative detail, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Vienna Secession painting in the style of Gustav Klimt, ornamental and richly decorative. Surface: flat stylization with linear drawing, intricate patterning, and gold leaf accents. Texture: mosaic-like ornament with golden shimmer and refined symbolic elegance. Key cues: in the style of Gustav Klimt, Vienna Secession, ornamental patterning, gold leaf accents, flat decorative surfaces, linear drawing. Finish cues: golden shimmer, intricate ornament, flat stylization, rich decorative detail. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "klimt", "vienna_secession", "ornament", "gold_leaf"]
},
{
"id": "artist_dali_surreal_precision",
"name": "Artist: Salvador Dalí (Surreal Precision)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Salvador Dalí, Surrealism, dreamlike atmosphere, meticulous realism, crisp detail, uncanny juxtaposition, smooth gradients, sharp highlights",
"suffix": "surreal mood, highly detailed realism, clean edges, uncanny clarity, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Surrealist painting in the style of Salvador Dalí, dreamlike and uncanny with meticulous realism. Detail: crisp rendering and clean edges with smooth gradients and sharp highlights. Mood: surreal and disquieting, emphasizing precise clarity and uncanny juxtaposition. Key cues: in the style of Salvador Dalí, Surrealism, dreamlike atmosphere, meticulous realism, crisp detail, uncanny juxtaposition. Finish cues: surreal mood, highly detailed realism, clean edges, uncanny clarity. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "dali", "surrealism", "meticulous"]
},
{
"id": "artist_pollock_action_painting",
"name": "Artist: Jackson Pollock (Action Painting Drips)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Jackson Pollock, Abstract Expressionism, action painting, drip and pour technique, all-over composition, layered splatter lines, energetic rhythm, tangled paint trails",
"suffix": "dense layered drips, dynamic movement, intertwined lines, raw texture, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Abstract Expressionist action painting in the style of Jackson Pollock, energetic and all-over. Technique: drip and pour marks with layered splatter lines and tangled paint trails across the full surface. Texture: dense intertwined lines and raw motion, emphasizing gesture and rhythm. Key cues: in the style of Jackson Pollock, Abstract Expressionism, action painting, drip and pour technique, all-over composition, layered splatter lines. Finish cues: dense layered drips, dynamic movement, intertwined lines, raw texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "pollock", "abstract_expressionism", "action_painting"]
},
{
"id": "artist_warhol_pop_art_silkscreen",
"name": "Artist: Andy Warhol (Pop Art Silkscreen)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Andy Warhol, Pop Art, silkscreen print, bold flat colors, repetition, high-contrast graphic shapes, commercial print aesthetic, halftone texture",
"suffix": "flat color fields, crisp edges, screenprint texture, repeating motif structure, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Pop Art print in the style of Andy Warhol, bold and graphic with silkscreen aesthetics. Color: flat high-contrast fields with repetition and commercial print clarity. Texture: screenprint feel with halftone texture and crisp edges, emphasizing iconic simplicity. Key cues: in the style of Andy Warhol, Pop Art, silkscreen print, bold flat colors, repetition, commercial print aesthetic. Finish cues: flat color fields, crisp edges, screenprint texture, repeating motif structure. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "warhol", "pop_art", "silkscreen"]
},
{
"id": "artist_hokusai_ukiyo_e_woodblock",
"name": "Artist: Katsushika Hokusai (Ukiyo-e Woodblock)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Katsushika Hokusai, ukiyo-e, Japanese woodblock print, bold fluid outlines, flat color planes, stylized perspective, patterned surfaces, clear silhouettes",
"suffix": "crisp linework, flat ink-and-color finish, paper texture, clean negative space, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: ukiyo-e woodblock print in the style of Katsushika Hokusai, graphic and refined. Line: bold fluid outlines with clear silhouettes and stylized perspective. Color: flat planes and patterned surfaces with a crisp ink-and-color finish and paper texture. Key cues: in the style of Katsushika Hokusai, ukiyo-e, Japanese woodblock print, bold fluid outlines, flat color planes, patterned surfaces. Finish cues: crisp linework, flat ink-and-color finish, paper texture, clean negative space. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "hokusai", "ukiyo_e", "woodblock"]
},
{
"id": "artist_kahlo_symbolic_realism",
"name": "Artist: Frida Kahlo (Symbolic Realism)",
"category": "Fine Art/Artists",
"default": {
"prefix": "fine art, museum-quality, traditional techniques, gallery piece, handcrafted, in the style of Frida Kahlo, Mexican modernism, folk art influence, vivid palette, symbolic surrealism, detailed brushwork, frontal composition, crisp outlines",
"suffix": "high-detail rendering, saturated colors, emblematic symbolism, strong central framing, high detail, handcrafted surface texture, gallery lighting, balanced composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Mexican modernist painting in the style of Frida Kahlo, symbolic and vividly rendered. Composition: frontal, centered, with crisp outlines and strong central framing. Color: saturated palette with folk-art influence and emblematic surreal symbolism, rendered with high detail. Key cues: in the style of Frida Kahlo, Mexican modernism, folk art influence, vivid palette, symbolic surrealism, frontal composition. Finish cues: high-detail rendering, saturated colors, emblematic symbolism, strong central framing. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": ["fine_art", "artist", "kahlo", "mexican_modernism", "symbolic"]
}
]
}
+38 -38
View File
@@ -12,7 +12,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: old master oil painting with dramatic chiaroscuro. Lighting: dramatic side lighting with deep shadows and bright highlights. Texture: rich brushwork and subtle canvas grain."
"suffix": "Style: old master oil painting with dramatic chiaroscuro. Lighting: dramatic side lighting with deep shadows and bright highlights. Texture: rich brushwork and subtle canvas grain. Key cues: old master painting, baroque chiaroscuro, tenebrism, oil on canvas. Finish cues: warm highlights, deep shadows, classical composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -30,7 +30,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Dutch golden age still life oil painting. Lighting: dramatic side lighting with deep shadows and bright highlights. Texture: fine brushwork, varnished depth, canvas grain."
"suffix": "Style: Dutch golden age still life oil painting. Lighting: dramatic side lighting with deep shadows and bright highlights. Texture: fine brushwork, varnished depth, canvas grain. Key cues: dutch golden age still life, oil on canvas, dramatic light, rich materials. Finish cues: realistic textures, careful composition, deep shadows. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -48,7 +48,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: baroque religious painting, dramatic and monumental. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: solemn, powerful, cinematic."
"suffix": "Style: baroque religious painting, dramatic and monumental. Lighting: dramatic side lighting with deep shadows and bright highlights. Mood: solemn, powerful, cinematic. Key cues: baroque painting, dramatic composition, chiaroscuro, oil on canvas. Finish cues: smoke haze, golden highlights, deep shadows. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -66,7 +66,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Renaissance fresco painting on plaster. Lighting: soft ambient daylight like a museum interior. Texture: subtle plaster grain and aged pigment."
"suffix": "Style: Renaissance fresco painting on plaster. Lighting: soft ambient daylight like a museum interior. Texture: subtle plaster grain and aged pigment. Key cues: renaissance fresco, classical anatomy, balanced composition, plaster wall texture. Finish cues: muted pigments, aged patina, architectural framing. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -84,7 +84,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: rococo fine art painting with pastel colors and ornate detail. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: elegant, playful, airy."
"suffix": "Style: rococo fine art painting with pastel colors and ornate detail. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: elegant, playful, airy. Key cues: rococo painting, pastel palette, ornate details, soft romantic light. Finish cues: delicate brushwork, silky fabrics, light airy mood. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -102,7 +102,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: neoclassical fine art painting with clean forms and balanced composition. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: calm, disciplined, timeless."
"suffix": "Style: neoclassical fine art painting with clean forms and balanced composition. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: calm, disciplined, timeless. Key cues: neoclassical painting, clean forms, classical composition, marble-like skin tones. Finish cues: precise edges, balanced lighting, restrained palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -120,7 +120,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: romantic landscape oil painting with sublime atmosphere. Lighting: dramatic breaks in cloud cover with volumetric rays. Mood: awe, grandeur, nature overpowering."
"suffix": "Style: romantic landscape oil painting with sublime atmosphere. Lighting: dramatic breaks in cloud cover with volumetric rays. Mood: awe, grandeur, nature overpowering. Key cues: romantic landscape painting, dramatic sky, atmospheric perspective, sublime scale. Finish cues: mist, light rays, painterly clouds. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -138,7 +138,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: symbolist fine art painting, dreamlike and mystical. Lighting: soft diffuse light with gentle glow. Mood: enigmatic, poetic, symbolic."
"suffix": "Style: symbolist fine art painting, dreamlike and mystical. Lighting: soft diffuse light with gentle glow. Mood: enigmatic, poetic, symbolic. Key cues: symbolist painting, mystical symbolism, dreamlike atmosphere, soft haze. Finish cues: muted jewel tones, ornamental motifs, surreal calm. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -156,7 +156,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: pre-raphaelite inspired fine art painting with meticulous detail. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Texture: fine brushwork with luminous color."
"suffix": "Style: pre-raphaelite inspired fine art painting with meticulous detail. Lighting: soft, diffused key light from viewer-left, gentle shadows. Texture: fine brushwork with luminous color. Key cues: pre-raphaelite painting, intricate detail, luminous color, naturalistic textures. Finish cues: delicate florals, sharp detail, storybook realism. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -174,7 +174,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: academic realism oil painting with controlled edges. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: refined, realistic, classical."
"suffix": "Style: academic realism oil painting with controlled edges. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: refined, realistic, classical. Key cues: academic realism, oil painting, realistic anatomy, studio composition. Finish cues: controlled edges, subtle gradients, natural skin tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -192,7 +192,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: classical portrait oil painting. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: dignified, timeless, refined."
"suffix": "Style: classical portrait oil painting. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: dignified, timeless, refined. Key cues: classical portrait painting, oil on canvas, soft modeling, elegant pose. Finish cues: subtle skin shading, rich fabrics, balanced composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -210,7 +210,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: traditional icon painting with gold leaf accents. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: gilded highlights, painted tempera surface."
"suffix": "Style: traditional icon painting with gold leaf accents. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: gilded highlights, painted tempera surface. Key cues: icon painting, gold leaf, flat stylization, ornamental halo. Finish cues: tempera, aged varnish, ornate border. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -228,7 +228,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: illuminated manuscript on parchment with ornate borders. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: vellum grain, gold leaf shine, ink linework."
"suffix": "Style: illuminated manuscript on parchment with ornate borders. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: vellum grain, gold leaf shine, ink linework. Key cues: illuminated manuscript, gold leaf, vellum parchment, ornate border. Finish cues: medieval miniature, fine ink lines, decorative motifs. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -246,7 +246,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Persian miniature painting with intricate detail and flat perspective. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: ornate, delicate, storybook."
"suffix": "Style: Persian miniature painting with intricate detail and flat perspective. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: ornate, delicate, storybook. Key cues: persian miniature painting, intricate detail, flat perspective, ornate patterns. Finish cues: bright pigments, gold accents, decorative motifs. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -264,7 +264,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Mughal miniature painting with fine detail and ornate motifs. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: refined, decorative, historical."
"suffix": "Style: Mughal miniature painting with fine detail and ornate motifs. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: refined, decorative, historical. Key cues: mughal miniature painting, fine detail, flat perspective, ornamental patterns. Finish cues: jewel tones, gold accents, delicate linework. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -282,7 +282,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Japanese sumi-e ink painting on rice paper. Lighting: soft ambient light emphasizing paper texture. Mood: calm, minimal, expressive."
"suffix": "Style: Japanese sumi-e ink painting on rice paper. Lighting: soft ambient light emphasizing paper texture. Mood: calm, minimal, expressive. Key cues: sumi-e ink painting, expressive brush strokes, rice paper texture, minimal composition. Finish cues: monochrome ink, negative space, soft ink bleed. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -300,7 +300,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Chinese ink landscape painting with misty mountains. Lighting: soft diffuse light, gentle contrast. Mood: serene, expansive, meditative."
"suffix": "Style: Chinese ink landscape painting with misty mountains. Lighting: soft diffuse light, gentle contrast. Mood: serene, expansive, meditative. Key cues: shan shui ink painting, mountain landscape, mist, rice paper texture. Finish cues: monochrome ink, atmospheric depth, soft ink wash. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -318,7 +318,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: stained glass artwork with bold lead lines. Lighting: backlit translucent glass with glowing color. Mood: luminous, ornate, sacred."
"suffix": "Style: stained glass artwork with bold lead lines. Lighting: backlit translucent glass with glowing color. Mood: luminous, ornate, sacred. Key cues: stained glass, lead outlines, translucent colored glass, ornamental pattern. Finish cues: glowing light, high contrast shapes, jewel tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -336,7 +336,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mosaic tile artwork made from small tesserae. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: tactile tile surface with irregular pieces."
"suffix": "Style: mosaic tile artwork made from small tesserae. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: tactile tile surface with irregular pieces. Key cues: mosaic art, tesserae, stone tiles, handcrafted texture. Finish cues: tactile surface, irregular pieces, historic feel. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -354,7 +354,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: large fresco mural on plaster wall. Lighting: soft ambient light revealing wall texture and patina. Mood: monumental, historical, timeless."
"suffix": "Style: large fresco mural on plaster wall. Lighting: soft ambient light revealing wall texture and patina. Mood: monumental, historical, timeless. Key cues: fresco mural, plaster wall texture, pigment, large-scale composition. Finish cues: aged patina, subtle cracks, historic atmosphere. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -372,7 +372,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: encaustic wax painting with layered translucency. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: tactile wax surface with depth and subtle cracking."
"suffix": "Style: encaustic wax painting with layered translucency. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: tactile wax surface with depth and subtle cracking. Key cues: encaustic painting, wax medium, layered translucency, tactile texture. Finish cues: subtle cracks, surface depth, handmade feel. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -390,7 +390,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: egg tempera fine art painting with a matte surface. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: fine layered strokes, crisp detail."
"suffix": "Style: egg tempera fine art painting with a matte surface. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: fine layered strokes, crisp detail. Key cues: tempera painting, matte surface, fine detail, egg tempera. Finish cues: clean edges, layered strokes, historic palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -408,7 +408,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: impressionist plein-air oil painting with broken brushwork. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: lively, light-filled, outdoors."
"suffix": "Style: impressionist plein-air oil painting with broken brushwork. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: lively, light-filled, outdoors. Key cues: plein air painting, impressionist brushwork, broken color, sunlit atmosphere. Finish cues: visible strokes, soft edges, light-filled palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -426,7 +426,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: post-impressionist painting with bold brushwork and rich color. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: expressive, vibrant, painterly."
"suffix": "Style: post-impressionist painting with bold brushwork and rich color. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: expressive, vibrant, painterly. Key cues: post-impressionist painting, bold brushwork, strong outlines, rich color. Finish cues: textured paint, expressive strokes, vivid palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -444,7 +444,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: expressionist painting with emotive color and energetic brushwork. Lighting: dramatic but painterly, emphasizing form and color. Mood: intense, emotional, raw."
"suffix": "Style: expressionist painting with emotive color and energetic brushwork. Lighting: dramatic but painterly, emphasizing form and color. Mood: intense, emotional, raw. Key cues: expressionist painting, emotive color, exaggerated forms, energetic brushwork. Finish cues: strong contrast, painterly texture, raw emotion. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -462,7 +462,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cubist still life painting with geometric planes. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: analytical, structured, modernist."
"suffix": "Style: cubist still life painting with geometric planes. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: analytical, structured, modernist. Key cues: cubist still life, geometric planes, fragmented forms, muted palette. Finish cues: hard edges, abstracted shapes, structured composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -480,7 +480,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: surreal oil painting with dreamlike realism. Lighting: soft controlled light with subtle shadows. Mood: uncanny, calm, symbolic."
"suffix": "Style: surreal oil painting with dreamlike realism. Lighting: soft controlled light with subtle shadows. Mood: uncanny, calm, symbolic. Key cues: surreal oil painting, dreamlike realism, unexpected juxtapositions, soft haze. Finish cues: smooth gradients, quiet atmosphere, symbolic imagery. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -498,7 +498,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: abstract expressionist painting with gestural brushstrokes. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: thick paint, visible strokes, energetic marks."
"suffix": "Style: abstract expressionist painting with gestural brushstrokes. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: thick paint, visible strokes, energetic marks. Key cues: abstract expressionism, gestural brushstrokes, paint splatter, dynamic composition. Finish cues: thick paint, high energy, raw texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -516,7 +516,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: color field painting with large blocks of color. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: calm, meditative, minimal."
"suffix": "Style: color field painting with large blocks of color. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: calm, meditative, minimal. Key cues: color field painting, large color blocks, soft edges, minimal forms. Finish cues: smooth gradients, subtle texture, meditative mood. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -534,7 +534,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: geometric abstract painting with clean shapes and balanced composition. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: modern, designed, calm."
"suffix": "Style: geometric abstract painting with clean shapes and balanced composition. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: modern, designed, calm. Key cues: geometric abstraction, clean shapes, balanced composition, flat color planes. Finish cues: crisp edges, minimal texture, modern palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -552,7 +552,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: suprematist abstract composition with floating geometric forms. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: minimal, bold, abstract."
"suffix": "Style: suprematist abstract composition with floating geometric forms. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: minimal, bold, abstract. Key cues: suprematism, geometric forms, minimal palette, floating shapes. Finish cues: flat colors, strong negative space, bold composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -570,7 +570,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: De Stijl composition with primary colors and black grid lines. Lighting: flat graphic lighting with minimal shading. Mood: clean, rational, designed."
"suffix": "Style: De Stijl composition with primary colors and black grid lines. Lighting: flat graphic lighting with minimal shading. Mood: clean, rational, designed. Key cues: de stijl, primary colors, black lines, grid composition. Finish cues: flat color blocks, clean geometry, balanced layout. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -588,7 +588,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: op art optical illusion with high-contrast repeating geometry. Lighting: flat even lighting, emphasis on contrast and pattern. Mood: energetic, vibrating, graphic."
"suffix": "Style: op art optical illusion with high-contrast repeating geometry. Lighting: flat even lighting, emphasis on contrast and pattern. Mood: energetic, vibrating, graphic. Key cues: op art, optical illusion pattern, high contrast geometry, repeating lines. Finish cues: sharp edges, bold contrast, graphic rhythm. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -606,7 +606,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: hard-edge painting with crisp boundaries and flat color areas. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: clean, modern, precise."
"suffix": "Style: hard-edge painting with crisp boundaries and flat color areas. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: clean, modern, precise. Key cues: hard-edge painting, flat color areas, crisp boundaries, minimal texture. Finish cues: clean shapes, bold palette, precise edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -624,7 +624,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: minimalist painting with simple forms and strong negative space. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: calm, quiet, minimal."
"suffix": "Style: minimalist painting with simple forms and strong negative space. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: calm, quiet, minimal. Key cues: minimalist painting, simple forms, strong negative space, restrained palette. Finish cues: quiet composition, subtle texture, calm mood. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -642,7 +642,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: neo-expressionist painting with bold brushwork and intense color. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: raw, energetic, contemporary."
"suffix": "Style: neo-expressionist painting with bold brushwork and intense color. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: raw, energetic, contemporary. Key cues: neo-expressionism, bold brushwork, raw texture, intense color. Finish cues: aggressive strokes, high contrast, emotive forms. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -660,7 +660,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: outsider art with raw naive forms and bold lines. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: raw, honest, handmade."
"suffix": "Style: outsider art with raw naive forms and bold lines. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: raw, honest, handmade. Key cues: outsider art, raw naive style, bold lines, textured paint. Finish cues: handmade imperfections, vivid color, childlike forms. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -678,7 +678,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: naive folk painting with simple forms and bright color. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: charming, playful, handmade."
"suffix": "Style: naive folk painting with simple forms and bright color. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: charming, playful, handmade. Key cues: naive folk art painting, flat perspective, bright colors, simple forms. Finish cues: hand-painted texture, decorative motifs, cheerful mood. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+414 -54
View File
@@ -2,71 +2,37 @@
"version": 1,
"styles": [
{
"id": "mixed_paper_collage_mixed_media",
"name": "Paper Collage (Mixed Media)",
"id": "mixed_acrylic_sgraffito_ground",
"name": "Acrylic Sgraffito Ground",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, paper collage, torn paper edges, cutout shapes",
"suffix": "glue marks, paper grain, handmade feel, high detail, tactile texture, layered depth, cohesive composition"
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, acrylic sgraffito, scraped paint layers, revealed underpainting, layered acrylic ground",
"suffix": "incised grooves, color reveal, matte paint texture, layered scraping marks, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media paper collage with torn edges and layered shapes. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: paper grain, glue marks, layered cutouts."
"suffix": "Style: mixed media acrylic surface worked with sgraffito scraping. Lighting: soft raking light that catches incised grooves and revealed color layers. Texture: matte acrylic, scraped channels, and exposed underpainting. Key cues: acrylic sgraffito, scraped paint layers, revealed underpainting, layered acrylic ground. Finish cues: incised grooves, color reveal, matte paint texture, layered scraping marks. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media"
"mixed_media",
"sgraffito",
"acrylic"
]
},
{
"id": "mixed_photomontage_collage",
"name": "Photomontage Collage",
"id": "mixed_assemblage_artwork",
"name": "Assemblage Artwork",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, photomontage, cutout photo fragments, layered collage, high contrast",
"suffix": "paper texture, rough edges, analog zine aesthetic, high detail, tactile texture, paper grain, layered depth, cohesive composition"
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, assemblage, found objects, mixed materials, handcrafted",
"suffix": "tactile texture, rough surfaces, layered depth, high detail, paper grain, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: photomontage collage made from cutout photo fragments. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: bold, surreal, graphic."
}
},
"tags": [
"mixed_media"
]
},
{
"id": "mixed_mixed_media_acrylic_ink",
"name": "Mixed Media Acrylic + Ink",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, mixed media, acrylic paint, ink linework, layered marks",
"suffix": "texture paste, splatter, handmade imperfections, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media artwork combining acrylic paint and ink linework. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: layered paint, ink marks, tactile surface."
}
},
"tags": [
"mixed_media"
]
},
{
"id": "mixed_gel_plate_monoprint",
"name": "Gel Plate Monoprint",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, gel plate monoprint, ink layers, brayer texture, printmaking",
"suffix": "paper grain, ink transfer artifacts, handmade print, high detail, tactile texture, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: gel plate monoprint with layered ink textures. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: ink transfer artifacts, paper grain, layered prints."
"suffix": "Style: assemblage artwork built from found objects and mixed materials. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: rough surfaces, layered depth, tactile materials. Key cues: assemblage, found objects, mixed materials, handcrafted. Finish cues: tactile texture, rough surfaces, layered depth. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -84,7 +50,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: analog cyanotype print on paper. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: minimal, photographic, deep blue."
"suffix": "Style: analog cyanotype print on paper. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: minimal, photographic, deep blue. Key cues: cyanotype print, blue monochrome, sun print, paper texture. Finish cues: grain, chemical texture, vintage print. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -92,23 +58,317 @@
]
},
{
"id": "mixed_assemblage_artwork",
"name": "Assemblage Artwork",
"id": "mixed_decollage_poster_peel",
"name": "Decollage Poster Peel",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, assemblage, found objects, mixed materials, handcrafted",
"suffix": "tactile texture, rough surfaces, layered depth, high detail, paper grain, cohesive composition"
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, decollage poster peel, torn poster layers, weathered paste, exposed underlayers",
"suffix": "ragged tears, glue residue, paper strata, urban paper texture, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: assemblage artwork built from found objects and mixed materials. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: rough surfaces, layered depth, tactile materials."
"suffix": "Style: mixed media decollage with peeled poster layers and exposed strata. Lighting: flat daylight that keeps the layered tears and residue readable. Texture: ragged tears, glue residue, and stacked paper history. Key cues: decollage poster peel, torn poster layers, weathered paste, exposed underlayers. Finish cues: ragged tears, glue residue, paper strata, urban paper texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"decollage",
"paper"
]
},
{
"id": "mixed_encaustic_collage",
"name": "Encaustic Collage",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, encaustic collage, translucent wax layers, embedded paper fragments, scraped surface",
"suffix": "wax bloom, subtle crackle, tactile depth, layered translucency, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media encaustic collage with embedded paper fragments. Lighting: soft gallery light with gentle falloff and mild surface sheen. Texture: translucent wax layers, scraped marks, and tactile depth. Key cues: encaustic collage, translucent wax layers, embedded paper fragments, scraped surface. Finish cues: wax bloom, subtle crackle, tactile depth, layered translucency. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"encaustic",
"collage"
]
},
{
"id": "mixed_fabric_scrap_collage",
"name": "Fabric Scrap Collage",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, fabric scrap collage, stitched textile fragments, raw edges, patchwork layering",
"suffix": "frayed fibers, cloth weave, stitched joins, soft tactile depth, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media collage assembled from layered textile scraps. Lighting: soft diffuse light revealing cloth weave and stitched joins. Texture: frayed fibers, raw edges, and patchwork depth. Key cues: fabric scrap collage, stitched textile fragments, raw edges, patchwork layering. Finish cues: frayed fibers, cloth weave, stitched joins, soft tactile depth. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"fabric",
"collage"
]
},
{
"id": "mixed_foil_leaf_overlay",
"name": "Foil Leaf Overlay",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, foil leaf overlay, metal leaf fragments, mixed surface, hand-applied shimmer",
"suffix": "broken foil edges, micro-reflections, adhesive texture, layered contrast, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media surface with hand-applied foil leaf overlays. Lighting: controlled light that catches metallic fragments without blowing them out. Texture: broken foil edges, adhesive texture, and small reflective flashes. Key cues: foil leaf overlay, metal leaf fragments, mixed surface, hand-applied shimmer. Finish cues: broken foil edges, micro-reflections, adhesive texture, layered contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"foil",
"leaf"
]
},
{
"id": "mixed_frottage_rubbing_study",
"name": "Frottage Rubbing Study",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, frottage rubbing, found-surface textures, graphite transfer, pressure marks",
"suffix": "rubbed grain, uneven density, paper drag marks, tactile impressions, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media frottage study built from rubbed surface textures. Lighting: soft raking light that reveals paper tooth and rubbing variation. Texture: transferred grain, pressure marks, and uneven graphite density. Key cues: frottage rubbing, found-surface textures, graphite transfer, pressure marks. Finish cues: rubbed grain, uneven density, paper drag marks, tactile impressions. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"frottage",
"rubbing"
]
},
{
"id": "mixed_gel_medium_image_transfer",
"name": "Gel Medium Image Transfer",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, gel medium image transfer, lifted image layers, translucent medium, paper support",
"suffix": "soft edge lifting, adhesive sheen, surface irregularities, layered translucency, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media gel-medium transfer with lifted translucent image layers. Lighting: soft gallery light with enough angle to reveal transfer texture. Texture: adhesive sheen, edge lifting, and layered translucent film. Key cues: gel medium image transfer, lifted image layers, translucent medium, paper support. Finish cues: soft edge lifting, adhesive sheen, surface irregularities, layered translucency. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"transfer",
"acrylic"
]
},
{
"id": "mixed_gel_plate_monoprint",
"name": "Gel Plate Monoprint",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, gel plate monoprint, ink layers, brayer texture, printmaking",
"suffix": "paper grain, ink transfer artifacts, handmade print, high detail, tactile texture, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: gel plate monoprint with layered ink textures. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: ink transfer artifacts, paper grain, layered prints. Key cues: gel plate monoprint, ink layers, brayer texture, printmaking. Finish cues: paper grain, ink transfer artifacts, handmade print. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media"
]
},
{
"id": "mixed_gesso_charcoal_board",
"name": "Gesso and Charcoal Board",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, gesso ground, charcoal marks, chalky board surface, erased highlights",
"suffix": "powdery smudge, toothy ground, lifted erasures, matte surface, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media board with gesso ground and charcoal drawing. Lighting: soft studio light revealing chalky tooth and erased highlights. Texture: powdery charcoal, matte gesso, and lifted erasure marks. Key cues: gesso ground, charcoal marks, chalky board surface, erased highlights. Finish cues: powdery smudge, toothy ground, lifted erasures, matte surface. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"gesso",
"charcoal"
]
},
{
"id": "mixed_handmade_paper_pulp_relief",
"name": "Handmade Paper Pulp Relief",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, handmade paper pulp, cast relief, fibrous surface, pressed pulp forms",
"suffix": "deckled edges, fiber clumps, raised paper relief, soft shadow depth, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media handmade paper relief with cast pulp forms. Lighting: soft raking light to reveal paper relief and deckled edges. Texture: fibrous pulp, soft relief shadows, and visible paper formation. Key cues: handmade paper pulp, cast relief, fibrous surface, pressed pulp forms. Finish cues: deckled edges, fiber clumps, raised paper relief, soft shadow depth. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"paper",
"relief"
]
},
{
"id": "mixed_mixed_media_acrylic_ink",
"name": "Mixed Media Acrylic + Ink",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, mixed media, acrylic paint, ink linework, layered marks",
"suffix": "texture paste, splatter, handmade imperfections, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media artwork combining acrylic paint and ink linework. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: layered paint, ink marks, tactile surface. Key cues: mixed media, acrylic paint, ink linework, layered marks. Finish cues: texture paste, splatter, handmade imperfections. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media"
]
},
{
"id": "mixed_monoprint_collage",
"name": "Monoprint Collage",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, monoprint collage, ink pull textures, layered cut paper, one-off print fragments",
"suffix": "brayer texture, ink ghosts, paper layering, soft registration drift, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media collage assembled from monoprint pulls and paper fragments. Lighting: soft gallery light keeping ink texture and layered edges visible. Texture: brayer marks, ink ghosts, and collage depth. Key cues: monoprint collage, ink pull textures, layered cut paper, one-off print fragments. Finish cues: brayer texture, ink ghosts, paper layering, soft registration drift. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"monoprint",
"collage"
]
},
{
"id": "mixed_paper_collage_mixed_media",
"name": "Paper Collage (Mixed Media)",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, paper collage, torn paper edges, cutout shapes",
"suffix": "glue marks, paper grain, handmade feel, high detail, tactile texture, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media paper collage with torn edges and layered shapes. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: paper grain, glue marks, layered cutouts. Key cues: paper collage, torn paper edges, layered textures, cutout shapes. Finish cues: glue marks, paper grain, handmade feel. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media"
]
},
{
"id": "mixed_photomontage_collage",
"name": "Photomontage Collage",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, photomontage, cutout photo fragments, layered collage, high contrast",
"suffix": "paper texture, rough edges, analog zine aesthetic, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: photomontage collage made from cutout photo fragments. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Mood: bold, surreal, graphic. Key cues: photomontage, cutout photo fragments, layered collage, high contrast. Finish cues: paper texture, rough edges, analog zine aesthetic. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media"
]
},
{
"id": "mixed_resin_sealed_collage",
"name": "Resin-Sealed Collage",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, resin-sealed collage, encapsulated layers, embedded fragments, glossy surface",
"suffix": "glass-like sheen, suspended depth, trapped inclusions, smooth surface reflections, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media collage sealed under a glossy resin layer. Lighting: controlled light with smooth reflections and visible embedded depth. Texture: glass-like sheen, suspended fragments, and encapsulated layers. Key cues: resin-sealed collage, encapsulated layers, embedded fragments, glossy surface. Finish cues: glass-like sheen, suspended depth, trapped inclusions, smooth surface reflections. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"resin",
"collage"
]
},
{
"id": "mixed_sand_pigment_ground",
"name": "Sand and Pigment Ground",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, sand and pigment ground, granular surface, earth pigments, rough substrate",
"suffix": "gritty relief, dry brush drag, mineral texture, matte layered surface, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media surface built from sanded ground and dry pigments. Lighting: raking light to reveal granular relief and dry brush drag. Texture: mineral grit, matte layering, and rough substrate variation. Key cues: sand and pigment ground, granular surface, earth pigments, rough substrate. Finish cues: gritty relief, dry brush drag, mineral texture, matte layered surface. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"sand",
"pigment"
]
},
{
"id": "mixed_scratchboard_ink_wash",
"name": "Scratchboard Ink Wash",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, scratchboard, ink wash, scraped highlights, black ground",
"suffix": "incised lines, white reveal marks, ink pooling, high contrast surface, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: scratchboard mixed media with ink wash and scraped highlights. Lighting: controlled studio light emphasizing incised lines and contrast. Texture: sharp reveal marks, pooled ink, and a dense black ground. Key cues: scratchboard, ink wash, scraped highlights, black ground. Finish cues: incised lines, white reveal marks, ink pooling, high contrast surface. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"scratchboard",
"ink"
]
},
{
"id": "mixed_textured_impasto_mixed_media",
"name": "Textured Impasto Mixed Media",
@@ -120,12 +380,112 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: textured mixed media with thick impasto paint and palette knife marks. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: surface relief, paint ridges, tactile depth."
"suffix": "Style: textured mixed media with thick impasto paint and palette knife marks. Lighting: soft gallery spotlights with gentle falloff and controlled highlights. Texture: surface relief, paint ridges, tactile depth. Key cues: impasto texture, palette knife marks, thick paint, mixed media. Finish cues: surface relief, paint ridges, tactile depth. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media"
]
},
{
"id": "mixed_thread_stitched_paper_collage",
"name": "Thread-Stitched Paper Collage",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, thread-stitched paper collage, pierced paper, visible seams, layered cut paper",
"suffix": "thread relief, needle holes, paper grain, hand-sewn irregularity, high detail, tactile texture, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media paper collage held together with visible stitched seams. Lighting: soft raking light that reveals thread relief and pierced paper. Texture: needle holes, paper grain, and hand-sewn irregularity. Key cues: thread-stitched paper collage, pierced paper, visible seams, layered cut paper. Finish cues: thread relief, needle holes, paper grain, hand-sewn irregularity. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"thread",
"paper"
]
},
{
"id": "mixed_tissue_paper_layering",
"name": "Tissue Paper Layering",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, tissue paper layering, translucent color veils, wrinkled paper films, stacked fragments",
"suffix": "soft wrinkles, color veiling, feathered overlap edges, lightweight translucency, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media layering built from translucent tissue fragments. Lighting: soft top light preserving the color veils and overlap shadows. Texture: tissue wrinkles, feathered edges, and lightweight translucency. Key cues: tissue paper layering, translucent color veils, wrinkled paper films, stacked fragments. Finish cues: soft wrinkles, color veiling, feathered overlap edges, lightweight translucency. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"tissue_paper",
"layered"
]
},
{
"id": "mixed_vellum_overlay_assemblage",
"name": "Vellum Overlay Assemblage",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, vellum overlays, translucent sheets, stacked drawing layers, soft veiling",
"suffix": "semi-transparent layers, paper curl, subtle overlap shadows, airy depth, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media assemblage built from translucent vellum overlays. Lighting: soft top light creating delicate overlap shadows between sheets. Texture: vellum curl, semi-transparent stacking, and layered veiling. Key cues: vellum overlays, translucent sheets, stacked drawing layers, soft veiling. Finish cues: semi-transparent layers, paper curl, subtle overlap shadows, airy depth. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"vellum",
"assemblage"
]
},
{
"id": "mixed_wax_resist_layers",
"name": "Wax Resist Mixed Media",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, wax resist, layered inks, masked paper, drawn resist lines",
"suffix": "resist crackle, ink pooling, paper tooth, layered transparency, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media wax-resist artwork with masked lines and layered inks. Lighting: soft diffuse light that keeps paper texture and layered transparencies visible. Texture: resist crackle, pooled pigment, and masked edge variation. Key cues: wax resist, layered inks, masked paper, drawn resist lines. Finish cues: resist crackle, ink pooling, paper tooth, layered transparency. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"wax_resist",
"layered"
]
},
{
"id": "mixed_xerox_transfer_collage",
"name": "Xerox Transfer Collage",
"category": "Mixed Media",
"default": {
"prefix": "mixed media artwork, layered textures, handcrafted marks, tactile surface, xerox transfer collage, toner transfer, distressed paper, layered copy fragments",
"suffix": "toner wear, uneven transfer, matte paper texture, zine-like edges, high detail, tactile texture, paper grain, layered depth, cohesive composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mixed media collage built from toner-transfer copy fragments. Lighting: flat diffuse light that keeps paper layers readable. Texture: toner wear, distressed edges, and matte paper grain. Key cues: xerox transfer collage, toner transfer, distressed paper, layered copy fragments. Finish cues: toner wear, uneven transfer, matte paper texture, zine-like edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"mixed_media",
"transfer",
"photocopy"
]
}
]
}
+5 -5
View File
@@ -12,7 +12,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: graffiti wildstyle lettering on an urban wall. Lighting: harsh streetlight with strong highlights and deep shadows. Texture: spray paint overspray, drips, wall grit."
"suffix": "Style: graffiti wildstyle lettering on an urban wall. Lighting: harsh streetlight with strong highlights and deep shadows. Texture: spray paint overspray, drips, wall grit. Key cues: graffiti, wildstyle lettering, spray paint, urban wall. Finish cues: paint drips, overspray, high contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -30,7 +30,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: stencil street art sprayed on a textured wall. Lighting: streetlight with strong contrast. Texture: wall grit, paint bleed, sharp stencil edges."
"suffix": "Style: stencil street art sprayed on a textured wall. Lighting: streetlight with strong contrast. Texture: wall grit, paint bleed, sharp stencil edges. Key cues: stencil street art, spray paint, sharp cutout shapes, wall texture. Finish cues: paint bleed, rough edges, high contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -48,7 +48,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: large spray paint mural with bold color and clean shapes. Lighting: daylight or streetlight depending on scene, crisp contrast. Texture: subtle overspray and wall grain."
"suffix": "Style: large spray paint mural with bold color and clean shapes. Lighting: daylight or streetlight depending on scene, crisp contrast. Texture: subtle overspray and wall grain. Key cues: spray paint mural, bold color, large shapes, urban wall. Finish cues: overspray, wall texture, vibrant palette. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -66,7 +66,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: wheatpaste posters layered on a city wall. Lighting: overcast daylight for clear texture. Texture: torn paper, wrinkles, glue stains, wall grit."
"suffix": "Style: wheatpaste posters layered on a city wall. Lighting: overcast daylight for clear texture. Texture: torn paper, wrinkles, glue stains, wall grit. Key cues: wheatpaste poster wall, layered posters, torn paper, street texture. Finish cues: paper wrinkles, glue stains, gritty wall. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -84,7 +84,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: sticker slap wall covered in layered decals. Lighting: overcast daylight with even illumination. Texture: scratches, torn stickers, adhesive residue."
"suffix": "Style: sticker slap wall covered in layered decals. Lighting: overcast daylight with even illumination. Texture: scratches, torn stickers, adhesive residue. Key cues: sticker slap wall, sticker collage, layered decals, urban grit. Finish cues: scratches, torn stickers, street texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+3 -3
View File
@@ -66,7 +66,7 @@
"name": "Backrooms (Mono-Yellow)",
"category": "Aesthetics/Liminal",
"default": {
"prefix": "internet aesthetic, backrooms, mono-yellow office maze, yellow wallpaper, stained carpet, buzzing fluorescent lights, empty rooms, endless corridors, wide angle lens",
"prefix": "internet aesthetic, backrooms, mono-yellow office maze, yellow wallpaper, stained carpet, buzzing fluorescent lights, empty rooms, endless corridors, wide field of view",
"suffix": "sickly yellow color cast, flat lighting, subtle noise, oppressive emptiness, unsettling mood"
},
"models": {
@@ -166,13 +166,13 @@
"name": "Found Footage (Handheld Tape)",
"category": "Aesthetics/Horror",
"default": {
"prefix": "found footage, handheld camera, shaky framing, documentary realism, practical lighting, on-camera flash, grainy low light, VHS artifacts",
"prefix": "found footage, handheld framing, shaky framing, documentary realism, practical lighting, direct on-axis flash, grainy low light, VHS artifacts",
"suffix": "motion blur, focus hunting, tape dropout, gritty texture, tense realism, degraded contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: handheld found-footage tape with documentary realism. Lighting: practical, imperfect, sometimes from on-camera flash. Mood: tense, immediate, believable. Texture: motion blur, focus hunting, tape dropouts, grainy low light."
"suffix": "Style: handheld found-footage tape with documentary realism. Lighting: practical, imperfect, sometimes from direct on-axis flash. Mood: tense, immediate, believable. Texture: motion blur, focus hunting, tape dropouts, grainy low light."
}
},
"tags": [
+29 -29
View File
@@ -12,7 +12,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: risograph print, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: risograph print, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: risograph print, misregistration, paper texture, limited inks. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -31,7 +31,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: screen print poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: screen print poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: screen print, bold shapes, ink texture, poster design. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -50,7 +50,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: halftone comic, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: halftone comic, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: halftone dots, comic print texture, high contrast. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -69,7 +69,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: duotone poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: duotone poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: duotone, bold contrast, graphic poster. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -88,7 +88,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: swiss design, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: swiss design, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: international typographic style, grid layout, minimal poster. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -107,7 +107,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: bauhaus, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: bauhaus, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: bauhaus design, geometric shapes, primary colors. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -126,7 +126,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: constructivist poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: constructivist poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: constructivist poster, bold diagonals, limited palette. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -145,7 +145,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: art deco, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: art deco, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: art deco poster, ornamental geometry, luxury vibe. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -164,7 +164,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: pop art, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: pop art, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: pop art, bold outlines, saturated colors. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -183,7 +183,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: psychedelic poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: psychedelic poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: psychedelic poster, wavy typography, vibrant gradients. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -202,7 +202,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vintage travel poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: vintage travel poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: vintage travel poster, flat illustration, retro palette. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -221,7 +221,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: brutalist graphic, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: brutalist graphic, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: brutalist graphic design, raw typography, high contrast layout. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -240,7 +240,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: memphis pattern, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: memphis pattern, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: memphis design, playful shapes, bold colors, pattern. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -259,7 +259,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: y2k graphic, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: y2k graphic, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: y2k design, chrome gradients, tech vibes, glossy. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -278,7 +278,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vaporwave poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: vaporwave poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: vaporwave aesthetic, neon gradients, retro futurism. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -297,7 +297,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: grunge flyer, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: grunge flyer, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: grunge design, rough texture, photocopy noise. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -316,7 +316,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: newspaper collage, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: newspaper collage, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: newspaper collage, cutout typography, paper texture. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -335,7 +335,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: minimal poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: minimal poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: minimal poster, simple shapes, strong negative space. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -354,7 +354,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: geometric pattern, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: geometric pattern, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: geometric pattern, repeating shapes, clean layout. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -373,7 +373,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: retro pixel ui, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: retro pixel ui, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: retro pixel ui, 8-bit interface, limited palette. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -392,7 +392,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: sticker bomb, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: sticker bomb, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: sticker bomb, busy collage, bold outlines. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -411,7 +411,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: isometric infographic, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: isometric infographic, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: isometric infographic, icons, clean labels. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -430,7 +430,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: editorial layout, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: editorial layout, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: editorial layout, clean typography, grid composition. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -449,7 +449,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: monochrome typography, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: monochrome typography, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: monochrome typography, bold type, high contrast. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -468,7 +468,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: holographic chrome, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: holographic chrome, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: holographic chrome, iridescent gradient, glossy. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -487,7 +487,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: liquid gradient, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: liquid gradient, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: liquid gradient, smooth color blends, modern poster. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -506,7 +506,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: sticker sheet, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: sticker sheet, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: sticker sheet, die-cut outlines, playful icons. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -525,7 +525,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: packaging label, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: packaging label, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: packaging label design, clean hierarchy, print-ready. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -544,7 +544,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: blueprint poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like."
"suffix": "Style: blueprint poster, graphic print aesthetic. Lighting: flat even light, minimal shading. Mood: bold, designed, poster-like. Key cues: blueprint poster, technical lines, clean labels. Finish cues: clean edges, intentional composition. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -0,0 +1,325 @@
{
"version": 1,
"styles": [
{
"id": "decor_copper_foil_stained_glass",
"name": "Copper Foil Stained Glass",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, copper foil stained glass, soldered seams, colored glass pieces, translucent mosaic",
"suffix": "backlit glow, solder line detail, glass texture, jewel-toned translucency, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: copper-foil stained glass with soldered seams and translucent color. Lighting: backlit illumination creating jewel-like glow through the glass. Texture: solder line detail, subtle rippled glass, and luminous color panels. Key cues: copper foil stained glass, soldered seams, colored glass pieces, translucent mosaic. Finish cues: backlit glow, solder line detail, glass texture, jewel-toned translucency. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"glass",
"foil"
]
},
{
"id": "decor_pate_de_verre_glass",
"name": "Pate de Verre Glass",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, pate de verre glass, granular cast glass, soft translucency, powdered glass color",
"suffix": "frosted surface, subtle translucence, cast texture, powder-soft color, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: pate de verre glass with softly cast translucent color. Lighting: soft transmitted light with gentle highlights on frosted surfaces. Texture: granular cast glass, matte translucency, and powder-soft color depth. Key cues: pate de verre glass, granular cast glass, soft translucency, powdered glass color. Finish cues: frosted surface, subtle translucence, cast texture, powder-soft color. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"glass",
"cast"
]
},
{
"id": "decor_slumped_kiln_formed_glass",
"name": "Slumped Kiln-Formed Glass",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, slumped kiln-formed glass, flowed glass contours, heat-shaped form, smooth translucent surface",
"suffix": "soft edge rounding, subtle thickness variation, glass sheen, formed contour shadows, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: kiln-formed slumped glass with heat-shaped contours. Lighting: controlled studio light emphasizing contour thickness and translucency. Texture: smooth glass sheen, softened edges, and gentle thickness variation. Key cues: slumped kiln-formed glass, flowed glass contours, heat-shaped form, smooth translucent surface. Finish cues: soft edge rounding, subtle thickness variation, glass sheen, formed contour shadows. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"glass",
"kiln_formed"
]
},
{
"id": "decor_raku_crackle_ceramic",
"name": "Raku Crackle Ceramic",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, raku ceramic, crackle glaze, smoke-fired surface, irregular luster",
"suffix": "black crack lines, smoky glaze variation, porous clay texture, unpredictable firing marks, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: raku-fired ceramic with crackled glaze and smoky variation. Lighting: soft studio light revealing crackle networks and firing irregularities. Texture: black crack lines, porous clay, and unpredictable glaze shifts. Key cues: raku ceramic, crackle glaze, smoke-fired surface, irregular luster. Finish cues: black crack lines, smoky glaze variation, porous clay texture, unpredictable firing marks. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"ceramic",
"raku"
]
},
{
"id": "decor_pit_fired_ceramic",
"name": "Pit-Fired Ceramic",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, pit-fired ceramic, fire clouds, smoke marks, unglazed clay surface",
"suffix": "burnished sheen, smoke staining, earthy mineral variation, handmade surface, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: pit-fired ceramic with smoke clouds and earthy firing marks. Lighting: warm studio light showing burnished highlights and smoke variation. Texture: unglazed clay, mineral staining, and atmospheric fire marking. Key cues: pit-fired ceramic, fire clouds, smoke marks, unglazed clay surface. Finish cues: burnished sheen, smoke staining, earthy mineral variation, handmade surface. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"ceramic",
"pit_fired"
]
},
{
"id": "decor_celadon_glaze_stoneware",
"name": "Celadon Glaze Stoneware",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, celadon glaze, pale green stoneware, pooled glaze, refined ceramic surface",
"suffix": "glaze pooling, cool translucence, soft crackle, subtle sheen, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: celadon-glazed stoneware with cool translucent pooling. Lighting: soft controlled light preserving glaze depth and subtle crackle. Texture: pooled glaze, pale green translucence, and refined ceramic sheen. Key cues: celadon glaze, pale green stoneware, pooled glaze, refined ceramic surface. Finish cues: glaze pooling, cool translucence, soft crackle, subtle sheen. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"ceramic",
"celadon"
]
},
{
"id": "decor_crystalline_glaze_porcelain",
"name": "Crystalline Glaze Porcelain",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, crystalline glaze porcelain, starburst crystal blooms, glossy fired surface, porcelain body",
"suffix": "crystal clusters, gloss reflections, glaze depth, smooth porcelain surface, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: crystalline-glazed porcelain with visible starburst crystal blooms. Lighting: controlled highlights emphasizing glossy glaze and crystal structure. Texture: smooth porcelain, glossy depth, and flower-like crystal growth. Key cues: crystalline glaze porcelain, starburst crystal blooms, glossy fired surface, porcelain body. Finish cues: crystal clusters, gloss reflections, glaze depth, smooth porcelain surface. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"ceramic",
"crystalline_glaze"
]
},
{
"id": "decor_mishima_inlay_pottery",
"name": "Mishima Inlay Pottery",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, mishima inlay pottery, incised lines, contrasting slip inlay, refined ceramic pattern",
"suffix": "filled linework, matte glaze, fine carving detail, quiet surface contrast, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: Mishima pottery with incised patterns filled by contrasting slip. Lighting: soft studio light revealing carved linework and matte ceramic surface. Texture: filled incisions, quiet glaze, and fine carved detail. Key cues: mishima inlay pottery, incised lines, contrasting slip inlay, refined ceramic pattern. Finish cues: filled linework, matte glaze, fine carving detail, quiet surface contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"ceramic",
"inlay"
]
},
{
"id": "decor_sgraffito_pottery",
"name": "Sgraffito Pottery",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, sgraffito pottery, scratched slip decoration, revealed clay body, layered ceramic surface",
"suffix": "incised motifs, matte slip texture, fine carving marks, earthy fired surface, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: sgraffito-decorated pottery with scratched slip and revealed clay. Lighting: soft angled light that catches carved ceramic marks. Texture: matte slip, incised motifs, and an earthy fired surface. Key cues: sgraffito pottery, scratched slip decoration, revealed clay body, layered ceramic surface. Finish cues: incised motifs, matte slip texture, fine carving marks, earthy fired surface. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"ceramic",
"sgraffito"
]
},
{
"id": "decor_hammered_copper_patina",
"name": "Hammered Copper Patina",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, hammered copper, hand-raised metal surface, aged patina, warm metallic tones",
"suffix": "hammer marks, oxidized color shifts, soft metallic sheen, worked metal relief, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: hammered copper decorative metalwork with aged patina. Lighting: warm studio light emphasizing hammered relief and patinated color shifts. Texture: hand-raised dimples, oxidized surface, and soft metallic sheen. Key cues: hammered copper, hand-raised metal surface, aged patina, warm metallic tones. Finish cues: hammer marks, oxidized color shifts, soft metallic sheen, worked metal relief. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"metal",
"patina"
]
},
{
"id": "decor_repousse_metalwork",
"name": "Repousse Metalwork",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, repousse metalwork, raised relief ornament, chased detailing, worked sheet metal",
"suffix": "relief contours, fine chased lines, aged metallic finish, ornamental depth, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: repousse metalwork with raised relief and chased detail. Lighting: directional studio light to reveal relief contours and fine tooling. Texture: raised ornament, chased lines, and aged metallic finish. Key cues: repousse metalwork, raised relief ornament, chased detailing, worked sheet metal. Finish cues: relief contours, fine chased lines, aged metallic finish, ornamental depth. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"metal",
"repousse"
]
},
{
"id": "decor_guilloche_enamel",
"name": "Guilloche Enamel",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, guilloche enamel, engine-turned pattern, translucent enamel layer, radiating metal geometry",
"suffix": "subsurface pattern shimmer, gloss enamel finish, precise engraved rhythm, luxury surface, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: guilloche enamel over engine-turned metal patterning. Lighting: controlled highlights that reveal the pattern beneath translucent enamel. Texture: glossy enamel depth, precise engraved rhythm, and subsurface shimmer. Key cues: guilloche enamel, engine-turned pattern, translucent enamel layer, radiating metal geometry. Finish cues: subsurface pattern shimmer, gloss enamel finish, precise engraved rhythm, luxury surface. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"enamel",
"guilloche"
]
},
{
"id": "decor_acid_etched_glass",
"name": "Acid-Etched Glass",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, acid-etched glass, frosted transparency, matte glass surface, ornamental etching",
"suffix": "soft diffusion, satin glass finish, etched motif edges, subtle translucence, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: acid-etched glass with frosted translucency and engraved motifs. Lighting: soft transmitted light with minimal glare to preserve the satin finish. Texture: matte frosted glass, subtle translucence, and etched boundaries. Key cues: acid-etched glass, frosted transparency, matte glass surface, ornamental etching. Finish cues: soft diffusion, satin glass finish, etched motif edges, subtle translucence. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"glass",
"etched"
]
},
{
"id": "decor_cut_crystal_faceting",
"name": "Cut Crystal Faceting",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, cut crystal, faceted glass, prismatic refraction, precision cutting",
"suffix": "sharp facets, caustic sparkle, high clarity, polished reflections, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cut crystal decorative glass with sharp faceting and prismatic sparkle. Lighting: crisp controlled highlights and small caustics across polished facets. Texture: sharp facet edges, high clarity, and jewel-like reflections. Key cues: cut crystal, faceted glass, prismatic refraction, precision cutting. Finish cues: sharp facets, caustic sparkle, high clarity, polished reflections. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"glass",
"crystal"
]
},
{
"id": "decor_lost_wax_cast_bronze",
"name": "Lost-Wax Cast Bronze",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, lost-wax cast bronze, cast metal surface, hand-finished patina, sculptural metalwork",
"suffix": "cast texture, warm bronze highlights, subtle tooling marks, aged patina depth, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: lost-wax cast bronze with hand-finished patina. Lighting: warm directional light showing cast surface, tooling, and metallic depth. Texture: cast grain, hand-finished marks, and aged bronze patina. Key cues: lost-wax cast bronze, cast metal surface, hand-finished patina, sculptural metalwork. Finish cues: cast texture, warm bronze highlights, subtle tooling marks, aged patina depth. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"bronze",
"cast"
]
},
{
"id": "decor_pietra_dura_inlay",
"name": "Pietra Dura Stone Inlay",
"category": "Decorative Arts",
"default": {
"prefix": "decorative arts, handcrafted, artisan-made, museum-quality, pietra dura inlay, polished stone mosaic, hardstone floral inlay, precise stone fitting",
"suffix": "polished stone sheen, crisp inlay seams, rich mineral color, luxury surface detail, tactile surface, premium craftsmanship, controlled studio lighting, clean composition"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: pietra dura hardstone inlay with tightly fitted polished stone pieces. Lighting: soft controlled light revealing polished mineral surfaces and seam precision. Texture: crisp stone joins, polished sheen, and rich mineral color variation. Key cues: pietra dura inlay, polished stone mosaic, hardstone floral inlay, precise stone fitting. Finish cues: polished stone sheen, crisp inlay seams, rich mineral color, luxury surface detail. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"decorative_arts",
"stone",
"inlay"
]
}
]
}
+245
View File
@@ -0,0 +1,245 @@
{
"version": 1,
"styles": [
{
"id": "tech_exploded_cutaway_diagram",
"name": "Exploded Cutaway Diagram",
"category": "Technical",
"default": {
"prefix": "technical illustration, clean lines, precise geometry, exploded cutaway view, separated components, sectional clarity",
"suffix": "clean line hierarchy, crisp geometry, sectional detail, flat rendering, high legibility"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: technical cutaway illustration with separated components and crisp geometry. Lighting: flat even rendering with no dramatic shading. Composition: clear separations, sectional clarity, and measured structure. Key cues: exploded cutaway view, separated components, technical linework, precise geometry. Finish cues: clean line hierarchy, crisp geometry, sectional detail, flat rendering. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"technical",
"cutaway",
"diagram"
]
},
{
"id": "tech_orthographic_projection_plate",
"name": "Orthographic Projection Plate",
"category": "Technical",
"default": {
"prefix": "technical line illustration, orthographic views, aligned geometry, drafting clarity, multiview structure",
"suffix": "clean projection lines, measured spacing, flat rendering, crisp technical linework, restrained contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: orthographic technical illustration with aligned multiview geometry. Lighting: flat drafting presentation with minimal tonal variation. Composition: measured spacing, crisp geometry, and projection clarity. Key cues: orthographic views, aligned geometry, drafting clarity, multiview structure. Finish cues: clean projection lines, measured spacing, flat rendering, crisp technical linework. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"technical",
"orthographic",
"blueprint"
]
},
{
"id": "tech_patent_plate_diagram",
"name": "Patent Plate Diagram",
"category": "Technical",
"default": {
"prefix": "technical engraving style, fine drafting lines, archival patent aesthetic, precise mechanical illustration, paper grain",
"suffix": "fine linework, etched line texture, paper grain, restrained contrast, crisp technical detail"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: archival patent-style technical illustration with fine drafting lines and paper grain. Lighting: flat document light that keeps linework readable. Texture: etched line detail, paper grain, and restrained contrast. Key cues: technical engraving style, archival patent aesthetic, precise mechanical illustration, fine drafting lines. Finish cues: fine linework, etched line texture, paper grain, restrained contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"technical",
"patent",
"diagram"
]
},
{
"id": "tech_section_elevation_drawing",
"name": "Section and Elevation Drawing",
"category": "Technical",
"default": {
"prefix": "technical architectural drawing, section cut hatching, elevation linework, measured geometry, clean drafting",
"suffix": "hatching clarity, precise line weights, crisp geometry, flat rendering, restrained document contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: architectural technical drawing with section hatching and elevation linework. Lighting: flat presentation emphasizing geometry and line-weight hierarchy. Composition: measured structure, clean hatch patterns, and crisp drafting. Key cues: section cut hatching, elevation linework, measured geometry, clean drafting. Finish cues: hatching clarity, precise line weights, crisp geometry, flat rendering. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"technical",
"section",
"elevation"
]
},
{
"id": "vec_gradient_mesh_illustration",
"name": "Gradient Mesh Illustration",
"category": "Vector",
"default": {
"prefix": "vector illustration, flat colors, clean shapes, crisp edges, smooth curves, gradient mesh vector, smooth tonal blends, scalable curves, clean vector shapes",
"suffix": "smooth color transitions, crisp bezier edges, clean layout, polished vector finish, consistent stroke weight, crisp edges, smooth curves"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vector illustration built from gradient-mesh color transitions. Lighting: graphic flat-light treatment with emphasis on controlled tonal blending. Texture: none; clean scalable curves and polished vector edges. Key cues: gradient mesh vector, smooth tonal blends, scalable curves, clean vector shapes. Finish cues: smooth color transitions, crisp bezier edges, clean layout, polished vector finish. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"vector",
"gradient_mesh",
"illustration"
]
},
{
"id": "vec_monoline_icon_system",
"name": "Monoline Icon System",
"category": "Vector",
"default": {
"prefix": "vector illustration, clean shapes, monoline forms, uniform stroke weight, modular geometry, flat graphic style",
"suffix": "consistent line weight, crisp curves, balanced spacing, polished vector edges, clean flat finish"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: monoline vector illustration with modular geometry and uniform stroke weight. Lighting: flat graphic treatment with no material shading. Composition: balanced spacing, crisp curves, and scalable clarity. Key cues: monoline forms, uniform stroke weight, modular geometry, flat graphic style. Finish cues: consistent line weight, crisp curves, balanced spacing, polished vector edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"vector",
"icon",
"monoline"
]
},
{
"id": "vec_wayfinding_graphic_system",
"name": "Wayfinding Graphic System",
"category": "Vector",
"default": {
"prefix": "vector illustration, bold graphic symbols, flat colors, clean geometry, strong directional shapes, transit-graphic aesthetic",
"suffix": "high contrast clarity, clean alignment, modular spacing, crisp vector edges, polished flat finish"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: bold vector graphics with strong directional shapes and flat-color clarity. Lighting: flat design presentation with emphasis on readability. Composition: modular spacing, crisp geometry, and strong symbol silhouettes. Key cues: bold graphic symbols, clean geometry, strong directional shapes, transit-graphic aesthetic. Finish cues: high contrast clarity, clean alignment, modular spacing, crisp vector edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"vector",
"wayfinding",
"infographic"
]
},
{
"id": "vec_flat_isometric_explainer",
"name": "Flat Isometric Explainer",
"category": "Vector",
"default": {
"prefix": "vector illustration, flat isometric geometry, clean planes, simplified depth, crisp graphic shapes",
"suffix": "crisp isometric edges, controlled flat shadows, clean geometry, polished vector finish, restrained contrast"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: flat isometric vector illustration with clean geometric depth. Lighting: minimal graphic shading with controlled flat shadows. Composition: tidy geometry, crisp edges, and scalable forms. Key cues: flat isometric geometry, clean planes, simplified depth, crisp graphic shapes. Finish cues: crisp isometric edges, controlled flat shadows, clean geometry, polished vector finish. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"vector",
"isometric",
"diagram"
]
},
{
"id": "pix_one_bit_dithered_pixel",
"name": "One-Bit Dithered Pixel",
"category": "Pixel Art",
"default": {
"prefix": "pixel art, 16-bit, limited palette, pixel-perfect, one-bit pixel art, black and white dithering, high contrast sprite look, coarse pixel grid",
"suffix": "checker dither, crisp pixels, readable silhouette, hard-edged contrast, dithered shading, sprite-like clarity"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: one-bit pixel art using black and white dithering only. Lighting: implied through dither pattern rather than gradients. Texture: coarse pixel grid, checker dithers, and hard-edged contrast. Key cues: one-bit pixel art, black and white dithering, high contrast sprite look, coarse pixel grid. Finish cues: checker dither, crisp pixels, readable silhouette, hard-edged contrast. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"pixel_art",
"one_bit",
"dither"
]
},
{
"id": "pix_four_color_handheld_pixel",
"name": "Four-Color Handheld Pixel",
"category": "Pixel Art",
"default": {
"prefix": "pixel art, 16-bit, limited palette, pixel-perfect, four-color handheld pixel art, tiny tile shading, portable-screen look",
"suffix": "restricted tones, crisp pixels, readable forms, small-scale tile texture, dithered shading, readable silhouette, sprite-like clarity"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: limited-palette handheld pixel art with only four tonal values. Lighting: implied with tiny tile shading and palette restriction. Texture: small pixel grid, restrained tones, and compact sprite readability. Key cues: four-color handheld pixel art, limited palette, tiny tile shading, portable-screen look. Finish cues: restricted tones, crisp pixels, readable forms, small-scale tile texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"pixel_art",
"handheld",
"limited_palette"
]
},
{
"id": "pix_isometric_sprite_sheet",
"name": "Isometric Sprite Sheet",
"category": "Pixel Art",
"default": {
"prefix": "pixel art, 16-bit, limited palette, pixel-perfect, isometric sprite sheet, tile-based game art, modular sprites, pixel grid alignment",
"suffix": "crisp pixels, modular repetition, readable silhouette, dithered shading, sprite-like clarity"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: isometric sprite-sheet pixel art built from modular game tiles. Lighting: compact pixel shading supporting isometric form readability. Texture: crisp grid alignment, modular repetition, and dithered shading. Key cues: isometric sprite sheet, tile-based game art, modular sprites, pixel grid alignment. Finish cues: crisp pixels, modular repetition, readable silhouette, dithered shading. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"pixel_art",
"sprite_sheet",
"isometric"
]
},
{
"id": "pix_tilemap_interface",
"name": "Tilemap Interface",
"category": "Pixel Art",
"default": {
"prefix": "pixel art, limited palette, crisp pixel grid, retro game overlay aesthetic, chunky interface framing, modular tiles",
"suffix": "sharp pixels, clean tile seams, limited tones, compact shading, readable silhouette, sprite clarity"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: retro pixel-art overlay with chunky framing and modular tile structure. Lighting: flat pixel shading with palette-limited contrast. Texture: crisp grid alignment, clean tile seams, and sharp pixels. Key cues: retro game overlay aesthetic, chunky interface framing, modular tiles, crisp pixel grid. Finish cues: sharp pixels, clean tile seams, limited tones, compact shading. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
"pixel_art",
"tilemap",
"interface"
]
}
]
}
+18 -18
View File
@@ -12,7 +12,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: photoreal 3d render, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: photoreal 3d render, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: photorealistic 3d render, physically based materials, global illumination. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -31,7 +31,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: stylized 3d toon, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: stylized 3d toon, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: stylized 3d, toon shading, soft gradients. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -50,7 +50,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: clay render, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: clay render, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: clay render, matte material, soft studio lighting. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -69,7 +69,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: wireframe overlay, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: wireframe overlay, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: wireframe overlay, technical render, clean topology. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -88,7 +88,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: low poly, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: low poly, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: low poly 3d, faceted geometry, flat shading. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -107,7 +107,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: isometric 3d room, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: isometric 3d room, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: isometric 3d room, miniature diorama, clean lighting. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -126,7 +126,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: subsurface skin render, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: subsurface skin render, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: 3d render, subsurface scattering, realistic skin shader. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -145,7 +145,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: hard surface sci-fi, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: hard surface sci-fi, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: hard surface 3d, sci-fi details, panel lines, clean bevels. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -164,7 +164,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: miniature diorama, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: miniature diorama, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: miniature diorama, tiny details, tilt-shift feel. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -183,7 +183,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: stop motion look, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: stop motion look, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: stop motion aesthetic, handmade texture, slight imperfections. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -202,7 +202,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: plastic toy render, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: plastic toy render, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: toy photography look, plastic materials, clean highlights. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -221,7 +221,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: glass and caustics, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: glass and caustics, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: glass render, caustics, refractive highlights. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -240,7 +240,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: subtle stylized pbr, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: subtle stylized pbr, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: stylized pbr, clean shapes, soft materials. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -259,7 +259,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cad product render, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: cad product render, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: cad render, clean surfaces, studio reflections. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -278,7 +278,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: neon cyber render, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: neon cyber render, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: 3d render, neon emissive, wet reflections, fog. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -297,7 +297,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: stylized miniature set, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: stylized miniature set, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: miniature set, tiny props, diorama lighting. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -316,7 +316,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: paper craft 3d, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: paper craft 3d, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: paper craft, folded paper, layered cutouts. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -335,7 +335,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: wax subsurface render, clean 3D render. Lighting: studio strobe with a large softbox, clean specular highlights. Materials: physically based, realistic roughness and specular response."
"suffix": "Style: wax subsurface render, clean 3D render. Lighting: large diffused key light with clean specular highlights. Materials: physically based, realistic roughness and specular response. Key cues: subsurface scattering, wax material, soft translucency. Finish cues: high detail, clean render, sharp edges. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+32 -32
View File
@@ -6,13 +6,13 @@
"name": "Minimalist Interior",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, minimalist interior, clean lines, neutral palette, natural light",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, minimalist interior, clean lines, neutral palette, natural light",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: minimalist interior, realistic architectural photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: minimalist interior, realistic architectural photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines. Key cues: minimalist interior, clean lines, neutral palette, natural light. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -25,13 +25,13 @@
"name": "Scandinavian Interior",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, scandinavian interior, light wood, cozy minimalism",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, scandinavian interior, light wood, cozy minimalism",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: scandinavian interior, realistic architectural photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: scandinavian interior, realistic architectural photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines. Key cues: scandinavian interior, light wood, cozy minimalism. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -44,13 +44,13 @@
"name": "Brutalist Architecture",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, brutalist architecture, raw concrete, monolithic forms",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, brutalist architecture, raw concrete, monolithic forms",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: brutalist architecture, realistic architectural photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: brutalist architecture, realistic architectural photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Composition: clean verticals, strong geometry, intentional lines. Key cues: brutalist architecture, raw concrete, monolithic forms. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -63,13 +63,13 @@
"name": "Art Deco Lobby",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, art deco interior, geometric ornament, luxury materials",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, art deco interior, geometric ornament, luxury materials",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: art deco lobby, realistic architectural photograph. Lighting: warm art deco sconces and soft ambient glow. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: art deco lobby, realistic architectural photograph. Lighting: warm art deco sconces and soft ambient glow. Composition: clean verticals, strong geometry, intentional lines. Key cues: art deco interior, geometric ornament, luxury materials. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -82,13 +82,13 @@
"name": "Modern Glass Tower",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, modern architecture, glass facade",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, modern architecture, glass facade",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: modern glass tower, realistic architectural photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: modern glass tower, realistic architectural photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Composition: clean verticals, strong geometry, intentional lines. Key cues: modern architecture, glass facade, clean geometry. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -101,13 +101,13 @@
"name": "Cozy Cabin Interior",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, rustic cabin interior, wood textures, warm practical lights",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, rustic cabin interior, wood textures, warm practical lights",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cozy cabin interior, realistic architectural photograph. Lighting: warm fireplace glow mixed with soft lamp light. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: cozy cabin interior, realistic architectural photograph. Lighting: warm fireplace glow mixed with soft lamp light. Composition: clean verticals, strong geometry, intentional lines. Key cues: rustic cabin interior, wood textures, warm practical lights. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -120,13 +120,13 @@
"name": "Industrial Loft",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, industrial loft, exposed brick, steel beams, large windows",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, industrial loft, exposed brick, steel beams, large windows",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: industrial loft, realistic architectural photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: industrial loft, realistic architectural photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines. Key cues: industrial loft, exposed brick, steel beams, large windows. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -139,13 +139,13 @@
"name": "Mid-Century Modern",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, mid-century modern interior, clean lines, warm wood, retro furniture",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, mid-century modern interior, clean lines, warm wood, retro furniture",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mid-century modern, realistic architectural photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: mid-century modern, realistic architectural photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines. Key cues: mid-century modern interior, clean lines, warm wood, retro furniture. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -158,13 +158,13 @@
"name": "Japanese Wabi-Sabi",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, wabi-sabi interior, natural materials, imperfection, calm minimalism",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, wabi-sabi interior, natural materials, imperfection, calm minimalism",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: japanese wabi-sabi, realistic architectural photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: japanese wabi-sabi, realistic architectural photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines. Key cues: wabi-sabi interior, natural materials, imperfection, calm minimalism. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -177,13 +177,13 @@
"name": "Mediterranean Villa",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, mediterranean architecture, stucco walls, arched openings, sunlit",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, mediterranean architecture, stucco walls, arched openings, sunlit",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mediterranean villa, realistic architectural photograph. Lighting: warm sun, sharp but pleasing shadows, bright highlights. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: mediterranean villa, realistic architectural photograph. Lighting: warm sun, sharp but pleasing shadows, bright highlights. Composition: clean verticals, strong geometry, intentional lines. Key cues: mediterranean architecture, stucco walls, arched openings, sunlit. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -196,13 +196,13 @@
"name": "Gothic Cathedral",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, gothic architecture, tall arches, stained glass, dramatic scale",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, gothic architecture, tall arches, stained glass, dramatic scale",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: gothic cathedral, realistic architectural photograph. Lighting: colored light beams through stained glass, dust in the air. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: gothic cathedral, realistic architectural photograph. Lighting: colored light beams through stained glass, dust in the air. Composition: clean verticals, strong geometry, intentional lines. Key cues: gothic architecture, tall arches, stained glass, dramatic scale. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -215,13 +215,13 @@
"name": "Futurist Interior",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, futurist interior, sleek curves, clean materials, ambient light",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, futurist interior, sleek curves, clean materials, ambient light",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: futurist interior, realistic architectural photograph. Lighting: soft ambient strips with crisp accent highlights. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: futurist interior, realistic architectural photograph. Lighting: soft ambient strips with crisp accent highlights. Composition: clean verticals, strong geometry, intentional lines. Key cues: futurist interior, sleek curves, clean materials, ambient light. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -234,13 +234,13 @@
"name": "Moroccan Riad",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, moroccan architecture, tile patterns, courtyard light, arched doorways",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, moroccan architecture, tile patterns, courtyard light, arched doorways",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: moroccan riad, realistic architectural photograph. Lighting: warm sun filtering into courtyard, soft bounce light. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: moroccan riad, realistic architectural photograph. Lighting: warm sun filtering into courtyard, soft bounce light. Composition: clean verticals, strong geometry, intentional lines. Key cues: moroccan architecture, tile patterns, courtyard light, arched doorways. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -253,13 +253,13 @@
"name": "Tropical Modern",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, tropical modern architecture, open air, natural materials, lush greenery",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, tropical modern architecture, open air, natural materials, lush greenery",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: tropical modern, realistic architectural photograph. Lighting: bright sun with soft shade from overhangs, humid ambience. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: tropical modern, realistic architectural photograph. Lighting: bright sun with soft shade from overhangs, humid ambience. Composition: clean verticals, strong geometry, intentional lines. Key cues: tropical modern architecture, open air, natural materials, lush greenery. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -272,13 +272,13 @@
"name": "Victorian Parlor",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, victorian interior, ornate details, rich textures",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, victorian interior, ornate details, rich textures",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: victorian parlor, realistic architectural photograph. Lighting: warm practical lamps with soft ambient fill. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: victorian parlor, realistic architectural photograph. Lighting: warm practical lamps with soft ambient fill. Composition: clean verticals, strong geometry, intentional lines. Key cues: victorian interior, ornate details, rich textures. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -291,13 +291,13 @@
"name": "Concrete Minimalism",
"category": "Architecture/Interior",
"default": {
"prefix": "architectural photography, straight verticals, clean geometry, wide-angle lens, realistic materials, balanced natural light, concrete interior, minimalism, soft light",
"prefix": "architectural photography, straight verticals, clean geometry, wide field of view, realistic materials, balanced natural light, concrete interior, minimalism, soft light",
"suffix": "realistic materials, clean perspective, crisp lines, balanced exposure, clean shadows, high detail, material realism"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: concrete minimalism, realistic architectural photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines."
"suffix": "Style: concrete minimalism, realistic architectural photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Composition: clean verticals, strong geometry, intentional lines. Key cues: concrete interior, minimalism, soft light, clean geometry. Finish cues: realistic materials, clean perspective. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+12 -12
View File
@@ -12,7 +12,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: glossy fashion editorial, fashion photograph. Lighting: studio strobe with a large softbox, clean specular highlights. Mood: confident, curated, magazine-ready."
"suffix": "Style: glossy fashion editorial, fashion photograph. Lighting: large diffused key light with clean specular highlights. Mood: confident, curated, magazine-ready. Key cues: fashion editorial, studio lighting, high contrast, clean backdrop. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -31,7 +31,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: streetwear lookbook, fashion photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: confident, curated, magazine-ready."
"suffix": "Style: streetwear lookbook, fashion photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: confident, curated, magazine-ready. Key cues: streetwear lookbook, candid pose, urban backdrop. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -50,7 +50,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: runway backstage, fashion photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: confident, curated, magazine-ready."
"suffix": "Style: runway backstage, fashion photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: confident, curated, magazine-ready. Key cues: backstage fashion, documentary feel, available light. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -69,7 +69,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: high fashion beauty shot, fashion photograph. Lighting: beauty dish with soft fill, clean catchlights, smooth gradients. Mood: confident, curated, magazine-ready."
"suffix": "Style: high fashion beauty shot, fashion photograph. Lighting: centered beauty lighting with soft fill, clean catchlights, smooth gradients. Mood: confident, curated, magazine-ready. Key cues: beauty shot, clean skin, beauty lighting, sharp eyes. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -88,7 +88,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: minimal editorial, fashion photograph. Lighting: studio strobe with a large softbox, clean specular highlights. Mood: confident, curated, magazine-ready."
"suffix": "Style: minimal editorial, fashion photograph. Lighting: large diffused key light with clean specular highlights. Mood: confident, curated, magazine-ready. Key cues: minimal fashion editorial, neutral palette, clean composition. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -107,7 +107,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vintage editorial, fashion photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: confident, curated, magazine-ready."
"suffix": "Style: vintage editorial, fashion photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: confident, curated, magazine-ready. Key cues: vintage fashion editorial, film grain, muted palette. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -126,7 +126,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: outdoor editorial, fashion photograph. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: confident, curated, magazine-ready."
"suffix": "Style: outdoor editorial, fashion photograph. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: confident, curated, magazine-ready. Key cues: fashion editorial outdoors, wind, natural light. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -145,7 +145,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: street style snapshot, fashion photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: confident, curated, magazine-ready."
"suffix": "Style: street style snapshot, fashion photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: confident, curated, magazine-ready. Key cues: street style, candid, natural color. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -164,7 +164,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: luxury beauty macro, fashion photograph. Lighting: soft macro beauty light, clean specular highlights. Mood: confident, curated, magazine-ready."
"suffix": "Style: luxury beauty macro, fashion photograph. Lighting: soft macro beauty light, clean specular highlights. Mood: confident, curated, magazine-ready. Key cues: beauty macro, skin texture, cosmetic detail. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -183,7 +183,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: athleisure campaign, fashion photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: confident, curated, magazine-ready."
"suffix": "Style: athleisure campaign, fashion photograph. Lighting: overcast daylight, even illumination, soft shadow transitions. Mood: confident, curated, magazine-ready. Key cues: athleisure campaign, clean energy, natural light. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -202,7 +202,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: couture runway, fashion photograph. Lighting: runway spotlights with controlled haze and crisp highlights. Mood: confident, curated, magazine-ready."
"suffix": "Style: couture runway, fashion photograph. Lighting: runway spotlights with controlled haze and crisp highlights. Mood: confident, curated, magazine-ready. Key cues: couture runway, runway lights, dramatic pose. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -221,7 +221,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: vintage street fashion, fashion photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: confident, curated, magazine-ready."
"suffix": "Style: vintage street fashion, fashion photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: confident, curated, magazine-ready. Key cues: vintage street fashion, film grain, candid. Finish cues: sharp focus, editorial color grade. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+18 -18
View File
@@ -6,13 +6,13 @@
"name": "Luxury Watch Ad",
"category": "Product",
"default": {
"prefix": "commercial product photography, studio strobe lighting, seamless background, controlled reflections, clean composition, luxury product shot, watch photography",
"prefix": "commercial product photography, controlled studio lighting, minimal background, controlled reflections, clean composition, luxury product shot, watch photography",
"suffix": "crisp edges, high detail, clean background, clean specular highlights, premium look, minimal clutter"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: luxury watch ad, commercial product photograph. Lighting: studio strobe with a large softbox, clean specular highlights. Composition: clean silhouette, premium materials, crisp details."
"suffix": "Style: luxury watch ad, commercial product photograph. Lighting: large diffused key light with clean specular highlights. Composition: clean silhouette, premium materials, crisp details. Key cues: luxury product shot, watch photography, controlled reflections. Finish cues: crisp edges, high detail, clean background. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -24,13 +24,13 @@
"name": "Cosmetics Packshot",
"category": "Product",
"default": {
"prefix": "commercial product photography, studio strobe lighting, seamless background, controlled reflections, clean composition, cosmetics product shot, clean studio setup, soft reflections",
"prefix": "commercial product photography, controlled studio lighting, minimal background, controlled reflections, clean composition, cosmetics product shot, clean studio setup, soft reflections",
"suffix": "crisp edges, high detail, clean background, clean specular highlights, premium look, minimal clutter"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: cosmetics packshot, commercial product photograph. Lighting: studio strobe with a large softbox, clean specular highlights. Composition: clean silhouette, premium materials, crisp details."
"suffix": "Style: cosmetics packshot, commercial product photograph. Lighting: large diffused key light with clean specular highlights. Composition: clean silhouette, premium materials, crisp details. Key cues: cosmetics product shot, clean studio setup, soft reflections. Finish cues: crisp edges, high detail, clean background. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -42,13 +42,13 @@
"name": "Food Packshot",
"category": "Product",
"default": {
"prefix": "commercial product photography, studio strobe lighting, seamless background, controlled reflections, clean composition, food packshot, studio tabletop, appetizing highlights",
"prefix": "commercial product photography, controlled studio lighting, minimal background, controlled reflections, clean composition, food packshot, studio tabletop, appetizing highlights",
"suffix": "crisp edges, high detail, clean background, clean specular highlights, premium look, minimal clutter"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: food packshot, commercial product photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Composition: clean silhouette, premium materials, crisp details."
"suffix": "Style: food packshot, commercial product photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Composition: clean silhouette, premium materials, crisp details. Key cues: food packshot, studio tabletop, appetizing highlights. Finish cues: crisp edges, high detail, clean background. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -60,13 +60,13 @@
"name": "Perfume Ad",
"category": "Product",
"default": {
"prefix": "commercial product photography, studio strobe lighting, seamless background, controlled reflections, clean composition, perfume product shot, glass bottle, luxury lighting",
"prefix": "commercial product photography, controlled studio lighting, minimal background, controlled reflections, clean composition, perfume product shot, glass bottle, luxury lighting",
"suffix": "crisp edges, high detail, clean background, clean specular highlights, premium look, minimal clutter"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: perfume ad, commercial product photograph. Lighting: studio strobe with a large softbox, clean specular highlights. Composition: clean silhouette, premium materials, crisp details."
"suffix": "Style: perfume ad, commercial product photograph. Lighting: large diffused key light with clean specular highlights. Composition: clean silhouette, premium materials, crisp details. Key cues: perfume product shot, glass bottle, luxury lighting. Finish cues: crisp edges, high detail, clean background. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -78,13 +78,13 @@
"name": "Tech Gadget Shot",
"category": "Product",
"default": {
"prefix": "commercial product photography, studio strobe lighting, seamless background, controlled reflections, clean composition, tech product photography, clean highlights, premium materials",
"prefix": "commercial product photography, controlled studio lighting, minimal background, controlled reflections, clean composition, tech product photography, clean highlights, premium materials",
"suffix": "crisp edges, high detail, clean background, clean specular highlights, premium look, minimal clutter"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: tech gadget shot, commercial product photograph. Lighting: studio strobe with a large softbox, clean specular highlights. Composition: clean silhouette, premium materials, crisp details."
"suffix": "Style: tech gadget shot, commercial product photograph. Lighting: large diffused key light with clean specular highlights. Composition: clean silhouette, premium materials, crisp details. Key cues: tech product photography, clean highlights, premium materials. Finish cues: crisp edges, high detail, clean background. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -96,13 +96,13 @@
"name": "Jewelry Macro",
"category": "Product",
"default": {
"prefix": "commercial product photography, studio strobe lighting, seamless background, controlled reflections, clean composition, jewelry macro photography, sparkle highlights, shallow depth of field",
"prefix": "commercial product photography, controlled studio lighting, minimal background, controlled reflections, clean composition, jewelry macro photography, sparkle highlights, shallow depth of field",
"suffix": "crisp edges, high detail, clean background, clean specular highlights, premium look, minimal clutter"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: jewelry macro, commercial product photograph. Lighting: small hard highlights for sparkle, controlled fill, clean reflections. Composition: clean silhouette, premium materials, crisp details."
"suffix": "Style: jewelry macro, commercial product photograph. Lighting: small hard highlights for sparkle, controlled fill, clean reflections. Composition: clean silhouette, premium materials, crisp details. Key cues: jewelry macro photography, sparkle highlights, shallow depth of field. Finish cues: crisp edges, high detail, clean background. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -114,13 +114,13 @@
"name": "Skincare Bottle Ad",
"category": "Product",
"default": {
"prefix": "commercial product photography, studio strobe lighting, seamless background, controlled reflections, clean composition, skincare product shot, clean studio, dewy highlights",
"prefix": "commercial product photography, controlled studio lighting, minimal background, controlled reflections, clean composition, skincare product shot, clean studio, dewy highlights",
"suffix": "crisp edges, high detail, clean background, clean specular highlights, premium look, minimal clutter"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: skincare bottle ad, commercial product photograph. Lighting: studio strobe with a large softbox, clean specular highlights. Composition: clean silhouette, premium materials, crisp details."
"suffix": "Style: skincare bottle ad, commercial product photograph. Lighting: large diffused key light with clean specular highlights. Composition: clean silhouette, premium materials, crisp details. Key cues: skincare product shot, clean studio, dewy highlights. Finish cues: crisp edges, high detail, clean background. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -132,13 +132,13 @@
"name": "Sneaker Product Shot",
"category": "Product",
"default": {
"prefix": "commercial product photography, studio strobe lighting, seamless background, controlled reflections, clean composition, sneaker photography, clean background, sharp detail",
"prefix": "commercial product photography, controlled studio lighting, minimal background, controlled reflections, clean composition, sneaker photography, clean background, sharp detail",
"suffix": "crisp edges, high detail, clean background, clean specular highlights, premium look, minimal clutter"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: sneaker product shot, commercial product photograph. Lighting: studio strobe with a large softbox, clean specular highlights. Composition: clean silhouette, premium materials, crisp details."
"suffix": "Style: sneaker product shot, commercial product photograph. Lighting: large diffused key light with clean specular highlights. Composition: clean silhouette, premium materials, crisp details. Key cues: sneaker photography, clean background, sharp detail. Finish cues: crisp edges, high detail, clean background. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -150,13 +150,13 @@
"name": "Beverage Splash",
"category": "Product",
"default": {
"prefix": "commercial product photography, studio strobe lighting, seamless background, controlled reflections, clean composition, beverage ad, splash photography, frozen droplets",
"prefix": "commercial product photography, controlled studio lighting, minimal background, controlled reflections, clean composition, beverage ad, splash photography, frozen droplets",
"suffix": "crisp edges, high detail, clean background, clean specular highlights, premium look, minimal clutter"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: beverage splash, commercial product photograph. Lighting: hard backlight with crisp droplets, high-speed flash feel. Composition: clean silhouette, premium materials, crisp details."
"suffix": "Style: beverage splash, commercial product photograph. Lighting: hard backlight with crisp droplets, high-speed flash feel. Composition: clean silhouette, premium materials, crisp details. Key cues: beverage ad, splash photography, frozen droplets. Finish cues: crisp edges, high detail, clean background. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+17 -17
View File
@@ -12,7 +12,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: misty forest, nature photograph. Lighting: diffused fog light, soft beams through trees. Mood: calm, immersive, natural."
"suffix": "Style: misty forest, nature photograph. Lighting: diffused fog light, soft beams through trees. Mood: calm, immersive, natural. Key cues: nature photography, misty forest, atmospheric depth. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -25,13 +25,13 @@
"name": "Mountain Vista",
"category": "Nature",
"default": {
"prefix": "nature photography, natural light, atmospheric depth, fine detail, realistic textures, environmental realism, landscape photography, mountain vista, wide angle",
"prefix": "nature photography, natural light, atmospheric depth, fine detail, realistic textures, environmental realism, landscape photography, mountain vista, wide field of view",
"suffix": "natural color, fine detail, realistic texture, clean contrast, high detail, fine microtexture, realistic atmosphere"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mountain vista, nature photograph. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: calm, immersive, natural."
"suffix": "Style: mountain vista, nature photograph. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: calm, immersive, natural. Key cues: landscape photography, mountain vista, wide field of view. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -50,7 +50,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: seascape, nature photograph. Lighting: soft overcast coastal light, subtle specular highlights. Mood: calm, immersive, natural."
"suffix": "Style: seascape, nature photograph. Lighting: soft overcast coastal light, subtle specular highlights. Mood: calm, immersive, natural. Key cues: seascape photography, waves, horizon line. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -63,13 +63,13 @@
"name": "Desert Dunes",
"category": "Nature",
"default": {
"prefix": "nature photography, natural light, atmospheric depth, fine detail, realistic textures, environmental realism, desert landscape, sand dunes, ripples, wide angle",
"prefix": "nature photography, natural light, atmospheric depth, fine detail, realistic textures, environmental realism, desert landscape, sand dunes, ripples, wide field of view",
"suffix": "natural color, fine detail, realistic texture, clean contrast, high detail, fine microtexture, realistic atmosphere"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: desert dunes, nature photograph. Lighting: low sun casting long shadows across dune ridges. Mood: calm, immersive, natural."
"suffix": "Style: desert dunes, nature photograph. Lighting: low sun casting long shadows across dune ridges. Mood: calm, immersive, natural. Key cues: desert landscape, sand dunes, ripples, wide field of view. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -88,7 +88,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: autumn leaves, nature photograph. Lighting: soft, diffused natural light from a large window camera-left, gentle shadows. Mood: calm, immersive, natural."
"suffix": "Style: autumn leaves, nature photograph. Lighting: soft, diffused key light from viewer-left, gentle shadows. Mood: calm, immersive, natural. Key cues: nature close-up, autumn leaves, rich colors, bokeh. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -107,7 +107,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: rainforest, nature photograph. Lighting: filtered sunlight through canopy, humid atmosphere. Mood: calm, immersive, natural."
"suffix": "Style: rainforest, nature photograph. Lighting: filtered sunlight through canopy, humid atmosphere. Mood: calm, immersive, natural. Key cues: rainforest, lush greens, humid haze, detailed foliage. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -120,13 +120,13 @@
"name": "Aurora Night",
"category": "Nature",
"default": {
"prefix": "nature photography, natural light, atmospheric depth, fine detail, realistic textures, environmental realism, aurora, night sky, wide angle, stars",
"prefix": "nature photography, natural light, atmospheric depth, fine detail, realistic textures, environmental realism, aurora, night sky, wide field of view, stars",
"suffix": "natural color, fine detail, realistic texture, clean contrast, high detail, fine microtexture, realistic atmosphere"
},
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: aurora night, nature photograph. Lighting: moonless night with aurora glow, crisp stars. Mood: calm, immersive, natural."
"suffix": "Style: aurora night, nature photograph. Lighting: moonless night with aurora glow, crisp stars. Mood: calm, immersive, natural. Key cues: aurora, night sky, wide field of view, stars. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -145,7 +145,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: stormy coast, nature photograph. Lighting: storm light with high contrast clouds, moody atmosphere. Mood: calm, immersive, natural."
"suffix": "Style: stormy coast, nature photograph. Lighting: storm light with high contrast clouds, moody atmosphere. Mood: calm, immersive, natural. Key cues: stormy seascape, dramatic clouds, waves. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -164,7 +164,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: wildflower meadow, nature photograph. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: calm, immersive, natural."
"suffix": "Style: wildflower meadow, nature photograph. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: calm, immersive, natural. Key cues: wildflower meadow, soft bokeh, pastel colors. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -183,7 +183,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: snowy pines, nature photograph. Lighting: bright overcast snow light, soft shadow transitions. Mood: calm, immersive, natural."
"suffix": "Style: snowy pines, nature photograph. Lighting: bright overcast snow light, soft shadow transitions. Mood: calm, immersive, natural. Key cues: snowy forest, cold palette, fine detail. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -202,7 +202,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: waterfall mist, nature photograph. Lighting: overcast forest light with mist diffusion. Mood: calm, immersive, natural."
"suffix": "Style: waterfall mist, nature photograph. Lighting: overcast forest light with mist diffusion. Mood: calm, immersive, natural. Key cues: waterfall, mist, long exposure feel, lush rocks. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -221,7 +221,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: volcanic landscape, nature photograph. Lighting: dramatic overcast with breaks of sunlight. Mood: calm, immersive, natural."
"suffix": "Style: volcanic landscape, nature photograph. Lighting: dramatic overcast with breaks of sunlight. Mood: calm, immersive, natural. Key cues: volcanic landscape, black rocks, dramatic sky. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -240,7 +240,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: coral reef, nature photograph. Lighting: underwater caustics with clear blue light. Mood: calm, immersive, natural."
"suffix": "Style: coral reef, nature photograph. Lighting: underwater caustics with clear blue light. Mood: calm, immersive, natural. Key cues: coral reef, underwater, colorful fish, clear water. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -259,7 +259,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: savanna sunset, nature photograph. Lighting: golden hour backlight with subtle lens flare and warm rim light. Mood: calm, immersive, natural."
"suffix": "Style: savanna sunset, nature photograph. Lighting: golden hour backlight with warm rim light and gentle bloom. Mood: calm, immersive, natural. Key cues: savanna, sunset, dust haze, warm tones. Finish cues: natural color, fine detail, realistic texture. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+16 -16
View File
@@ -12,7 +12,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: glitch art, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: glitch art, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: glitch art, digital distortion, chromatic aberration, scanlines. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -31,7 +31,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: double exposure, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: double exposure, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: double exposure, layered silhouettes, surreal composition. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -50,7 +50,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: light painting, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: light painting, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: light painting, long exposure trails, dark background. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -69,7 +69,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: prismatic refraction, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: prismatic refraction, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: prismatic refraction, rainbow dispersion, glass texture. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -88,7 +88,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: abstract geometry, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: abstract geometry, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: abstract geometric, clean shapes, bold composition. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -107,7 +107,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: minimal monochrome, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: minimal monochrome, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: minimal monochrome, high contrast, negative space. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -126,7 +126,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: analog photocopy, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: analog photocopy, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: photocopy aesthetic, paper noise, high contrast, xerox texture. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -145,7 +145,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: datamosh, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: datamosh, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: datamosh, compression artifacts, blocky smears. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -164,7 +164,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: liquid marble, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: liquid marble, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: liquid marble, swirling ink, organic patterns. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -183,7 +183,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: neon wireframe, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: neon wireframe, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: neon wireframe, glowing lines, dark background. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -202,7 +202,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: kaleidoscope, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: kaleidoscope, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: kaleidoscope, symmetry, prismatic pattern. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -221,7 +221,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: minimal gradient, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: minimal gradient, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: minimal gradient, soft color field, smooth transitions. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -240,7 +240,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: paper grain texture, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: paper grain texture, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: paper grain, subtle texture, soft noise. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -259,7 +259,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: chromatic prism, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: chromatic prism, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: chromatic prism, color separation, light leaks. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -278,7 +278,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: mirror kaleidoscope, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: mirror kaleidoscope, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: mirror kaleidoscope, fragmented reflections, symmetry. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -297,7 +297,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: thermal vision, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed."
"suffix": "Style: thermal vision, experimental visual aesthetic. Lighting: intentional and graphic, emphasizing form and contrast. Mood: bold, modern, designed. Key cues: thermal vision, false color, heat map look. Finish cues: clean composition, intentional design. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+20 -20
View File
@@ -12,7 +12,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: teal shadows and warm highlights, cinematic contrast. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: teal shadows and warm highlights, cinematic contrast. Tone mapping: smooth highlights and coherent shadows. Key cues: cinematic color grade, teal and orange, rich contrast. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -31,7 +31,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color palette: muted pastels with soft contrast. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color palette: muted pastels with soft contrast. Tone mapping: smooth highlights and coherent shadows. Key cues: muted pastel palette, soft contrast, gentle highlights. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -50,7 +50,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: monochrome with deep blacks and bright whites. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: monochrome with deep blacks and bright whites. Tone mapping: smooth highlights and coherent shadows. Key cues: black and white, high contrast, deep blacks. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -69,7 +69,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: warm vintage tones with gentle fade. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: warm vintage tones with gentle fade. Tone mapping: smooth highlights and coherent shadows. Key cues: warm vintage grade, slightly faded, soft highlights. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -88,7 +88,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color palette: cool and slightly desaturated. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color palette: cool and slightly desaturated. Tone mapping: smooth highlights and coherent shadows. Key cues: cool tones, desaturated palette, clean contrast. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -107,7 +107,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: desaturated high-contrast bleach-bypass look. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: desaturated high-contrast bleach-bypass look. Tone mapping: smooth highlights and coherent shadows. Key cues: bleach bypass look, desaturated, high contrast. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -126,7 +126,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: soft cinematic pastel with gentle bloom. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: soft cinematic pastel with gentle bloom. Tone mapping: smooth highlights and coherent shadows. Key cues: soft cinematic, pastel grade, subtle bloom. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -145,7 +145,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: vibrant, punchy saturation with crisp contrast. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: vibrant, punchy saturation with crisp contrast. Tone mapping: smooth highlights and coherent shadows. Key cues: vibrant colors, punchy saturation, crisp contrast. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -164,7 +164,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color palette: earthy documentary tones, natural contrast. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color palette: earthy documentary tones, natural contrast. Tone mapping: smooth highlights and coherent shadows. Key cues: earthy tones, natural contrast, subtle grain. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -183,7 +183,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: deep shadows with bright neon highlights. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: deep shadows with bright neon highlights. Tone mapping: smooth highlights and coherent shadows. Key cues: neon grade, deep shadows, bright neon. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -202,7 +202,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: golden-hour warmth with soft shadow rolloff. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: golden-hour warmth with soft shadow rolloff. Tone mapping: smooth highlights and coherent shadows. Key cues: golden hour grade, warm highlights, soft shadows. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -221,7 +221,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color palette: cold winter blues with crisp contrast. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color palette: cold winter blues with crisp contrast. Tone mapping: smooth highlights and coherent shadows. Key cues: cold winter grade, blue shadows, crisp air. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -240,7 +240,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: sepia tone with vintage print feel. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: sepia tone with vintage print feel. Tone mapping: smooth highlights and coherent shadows. Key cues: sepia tone, vintage print, soft contrast. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -259,7 +259,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: matte look with lifted blacks and fine grain. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: matte look with lifted blacks and fine grain. Tone mapping: smooth highlights and coherent shadows. Key cues: matte grade, lifted blacks, film grain. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -278,7 +278,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: clean commercial neutrality with accurate whites. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: clean commercial neutrality with accurate whites. Tone mapping: smooth highlights and coherent shadows. Key cues: clean commercial grade, neutral whites, natural color. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -297,7 +297,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color palette: low saturation with deep shadows and moody contrast. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color palette: low saturation with deep shadows and moody contrast. Tone mapping: smooth highlights and coherent shadows. Key cues: moody, low saturation, deep shadows. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -316,7 +316,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: bright airy look with soft highlights. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: bright airy look with soft highlights. Tone mapping: smooth highlights and coherent shadows. Key cues: bright airy, high key, soft highlights. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -335,7 +335,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: rich reds and crisp contrast, vintage slide feel. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: rich reds and crisp contrast, vintage slide feel. Tone mapping: smooth highlights and coherent shadows. Key cues: vintage slide look, rich reds, crisp contrast. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -354,7 +354,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: blue monochrome cyanotype print feel. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: blue monochrome cyanotype print feel. Tone mapping: smooth highlights and coherent shadows. Key cues: cyanotype look, blue monochrome, paper texture. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
@@ -373,7 +373,7 @@
"models": {
"flux_2_klein": {
"prefix": "",
"suffix": "Style: realistic image with an intentional color grade. Color grade: duotone blue and red with graphic contrast. Tone mapping: smooth highlights and coherent shadows."
"suffix": "Style: realistic image with an intentional color grade. Color grade: duotone blue and red with graphic contrast. Tone mapping: smooth highlights and coherent shadows. Key cues: duotone, blue and red, graphic contrast. Finish cues: clean tones. Instruction: preserve the user prompt subject and add only stylistic cues."
}
},
"tags": [
+11329 -16
View File
File diff suppressed because it is too large Load Diff
+150
View File
@@ -0,0 +1,150 @@
from __future__ import annotations
import unittest
import nodes
import style_library
class FakeTextEncoder:
def __init__(self):
self.last_text = None
self.last_tokens = None
def tokenize(self, text):
self.last_text = text
self.last_tokens = {"text": text}
return self.last_tokens
def encode_from_tokens_scheduled(self, tokens):
return [[tokens, {"source": tokens["text"]}]]
class PromptStylerTests(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.library = style_library.get_cached_style_library(load_policy=style_library.LOAD_POLICY_STRICT)
cls.stable_node = nodes.PromptStylerConditioning()
cls.primary_choice = next(choice for choice in cls.library.choices if choice.endswith("| cinematic_anamorphic"))
cls.secondary_choice = next(choice for choice in cls.library.choices if choice.endswith("| cin_film_noir"))
def test_apply_style_false_returns_raw_prompt(self):
encoder = FakeTextEncoder()
conditioning, styled_prompt = self.stable_node.encode(
prompt="red fox",
apply_style=False,
style=self.primary_choice,
template_variant="default",
style_id_override="",
text_encoder=encoder,
)
self.assertEqual("red fox", styled_prompt)
self.assertEqual("red fox", encoder.last_text)
self.assertEqual(1, len(conditioning))
def test_style_id_override_takes_precedence(self):
encoder = FakeTextEncoder()
conditioning, styled_prompt = self.stable_node.encode(
prompt="portrait",
apply_style=True,
style=self.secondary_choice,
template_variant="default",
style_id_override="cinematic_anamorphic",
text_encoder=encoder,
)
expected_style = style_library.resolve_style_legacy(
self.library,
choice=self.primary_choice,
style_id_override="cinematic_anamorphic",
)
expected_prompt, _details = style_library.compose_prompt_legacy(
"portrait",
expected_style,
template_variant="default",
)
self.assertEqual(expected_prompt, styled_prompt)
self.assertEqual(expected_prompt, encoder.last_text)
self.assertEqual(1, len(conditioning))
def test_legacy_default_variant_matches_expected_fixture(self):
encoder = FakeTextEncoder()
conditioning, styled_prompt = self.stable_node.encode(
prompt="cinematic film still, robot detective",
apply_style=True,
style=self.primary_choice,
template_variant="default",
style_id_override="",
text_encoder=encoder,
)
expected = (
"cinematic film still, professional cinematography, cinematic framing, carefully composed shot, "
"atmospheric depth, realistic lighting, cinematic, anamorphic look, shallow depth of field, "
"dramatic lighting, robot detective, film grain, subtle halation, rich contrast, color graded, "
"filmic color science, smooth highlight rolloff, deep blacks, subtle film grain, soft halation, "
"high dynamic range"
)
self.assertEqual(expected, styled_prompt)
self.assertEqual(expected, encoder.last_text)
self.assertEqual(1, len(conditioning))
def test_flux_variant_uses_variant_text_when_present(self):
encoder = FakeTextEncoder()
conditioning, styled_prompt = self.stable_node.encode(
prompt="robot detective",
apply_style=True,
style=self.primary_choice,
template_variant="flux_2_klein",
style_id_override="",
text_encoder=encoder,
)
expected_style = self.library.by_id["cinematic_anamorphic"]
expected_prompt, _details = style_library.compose_prompt_legacy(
"robot detective",
expected_style,
template_variant="flux_2_klein",
)
self.assertEqual(expected_prompt, styled_prompt)
self.assertEqual(expected_prompt, encoder.last_text)
self.assertEqual(1, len(conditioning))
def test_missing_variant_falls_back_to_default(self):
style = self.library.by_id["cinematic_anamorphic"]
default_prompt, _default_details = style_library.compose_prompt_legacy(
"robot detective",
style,
template_variant="default",
)
fallback_prompt, details = style_library.compose_prompt_legacy(
"robot detective",
style,
template_variant="missing_variant",
)
self.assertEqual(default_prompt, fallback_prompt)
self.assertEqual(style_library.DEFAULT_VARIANT, details["variant"])
def test_missing_text_encoder_raises_explicit_error(self):
with self.assertRaisesRegex(RuntimeError, "text_encoder input is invalid"):
self.stable_node.encode(
prompt="robot detective",
apply_style=True,
style=self.primary_choice,
template_variant="default",
style_id_override="",
text_encoder=None,
)
def test_unknown_style_id_override_raises_error(self):
encoder = FakeTextEncoder()
with self.assertRaisesRegex(ValueError, "Unknown style_id_override"):
self.stable_node.encode(
prompt="robot detective",
apply_style=True,
style=self.primary_choice,
template_variant="default",
style_id_override="does_not_exist",
text_encoder=encoder,
)
if __name__ == "__main__":
unittest.main()
+88
View File
@@ -0,0 +1,88 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>ComfyUI PromptStyler - App Summary</title>
<style>
@page { size: Letter; margin: 0.42in; }
:root { --ink:#13212f; --muted:#526171; --rule:#d7dee7; --panel:#f4f7fa; --accent:#1f5f8b; --accent-soft:#dbeaf5; }
* { box-sizing: border-box; }
html, body { margin:0; padding:0; font-family:"Segoe UI", Arial, sans-serif; color:var(--ink); background:#fff; }
body { font-size:10.3pt; line-height:1.28; }
.hero { display:grid; grid-template-columns:1.55fr 0.95fr; gap:14px; margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid var(--rule); }
.title { margin:0 0 4px 0; font-size:22pt; line-height:1.05; letter-spacing:-0.02em; }
.subtitle { margin:0; color:var(--muted); font-size:10pt; }
.badge { display:inline-block; margin-bottom:8px; padding:4px 8px; border-radius:999px; background:var(--accent-soft); color:var(--accent); font-size:8.5pt; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; }
.meta { background:linear-gradient(180deg, #f9fbfd 0%, var(--panel) 100%); border:1px solid var(--rule); border-radius:10px; padding:10px 11px; }
.meta-row { margin:0 0 8px 0; }
.meta-row:last-child { margin-bottom:0; }
.label { display:block; margin-bottom:2px; color:var(--muted); font-size:8.2pt; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; }
.value { margin:0; font-size:9.9pt; }
.grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 14px; }
section { break-inside:avoid; }
h2 { margin:0 0 6px 0; padding-bottom:3px; border-bottom:1px solid var(--rule); font-size:10pt; letter-spacing:0.02em; text-transform:uppercase; }
p { margin:0 0 6px 0; }
ul { margin:0; padding-left:16px; }
li { margin:0 0 4px 0; }
.architecture { grid-column:1 / -1; }
.small { font-size:9.1pt; color:var(--muted); }
.code { font-family:Consolas, "Courier New", monospace; font-size:9pt; }
</style>
</head>
<body>
<div class="hero">
<div>
<div class="badge">Repo Summary</div>
<h1 class="title">ComfyUI PromptStyler</h1>
<p class="subtitle">Version 3.1.1. Custom ComfyUI node pack that applies curated style templates to a positive prompt and returns conditioning for downstream generation. It is structured around JSON style packs plus lightweight Python runtime code that composes the final prompt text at node execution time.</p>
</div>
<div class="meta">
<div class="meta-row">
<span class="label">Who It’s For</span>
<p class="value">Primary persona: ComfyUI users building image-generation workflows who want reusable, curated prompt styling without hand-writing long style suffixes.</p>
</div>
<div class="meta-row">
<span class="label">Install Shape</span>
<p class="value">Drop the repo into <span class="code">ComfyUI/custom_nodes/ComfyUI_PromptStyler</span> and reload custom nodes.</p>
</div>
</div>
</div>
<div class="grid">
<section>
<h2>What It Does</h2>
<ul>
<li>Exposes a ComfyUI node named <span class="code">PromptStyler: Prompt -&gt; Conditioning (Style Picker)</span>.</li>
<li>Loads style templates from <span class="code">styles/packs/*.json</span> in filename order.</li>
<li>Falls back to <span class="code">styles/styles_v1.json</span> if packs are missing or unusable.</li>
<li>Presents styles as categorized dropdown choices in <span class="code">Category | Name | id</span> format.</li>
<li>Supports direct <span class="code">style_id_override</span> and a <span class="code">template_variant</span> selector.</li>
<li>Builds a deduplicated styled prompt, then tokenizes and encodes it through the connected CLIP text encoder.</li>
<li>Ships maintainer tools to validate, audit, generate, sync, and add style packs.</li>
</ul>
</section>
<section>
<h2>How To Run</h2>
<ul>
<li>Clone or copy this folder into <span class="code">ComfyUI/custom_nodes/ComfyUI_PromptStyler</span>.</li>
<li>Restart ComfyUI or use "Reload custom nodes".</li>
<li>Add <span class="code">CheckpointLoaderSimple</span>, PromptStyler, and <span class="code">KSampler</span> to a workflow.</li>
<li>Wire <span class="code">CLIP -&gt; text_encoder</span>, your prompt text into <span class="code">prompt</span>, and <span class="code">positive -&gt; KSampler.positive</span>.</li>
<li>Optional repo validation: run <span class="code">tools/validate_styles.py</span>; audit with <span class="code">tools/audit_styles.py</span>.</li>
</ul>
</section>
<section class="architecture">
<h2>How It Works</h2>
<ul>
<li><span class="code">__init__.py</span> is the ComfyUI entry point: it reads <span class="code">VERSION</span> and exports node mappings.</li>
<li><span class="code">nodes.py</span> defines the runtime node that accepts the user prompt, style selection inputs, and a ComfyUI <span class="code">CLIP</span> text encoder connection.</li>
<li>The node scans <span class="code">styles/packs/</span>, merges JSON packs in sorted order, or falls back to the legacy single-file library.</li>
<li>Selected style prefix/suffix phrases are combined with the user prompt, normalized, and de-duplicated before encoding.</li>
<li>The encoded result is returned as <span class="code">CONDITIONING</span> plus the exact <span class="code">styled_prompt</span> string for inspection/debugging.</li>
<li><span class="code">style_library.py</span>, tests, and maintainer docs describe broader search/overlay logic, but an advanced node implementation was <strong>Not found in repo</strong> in the current <span class="code">nodes.py</span>.</li>
<li><span class="code">.github/workflows/ci.yml</span> runs version sync, style validation, style audit, and unit tests on pushes and pull requests.</li>
</ul>
<p class="small">If you need external services, hosted APIs, or a packaged installer: <strong>Not found in repo</strong>.</p>
</section>
</div>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

+161 -252
View File
@@ -1,63 +1,43 @@
"""
PromptStyler style pack tool.
This script helps you add more styles without editing python source by hand.
This script helps you add more styles without editing JSON by hand.
It writes (or updates) a JSON pack under styles/packs/, e.g.:
styles/packs/99_user_custom.json
Usage examples:
# List categories that exist (including ones supported by the generator)
C:\\Comfyui\\python_embeded\\python.exe .\\tools\\add_styles.py categories
# Add one style (core -> goes into prefix, details -> goes into suffix)
C:\\Comfyui\\python_embeded\\python.exe .\\tools\\add_styles.py add ^
--name "Anime Style (Soft Shading)" ^
--category "Anime/Manga" ^
--core "soft cel shading, warm palette, gentle gradients" ^
--details "clean line weight, subtle texture, high clarity" ^
--tags "anime, manga, illustration"
# Bulk add from CSV (columns: name,category,core,details,tags)
C:\\Comfyui\\python_embeded\\python.exe .\\tools\\add_styles.py bulk --csv .\\tools\\new_styles.csv
"""
from __future__ import annotations
import argparse
import csv
import importlib.util
import json
import os
import re
import sys
from collections import Counter
from typing import Any, Dict, Iterable, List, Optional, Sequence, Tuple
from typing import Any, Dict, List, Optional, Sequence
ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if ROOT not in sys.path:
sys.path.insert(0, ROOT)
from style_library import (
CATEGORY_BASE_PREFIX,
CATEGORY_BASE_SUFFIX,
LOAD_POLICY_STRICT,
StyleLibraryError,
available_categories,
flux_join_sentences,
load_style_library,
z_join,
)
PACKS_DIR = os.path.join(ROOT, "styles", "packs")
DEFAULT_PACK_PATH = os.path.join(PACKS_DIR, "99_user_custom.json")
def _load_generator_module():
"""
Import tools/generate_style_packs.py as a module so we can reuse:
- CATEGORY_BASE_PREFIX / CATEGORY_BASE_SUFFIX
- z_join() (which de-dupes)
"""
path = os.path.join(ROOT, "tools", "generate_style_packs.py")
spec = importlib.util.spec_from_file_location("promptstyler_generate_style_packs", path)
if spec is None or spec.loader is None:
raise RuntimeError(f"Unable to import generator module: {path}")
mod = importlib.util.module_from_spec(spec)
# dataclasses (on some Python versions) expects the module to already exist in sys.modules
# when evaluating annotations. Insert before exec_module to avoid NoneType errors.
sys.modules[spec.name] = mod
spec.loader.exec_module(mod)
return mod
def _slugify(name: str) -> str:
base = "".join(ch.lower() if ch.isalnum() else "_" for ch in (name or "")).strip("_")
while "__" in base:
@@ -66,12 +46,6 @@ def _slugify(name: str) -> str:
def _normalize_user_subcategory(value: str) -> str:
"""
Normalize a user subcategory string for "User/<subcategory>" categories:
- keep letters/numbers/spaces
- replace everything else with spaces
- collapse whitespace
"""
cleaned = "".join(ch if (ch.isalnum() or ch.isspace()) else " " for ch in (value or ""))
cleaned = " ".join(cleaned.split()).strip()
return cleaned or "Custom"
@@ -80,137 +54,52 @@ def _normalize_user_subcategory(value: str) -> str:
def _split_csv_list(value: Optional[str]) -> List[str]:
if not value:
return []
return [p.strip() for p in value.split(",") if p.strip()]
return [part.strip() for part in value.split(",") if part.strip()]
def _read_json(path: str) -> Dict[str, Any]:
with open(path, "r", encoding="utf-8") as f:
return json.load(f) or {}
with open(path, "r", encoding="utf-8") as handle:
return json.load(handle) or {}
def _write_json(path: str, data: Dict[str, Any]) -> None:
os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, "w", encoding="utf-8") as f:
json.dump(data, f, indent=2, ensure_ascii=True)
f.write("\n")
with open(path, "w", encoding="utf-8") as handle:
json.dump(data, handle, indent=2, ensure_ascii=True)
handle.write("\n")
def _iter_pack_paths() -> Iterable[str]:
if not os.path.isdir(PACKS_DIR):
return []
for name in sorted(os.listdir(PACKS_DIR)):
if name.lower().endswith(".json"):
yield os.path.join(PACKS_DIR, name)
def _load_library():
return load_style_library(load_policy=LOAD_POLICY_STRICT)
def _load_all_styles() -> List[Dict[str, Any]]:
styles: List[Dict[str, Any]] = []
for path in _iter_pack_paths():
try:
data = _read_json(path)
except Exception:
# If a pack is broken, keep going; validate_styles.py will catch it.
continue
styles.extend(data.get("styles", []) or [])
return styles
def _existing_identity_sets() -> tuple[set[str], set[str]]:
library = _load_library()
return ({style.id for style in library.styles}, {style.name for style in library.styles})
def _ensure_unique_id(style_id: str, existing_ids: set) -> str:
def _ensure_unique_id(style_id: str, existing_ids: set[str]) -> str:
if style_id not in existing_ids:
return style_id
i = 2
while True:
cand = f"{style_id}_{i}"
if cand not in existing_ids:
return cand
candidate = f"{style_id}_{i}"
if candidate not in existing_ids:
return candidate
i += 1
def _ensure_unique_name(name: str, existing_names: set) -> str:
def _ensure_unique_name(name: str, existing_names: set[str]) -> str:
if name not in existing_names:
return name
i = 2
while True:
cand = f"{name} ({i})"
if cand not in existing_names:
return cand
candidate = f"{name} ({i})"
if candidate not in existing_names:
return candidate
i += 1
def _available_categories(existing_styles: Sequence[Dict[str, Any]], gen_mod) -> List[str]:
cats = set()
for s in existing_styles:
c = s.get("category")
if isinstance(c, str) and c.strip():
cats.add(c.strip())
# Also include categories we have base templates for.
cats.update((gen_mod.CATEGORY_BASE_PREFIX or {}).keys())
cats.update((gen_mod.CATEGORY_BASE_SUFFIX or {}).keys())
return sorted(cats, key=lambda x: x.casefold())
def _make_style_entry(
gen_mod,
*,
name: str,
category: str,
core: Sequence[str],
details: Sequence[str],
tags: Sequence[str],
style_id: Optional[str],
id_prefix: str,
flux_suffix: Optional[str] = None,
existing_ids: Optional[set] = None,
existing_names: Optional[set] = None,
) -> Dict[str, Any]:
if existing_ids is None or existing_names is None:
all_styles = _load_all_styles()
existing_ids = {str(s.get("id")) for s in all_styles if s.get("id") is not None}
existing_names = {str(s.get("name")) for s in all_styles if s.get("name") is not None}
base_id = style_id.strip() if style_id else f"{id_prefix}_{_slugify(name)}"
final_id = _ensure_unique_id(base_id, existing_ids)
final_name = _ensure_unique_name(name.strip(), existing_names)
existing_ids.add(final_id)
existing_names.add(final_name)
base_prefix = tuple((gen_mod.CATEGORY_BASE_PREFIX or {}).get(category, ()))
base_suffix = tuple((gen_mod.CATEGORY_BASE_SUFFIX or {}).get(category, ()))
prefix = gen_mod.z_join(tuple(base_prefix) + tuple(core))
suffix = gen_mod.z_join(tuple(details) + tuple(base_suffix))
tags2 = [t.strip() for t in tags if (t or "").strip()]
if not tags2:
tags2 = ["user"]
if flux_suffix is None:
core_hint = gen_mod.z_join(core[:12]) if core else ""
detail_hint = gen_mod.z_join(details[:12]) if details else ""
parts = [f"Style: {final_name}"]
if core_hint:
parts.append(f"Core cues: {core_hint}")
if detail_hint:
parts.append(f"Details: {detail_hint}")
parts.append("Lighting: coherent and intentional")
parts.append("Mood: consistent with the user prompt")
flux_suffix2 = gen_mod.flux_join_sentences(parts)
else:
flux_suffix2 = str(flux_suffix or "").strip()
if flux_suffix2 and not re.search(r"[.!?]$", flux_suffix2):
flux_suffix2 = flux_suffix2 + "."
entry: Dict[str, Any] = {
"id": final_id,
"name": final_name,
"category": category,
"default": {"prefix": prefix, "suffix": suffix},
"models": {"flux_2_klein": {"prefix": "", "suffix": flux_suffix2}},
"tags": tags2,
}
return entry
def _load_or_init_pack(path: str) -> Dict[str, Any]:
if os.path.isfile(path):
data = _read_json(path)
@@ -224,41 +113,109 @@ def _load_or_init_pack(path: str) -> Dict[str, Any]:
return {"version": 1, "styles": []}
def cmd_categories(args) -> int:
gen_mod = _load_generator_module()
styles = _load_all_styles()
cats = _available_categories(styles, gen_mod)
counts = Counter(s.get("category", "Uncategorized") for s in styles)
for c in cats:
print(f"{c} ({counts.get(c, 0)})")
def _make_style_entry(
*,
name: str,
category: str,
core: Sequence[str],
details: Sequence[str],
tags: Sequence[str],
style_id: Optional[str],
id_prefix: str,
flux_suffix: Optional[str] = None,
existing_ids: Optional[set[str]] = None,
existing_names: Optional[set[str]] = None,
) -> Dict[str, Any]:
if existing_ids is None or existing_names is None:
existing_ids, existing_names = _existing_identity_sets()
base_id = style_id.strip() if style_id else f"{id_prefix}_{_slugify(name)}"
final_id = _ensure_unique_id(base_id, existing_ids)
final_name = _ensure_unique_name(name.strip(), existing_names)
existing_ids.add(final_id)
existing_names.add(final_name)
prefix = z_join(tuple(CATEGORY_BASE_PREFIX.get(category, ())) + tuple(core))
suffix = z_join(tuple(details) + tuple(CATEGORY_BASE_SUFFIX.get(category, ())))
tags2 = [tag.strip() for tag in tags if (tag or "").strip()]
if not tags2:
tags2 = ["user"]
if flux_suffix is None:
parts = [f"Style: {final_name}"]
core_hint = z_join(core[:12]) if core else ""
detail_hint = z_join(details[:12]) if details else ""
if core_hint:
parts.append(f"Core cues: {core_hint}")
if detail_hint:
parts.append(f"Details: {detail_hint}")
parts.append("Lighting: coherent and intentional")
parts.append("Mood: consistent with the user prompt")
flux_suffix2 = flux_join_sentences(parts)
else:
flux_suffix2 = str(flux_suffix or "").strip()
if flux_suffix2 and not re.search(r"[.!?]$", flux_suffix2):
flux_suffix2 += "."
return {
"id": final_id,
"name": final_name,
"category": category,
"default": {"prefix": prefix, "suffix": suffix},
"models": {"flux_2_klein": {"prefix": "", "suffix": flux_suffix2}},
"tags": tags2,
}
def _read_bulk_csv(path: str) -> List[Dict[str, str]]:
rows: List[Dict[str, str]] = []
with open(path, "r", encoding="utf-8-sig", newline="") as handle:
reader = csv.DictReader(handle)
for row in reader:
if not row:
continue
rows.append({key.strip(): (value or "").strip() for key, value in row.items() if key})
return rows
def _read_bulk_json(path: str) -> List[Dict[str, Any]]:
data = _read_json(path)
if isinstance(data, dict) and "styles" in data:
data = data["styles"]
if not isinstance(data, list):
raise ValueError("JSON bulk file must be a list (or an object with a 'styles' list).")
return [item for item in data if isinstance(item, dict)]
def cmd_categories(_args) -> int:
library = _load_library()
counts = Counter(style.category or "Uncategorized" for style in library.styles)
for category in available_categories(library.styles):
print(f"{category} ({counts.get(category, 0)})")
return 0
def cmd_stats(args) -> int:
styles = _load_all_styles()
counts = Counter(s.get("category", "Uncategorized") for s in styles)
def cmd_stats(_args) -> int:
library = _load_library()
counts = Counter(style.category or "Uncategorized" for style in library.styles)
total = sum(counts.values())
print(f"styles {total}")
for c, n in counts.most_common():
print(f"{n:4d} {c}")
for category, count in counts.most_common():
print(f"{count:4d} {category}")
return 0
def cmd_add(args) -> int:
gen_mod = _load_generator_module()
pack_path = os.path.abspath(args.pack)
pack = _load_or_init_pack(pack_path)
all_styles = _load_all_styles()
existing_ids = {str(s.get("id")) for s in all_styles if s.get("id") is not None}
existing_names = {str(s.get("name")) for s in all_styles if s.get("name") is not None}
existing_ids, existing_names = _existing_identity_sets()
core = _split_csv_list(args.core) + _split_csv_list(args.prefix_extra)
details = _split_csv_list(args.details) + _split_csv_list(args.suffix_extra)
tags = _split_csv_list(args.tags)
entry = _make_style_entry(
gen_mod,
name=args.name,
category=args.category,
core=core,
@@ -273,7 +230,11 @@ def cmd_add(args) -> int:
pack["styles"].append(entry)
pack["styles"] = sorted(
pack["styles"],
key=lambda s: (str(s.get("category", "")).casefold(), str(s.get("name", "")).casefold(), str(s.get("id", ""))),
key=lambda style: (
str(style.get("category", "")).casefold(),
str(style.get("name", "")).casefold(),
str(style.get("id", "")),
),
)
_write_json(pack_path, pack)
@@ -282,39 +243,10 @@ def cmd_add(args) -> int:
return 0
def _read_bulk_csv(path: str) -> List[Dict[str, str]]:
rows: List[Dict[str, str]] = []
with open(path, "r", encoding="utf-8-sig", newline="") as f:
reader = csv.DictReader(f)
for row in reader:
if not row:
continue
rows.append({k.strip(): (v or "").strip() for k, v in row.items() if k})
return rows
def _read_bulk_json(path: str) -> List[Dict[str, Any]]:
data = _read_json(path)
if isinstance(data, dict) and "styles" in data:
data = data["styles"]
if not isinstance(data, list):
raise ValueError("JSON bulk file must be a list (or an object with a 'styles' list).")
out: List[Dict[str, Any]] = []
for item in data:
if not isinstance(item, dict):
continue
out.append(item)
return out
def cmd_bulk(args) -> int:
gen_mod = _load_generator_module()
pack_path = os.path.abspath(args.pack)
pack = _load_or_init_pack(pack_path)
all_styles = _load_all_styles()
existing_ids = {str(s.get("id")) for s in all_styles if s.get("id") is not None}
existing_names = {str(s.get("name")) for s in all_styles if s.get("name") is not None}
existing_ids, existing_names = _existing_identity_sets()
if args.csv:
items = _read_bulk_csv(os.path.abspath(args.csv))
@@ -330,22 +262,15 @@ def cmd_bulk(args) -> int:
if not name or not category:
continue
core = _split_csv_list(item.get("core")) + _split_csv_list(item.get("prefix_extra"))
details = _split_csv_list(item.get("details")) + _split_csv_list(item.get("suffix_extra"))
tags = _split_csv_list(item.get("tags"))
style_id = (item.get("id") or "").strip() or None
flux_suffix = (item.get("flux") or item.get("flux_suffix") or "").strip() or None
entry = _make_style_entry(
gen_mod,
name=name,
category=category,
core=core,
details=details,
tags=tags,
style_id=style_id,
core=_split_csv_list(item.get("core")) + _split_csv_list(item.get("prefix_extra")),
details=_split_csv_list(item.get("details")) + _split_csv_list(item.get("suffix_extra")),
tags=_split_csv_list(item.get("tags")),
style_id=(item.get("id") or "").strip() or None,
id_prefix=args.id_prefix,
flux_suffix=flux_suffix,
flux_suffix=(item.get("flux") or item.get("flux_suffix") or "").strip() or None,
existing_ids=existing_ids,
existing_names=existing_names,
)
@@ -354,7 +279,11 @@ def cmd_bulk(args) -> int:
pack["styles"] = sorted(
pack["styles"],
key=lambda s: (str(s.get("category", "")).casefold(), str(s.get("name", "")).casefold(), str(s.get("id", ""))),
key=lambda style: (
str(style.get("category", "")).casefold(),
str(style.get("name", "")).casefold(),
str(style.get("id", "")),
),
)
_write_json(pack_path, pack)
print(f"Added {added} styles to {pack_path}")
@@ -364,55 +293,35 @@ def cmd_bulk(args) -> int:
def _prompt_line(label: str, *, default: Optional[str] = None) -> str:
if default is None:
return input(f"{label}: ").strip()
v = input(f"{label} [{default}]: ").strip()
return v if v else default
value = input(f"{label} [{default}]: ").strip()
return value if value else default
def cmd_wizard(args) -> int:
"""
Interactive style creation helper.
Writes (or updates) a JSON pack under styles/packs/, defaulting to:
styles/packs/99_user_custom.json
User styles are always categorized under: User/<subcategory>
"""
gen_mod = _load_generator_module()
pack_path = os.path.abspath(args.pack)
pack = _load_or_init_pack(pack_path)
all_styles = _load_all_styles()
existing_ids = {str(s.get("id")) for s in all_styles if s.get("id") is not None}
existing_names = {str(s.get("name")) for s in all_styles if s.get("name") is not None}
existing_ids, existing_names = _existing_identity_sets()
print("PromptStyler: User Style Wizard")
print("Tip: use comma-separated phrases (node splits default templates on ', ').")
print("")
subcat_raw = _prompt_line("User subcategory (creates category User/<subcategory>)", default="Custom")
subcat = _normalize_user_subcategory(subcat_raw)
subcat = _normalize_user_subcategory(
_prompt_line("User subcategory (creates category User/<subcategory>)", default="Custom")
)
category = f"User/{subcat}"
name = _prompt_line("Style name")
if not name.strip():
print("ERROR: style name is required")
return 2
core_raw = _prompt_line("Core descriptors (comma-separated)", default="")
details_raw = _prompt_line("Detail descriptors (comma-separated)", default="")
tags_raw = _prompt_line("Tags (comma-separated, optional)", default="")
core = _split_csv_list(core_raw)
details = _split_csv_list(details_raw)
tags = _split_csv_list(tags_raw)
# Always tag user styles for easier filtering/searching.
core = _split_csv_list(_prompt_line("Core descriptors (comma-separated)", default=""))
details = _split_csv_list(_prompt_line("Detail descriptors (comma-separated)", default=""))
tags = _split_csv_list(_prompt_line("Tags (comma-separated, optional)", default=""))
tags.extend(["user", _slugify(subcat)])
flux = _prompt_line("Flux suffix (optional; blank to auto-generate)", default="").strip() or None
flux_suffix = _prompt_line("Flux suffix (optional; blank to auto-generate)", default="").strip() or None
entry = _make_style_entry(
gen_mod,
name=name,
category=category,
core=core,
@@ -420,7 +329,7 @@ def cmd_wizard(args) -> int:
tags=tags,
style_id=None,
id_prefix=args.id_prefix,
flux_suffix=flux,
flux_suffix=flux_suffix,
existing_ids=existing_ids,
existing_names=existing_names,
)
@@ -444,7 +353,11 @@ def cmd_wizard(args) -> int:
pack["styles"].append(entry)
pack["styles"] = sorted(
pack["styles"],
key=lambda s: (str(s.get("category", "")).casefold(), str(s.get("name", "")).casefold(), str(s.get("id", ""))),
key=lambda style: (
str(style.get("category", "")).casefold(),
str(style.get("name", "")).casefold(),
str(style.get("id", "")),
),
)
_write_json(pack_path, pack)
@@ -471,16 +384,8 @@ def main(argv: Optional[List[str]] = None) -> int:
p_add.add_argument("--id", default=None, help="Optional explicit id (must be unique)")
p_add.add_argument("--name", required=True, help="Style display name")
p_add.add_argument("--category", required=True, help="Style category (as shown in the dropdown)")
p_add.add_argument(
"--core",
default="",
help="Comma-separated core descriptors (added to prefix after category base)",
)
p_add.add_argument(
"--details",
default="",
help="Comma-separated detail descriptors (added to suffix before category base)",
)
p_add.add_argument("--core", default="", help="Comma-separated core descriptors")
p_add.add_argument("--details", default="", help="Comma-separated detail descriptors")
p_add.add_argument("--prefix-extra", default="", help="Alias for --core")
p_add.add_argument("--suffix-extra", default="", help="Alias for --details")
p_add.add_argument("--tags", default="", help="Comma-separated tags")
@@ -499,7 +404,11 @@ def main(argv: Optional[List[str]] = None) -> int:
p_wizard.set_defaults(func=cmd_wizard)
args = parser.parse_args(argv)
return int(args.func(args))
try:
return int(args.func(args))
except StyleLibraryError as exc:
print(f"ERROR: {exc}")
return 2
if __name__ == "__main__":
+65 -68
View File
@@ -1,97 +1,91 @@
import json
import os
import re
import sys
from collections import Counter
from typing import Any, Dict, Iterable, List, Tuple
from typing import List, Tuple
ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
PACKS_DIR = os.path.join(ROOT, "styles", "packs")
if ROOT not in sys.path:
sys.path.insert(0, ROOT)
from style_library import LOAD_POLICY_STRICT, StyleLibraryError, iter_pack_paths, load_style_library
def _iter_pack_paths() -> Iterable[str]:
if not os.path.isdir(PACKS_DIR):
return []
for name in sorted(os.listdir(PACKS_DIR)):
if name.lower().endswith(".json"):
yield os.path.join(PACKS_DIR, name)
def _load_all_styles() -> Tuple[List[Dict[str, Any]], List[str]]:
styles: List[Dict[str, Any]] = []
bad_packs: List[str] = []
for path in _iter_pack_paths():
try:
with open(path, "r", encoding="utf-8") as f:
data = json.load(f) or {}
except Exception:
bad_packs.append(path)
continue
styles.extend(data.get("styles", []) or [])
return styles, bad_packs
ID_RE = re.compile(r"^[a-z0-9_]+$")
COMMA_RE = re.compile(r",(?!\s)")
BANNED_GEAR_TERMS = (
"softbox",
"soft box",
"strobe",
"speedlight",
"beauty dish",
"octabox",
"umbrella",
"ring light",
"ringlight",
"on-camera",
"on camera",
"tripod shot",
)
BANNED_GEAR_RES = [(term, re.compile(re.escape(term), re.IGNORECASE)) for term in BANNED_GEAR_TERMS]
def main() -> int:
styles, bad_packs = _load_all_styles()
try:
library = load_style_library(load_policy=LOAD_POLICY_STRICT)
except StyleLibraryError as exc:
print(f"ERROR: {exc}")
return 2
if bad_packs:
print("WARN: unable to read some packs:")
for p in bad_packs:
print(f" - {p}")
ids = [str(s.get("id", "")) for s in styles]
names = [str(s.get("name", "")) for s in styles]
cats = [str(s.get("category", "Uncategorized")) for s in styles]
styles = list(library.styles)
ids = [style.id for style in styles]
names = [style.name for style in styles]
categories = [style.category or "Uncategorized" for style in styles]
print(f"styles: {len(styles)}")
print(f"packs: {len(list(_iter_pack_paths()))}")
print(f"packs: {len(iter_pack_paths())}")
print("categories:")
for c, n in Counter(cats).most_common():
print(f" {n:4d} {c}")
for category, count in Counter(categories).most_common():
print(f" {count:4d} {category}")
warnings: List[str] = []
id_re = re.compile(r"^[a-z0-9_]+$")
bad_ids = [sid for sid in ids if sid and not id_re.match(sid)]
bad_ids = [style_id for style_id in ids if style_id and not ID_RE.match(style_id)]
if bad_ids:
warnings.append(f"bad_ids: {len(bad_ids)} (expected snake_case [a-z0-9_])")
empty_prefix = 0
empty_suffix = 0
missing_default = 0
missing_tags = 0
missing_flux_2_klein = 0
missing_variant = 0
comma_without_space: List[Tuple[str, str]] = []
comma_re = re.compile(r",(?!\s)")
banned_gear_hits: List[Tuple[str, str, str]] = []
for s in styles:
sid = str(s.get("id", ""))
default = s.get("default", None)
if not isinstance(default, dict):
missing_default += 1
continue
prefix = str(default.get("prefix", "") or "")
suffix = str(default.get("suffix", "") or "")
for style in styles:
prefix = style.prefix or ""
suffix = style.suffix or ""
if not prefix.strip():
empty_prefix += 1
if not suffix.strip():
empty_suffix += 1
for field, text in (("prefix", prefix), ("suffix", suffix)):
if comma_re.search(text):
comma_without_space.append((sid, field))
if COMMA_RE.search(text):
comma_without_space.append((style.id, field))
tags = s.get("tags", None)
if not isinstance(tags, list) or not any(str(t).strip() for t in tags):
variant_prefix, variant_suffix = style.variants.get("flux_2_klein", ("", ""))
if "flux_2_klein" not in style.variants:
missing_variant += 1
for field, text in (("prefix", prefix), ("suffix", suffix), ("flux_2_klein.prefix", variant_prefix), ("flux_2_klein.suffix", variant_suffix)):
if not text:
continue
for term, pattern in BANNED_GEAR_RES:
if pattern.search(text):
banned_gear_hits.append((style.id, field, term))
if not style.tags:
missing_tags += 1
models = s.get("models", {})
if not (isinstance(models, dict) and "flux_2_klein" in models):
missing_flux_2_klein += 1
if missing_default:
warnings.append(f"missing_or_bad_default: {missing_default}")
if empty_prefix:
warnings.append(f"empty_prefix: {empty_prefix}")
if empty_suffix:
@@ -100,19 +94,23 @@ def main() -> int:
warnings.append(f"comma_without_space: {len(comma_without_space)} (node splits on ', ')")
if missing_tags:
warnings.append(f"missing_tags: {missing_tags}")
if missing_flux_2_klein:
warnings.append(f"missing_models.flux_2_klein: {missing_flux_2_klein}")
# Quick uniqueness sanity (validate_styles.py is the source of truth).
if missing_variant:
warnings.append(f"missing_models.flux_2_klein: {missing_variant}")
if len(set(ids)) != len(ids):
warnings.append("duplicate_ids: detected")
if len(set(names)) != len(names):
warnings.append("duplicate_names: detected")
if banned_gear_hits:
warnings.append(f"banned_gear_terms: {len({style_id for style_id, _field, _term in banned_gear_hits})} styles")
if warnings:
print("warnings:")
for w in warnings:
print(f" - {w}")
for warning in warnings:
print(f" - {warning}")
if banned_gear_hits:
print("banned gear term examples:")
for style_id, field, term in banned_gear_hits[:20]:
print(f" - {style_id} ({field}): {term}")
else:
print("warnings: none")
@@ -121,4 +119,3 @@ def main() -> int:
if __name__ == "__main__":
raise SystemExit(main())
+76 -39
View File
@@ -9,11 +9,17 @@ from __future__ import annotations
import json
import os
import sys
from dataclasses import dataclass
from typing import Dict, Iterable, List, Optional, Sequence
ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if ROOT not in sys.path:
sys.path.insert(0, ROOT)
from style_library import write_legacy_snapshot
PACKS_DIR = os.path.join(ROOT, "styles", "packs")
@@ -39,8 +45,8 @@ CATEGORY_BASE_PREFIX = {
),
"Product": (
"commercial product photography",
"studio strobe lighting",
"seamless background",
"controlled studio lighting",
"minimal background",
"controlled reflections",
"clean composition",
),
@@ -55,7 +61,7 @@ CATEGORY_BASE_PREFIX = {
"architectural photography",
"straight verticals",
"clean geometry",
"wide-angle lens",
"wide field of view",
"realistic materials",
"balanced natural light",
),
@@ -215,6 +221,15 @@ def flux_join_sentences(parts: Sequence[str]) -> str:
def to_style_dict(s: StyleSpec) -> Dict:
base_prefix = CATEGORY_BASE_PREFIX.get(s.category, ())
base_suffix = CATEGORY_BASE_SUFFIX.get(s.category, ())
flux_sentences = list(s.flux_suffix_sentences)
# Reinforce each style with explicit cues (keep it style-only; avoid gear words).
z_prefix_hint = z_join(tuple(s.z_prefix)[:8])
z_suffix_hint = z_join(tuple(s.z_suffix)[:8])
if z_prefix_hint:
flux_sentences.append(f"Key cues: {z_prefix_hint}")
if z_suffix_hint:
flux_sentences.append(f"Finish cues: {z_suffix_hint}")
flux_sentences.append("Instruction: preserve the user prompt subject and add only stylistic cues")
d = {
"id": s.id,
"name": s.name,
@@ -226,7 +241,7 @@ def to_style_dict(s: StyleSpec) -> Dict:
"models": {
# For FLUX 2 Klein, we keep style annotations at the end so the user's prompt
# can still lead with the subject/action (word order matters).
"flux_2_klein": {"prefix": "", "suffix": flux_join_sentences(s.flux_suffix_sentences)},
"flux_2_klein": {"prefix": "", "suffix": flux_join_sentences(flux_sentences)},
},
"tags": list(s.tags),
}
@@ -263,14 +278,31 @@ def _uniq(specs: List[StyleSpec]) -> List[StyleSpec]:
def build() -> None:
# Shared, reusable FLUX lighting phrases (keep them positive and concrete).
flux_light_soft_window = (
"Lighting: soft, diffused natural light from a large window camera-left, gentle shadows"
"Lighting: soft, diffused key light from viewer-left, gentle shadows"
)
flux_light_dramatic_side = "Lighting: dramatic side lighting with deep shadows and bright highlights"
flux_light_golden_back = "Lighting: golden hour backlight with subtle lens flare and warm rim light"
flux_light_golden_back = "Lighting: golden hour backlight with warm rim light and gentle bloom"
flux_light_overcast = "Lighting: overcast daylight, even illumination, soft shadow transitions"
flux_light_studio_softbox = "Lighting: studio strobe with a large softbox, clean specular highlights"
flux_light_studio_softbox = "Lighting: large diffused key light with clean specular highlights"
flux_light_neon = "Lighting: mixed neon and streetlight sources, colored rim light, reflective surfaces"
def _flux_style_label(name: str) -> str:
"""
Convert UI-facing style names into gear-neutral prose for Flux guidance.
Goal: keep the style intent, but avoid explicit photo/cinema equipment words
that can accidentally bias the model into adding objects/props.
"""
n = (name or "").strip().casefold()
overrides = {
"on-camera flash": "direct flash snapshot",
"ring flash portrait": "on-axis circular flash portrait",
"tilt-shift miniature": "miniature diorama perspective effect",
"aerial drone photo": "aerial top-down photograph",
}
return overrides.get(n, n)
# A small seed set that we can scale via curated variations.
cinema: List[StyleSpec] = []
photo: List[StyleSpec] = []
@@ -309,7 +341,7 @@ def build() -> None:
name="Cinematic Anamorphic",
category="Cinema",
tags=("cinematic", "film", "anamorphic"),
z_prefix=("cinematic", "anamorphic lens", "shallow depth of field", "dramatic lighting"),
z_prefix=("cinematic", "anamorphic look", "shallow depth of field", "dramatic lighting"),
z_suffix=("film grain", "subtle halation", "rich contrast", "color graded"),
flux_suffix_sentences=(
"Style: cinematic anamorphic film still, shallow depth of field",
@@ -325,9 +357,9 @@ def build() -> None:
("Neo Noir", ("neo-noir", "moody contrast", "deep shadows", "night scene"), flux_light_neon),
("Gritty Crime Thriller", ("gritty crime thriller", "handheld feel", "muted colors"), flux_light_dramatic_side),
("Dreamy Romance", ("dreamy cinematic", "soft focus", "warm tones"), flux_light_golden_back),
("Sci-Fi Neon", ("sci-fi cinematic", "neon glow", "wet streets", "atmospheric haze"), flux_light_neon),
("Sci-Fi Neon", ("sci-fi cinematic", "neon glow", "wet reflective surfaces", "atmospheric haze"), flux_light_neon),
("Epic Fantasy", ("epic cinematic", "volumetric light rays", "dramatic scale"), "Lighting: god rays through haze, high dynamic range"),
("Documentary Handheld", ("documentary", "handheld camera", "natural light", "authentic moments"), flux_light_overcast),
("Documentary Handheld", ("documentary", "handheld framing", "natural light", "authentic moments"), flux_light_overcast),
("Vintage 16mm", ("16mm film look", "visible grain", "soft contrast"), "Lighting: practical tungsten lamps, warm falloff"),
("Vintage 35mm", ("35mm film look", "gentle grain", "natural color"), flux_light_soft_window),
("IMAX Blockbuster", ("large format cinema", "crisp detail", "dramatic composition"), "Lighting: high-impact key light with controlled fill"),
@@ -361,13 +393,13 @@ def build() -> None:
("Rainy Night Alley", ("cinematic night scene", "rainy street", "wet reflections"), flux_light_neon),
("Bright Day Comedy", ("bright cinematic", "clean colors", "lighthearted tone"), "Lighting: bright daylight with soft fill, cheerful contrast"),
("Mystery Thriller", ("mystery thriller", "moody", "subtle haze"), flux_light_dramatic_side),
("High-Speed Action", ("action blockbuster", "dynamic camera", "sharp highlights"), "Lighting: high-impact lighting, crisp highlights, controlled motion blur"),
("High-Speed Action", ("action blockbuster", "dynamic framing", "sharp highlights"), "Lighting: high-impact lighting, crisp highlights, controlled motion blur"),
("Courtroom Drama", ("dramatic courtroom scene", "serious tone", "clean framing"), flux_light_soft_window),
("Coming-of-Age", ("warm cinematic", "naturalistic", "gentle grain"), flux_light_golden_back),
("Slow Cinema", ("slow cinema", "minimalist framing", "quiet atmosphere"), flux_light_overcast),
("Surreal Dream Sequence", ("surreal cinematic", "soft diffusion", "dreamlike haze"), "Lighting: ethereal soft light with gentle bloom and haze"),
("War Documentary", ("war documentary", "gritty realism", "handheld"), flux_light_overcast),
("Sports Broadcast Cinematic", ("sports cinematic", "telephoto compression", "fast shutter feel"), "Lighting: stadium lights, crisp highlights, dynamic contrast"),
("Sports Broadcast Cinematic", ("sports cinematic", "compressed perspective", "fast shutter feel"), "Lighting: stadium lights, crisp highlights, dynamic contrast"),
("Retro Futurism", ("retro futurism", "clean shapes", "neon accents"), flux_light_neon),
("Urban Nightscape", ("urban night cinematic", "city lights", "bokeh"), flux_light_neon),
("Snowstorm Survival", ("cinematic survival", "snowstorm", "cold palette"), "Lighting: cold overcast light with blowing snow and low visibility"),
@@ -450,10 +482,10 @@ def build() -> None:
name="Clean Product Photo",
category="Product",
tags=("product", "studio", "commercial"),
z_prefix=("studio product photography", "clean background", "softbox lighting", "sharp focus"),
z_prefix=("studio product photography", "clean background", "diffused studio lighting", "sharp focus"),
z_suffix=("high detail", "minimal reflections", "crisp edges"),
flux_suffix_sentences=(
"Style: professional studio product photograph on a clean seamless background",
"Style: professional studio product photograph on a clean minimal background",
flux_light_studio_softbox,
"Composition: centered, clean silhouette, crisp edges",
),
@@ -461,8 +493,8 @@ def build() -> None:
)
portrait_light_setups = [
("Rembrandt Portrait", ("portrait photography", "Rembrandt lighting", "85mm lens", "shallow depth of field"), flux_light_soft_window),
("Butterfly Lighting Portrait", ("portrait photography", "butterfly lighting", "beauty dish", "clean catchlights"), "Lighting: beauty dish overhead, soft fill, clean shadows under cheekbones"),
("Rembrandt Portrait", ("portrait photography", "Rembrandt lighting", "portrait compression", "shallow depth of field"), flux_light_soft_window),
("Butterfly Lighting Portrait", ("portrait photography", "butterfly lighting", "centered key light", "clean catchlights"), "Lighting: centered overhead key light with soft fill, clean shadows under cheekbones"),
("Split Lighting Portrait", ("portrait photography", "split lighting", "high contrast"), flux_light_dramatic_side),
("High Key Studio Portrait", ("high key portrait", "bright background", "soft shadows"), "Lighting: broad soft key, high fill ratio, bright seamless background"),
("Low Key Studio Portrait", ("low key portrait", "deep shadows", "dramatic contrast"), flux_light_dramatic_side),
@@ -470,7 +502,7 @@ def build() -> None:
("Street Portrait", ("street portrait", "candid", "natural light"), flux_light_overcast),
("Editorial Portrait", ("editorial portrait", "stylized lighting", "clean composition"), flux_light_studio_softbox),
("Rim Light Portrait", ("portrait photography", "rim light", "dark background", "subject separation"), "Lighting: strong rim light from behind, soft key, deep background"),
("Broad Lighting Portrait", ("portrait photography", "broad lighting", "soft shadows"), "Lighting: key light on the camera side of the face, soft fill"),
("Broad Lighting Portrait", ("portrait photography", "broad lighting", "soft shadows"), "Lighting: key light on the near side of the face, soft fill"),
("Short Lighting Portrait", ("portrait photography", "short lighting", "sculpted face"), "Lighting: key light on the far side of the face, controlled fill"),
]
for name, ztags, flux_light in portrait_light_setups:
@@ -495,30 +527,30 @@ def build() -> None:
("Travel Documentary", ("travel documentary photography", "authentic details", "natural color"), flux_light_soft_window),
("Food Photography", ("food photography", "shallow depth of field", "appetizing lighting"), flux_light_soft_window),
("Macro Photography", ("macro photography", "extreme close-up", "micro texture", "shallow depth of field"), "Lighting: diffused macro lighting, controlled reflections, crisp microtexture"),
("Wildlife Photography", ("wildlife photography", "telephoto lens", "natural habitat"), flux_light_golden_back),
("Wildlife Photography", ("wildlife photography", "compressed perspective", "natural habitat"), flux_light_golden_back),
("Architecture Photography", ("architecture photography", "straight lines", "clean geometry"), flux_light_overcast),
("Interior Photography", ("interior photography", "wide angle lens", "natural window light"), flux_light_soft_window),
("Aerial Drone Photo", ("aerial drone photography", "top-down view", "sharp detail"), "Lighting: clear daylight with defined but soft shadows"),
("Long Exposure", ("long exposure photography", "motion blur trails", "tripod shot"), "Lighting: dusk ambient with long exposure light trails"),
("Interior Photography", ("interior photography", "wide field of view", "soft natural light"), flux_light_soft_window),
("Aerial Drone Photo", ("aerial photography", "top-down view", "sharp detail"), "Lighting: clear daylight with defined but soft shadows"),
("Long Exposure", ("long exposure photography", "motion blur trails", "locked-off frame"), "Lighting: dusk ambient with long exposure light trails"),
("Black and White", ("black and white photography", "strong tonal range", "fine grain"), flux_light_dramatic_side),
("Infrared", ("infrared photography", "surreal foliage tones", "high contrast"), "Lighting: bright midday sun, strong infrared contrast"),
("Tilt-Shift Miniature", ("tilt-shift photography", "miniature effect", "selective focus"), "Lighting: daylight with crisp miniature-scale shadows"),
("Tilt-Shift Miniature", ("miniature perspective effect", "selective focus", "diorama-like scale"), "Lighting: daylight with crisp miniature-scale shadows"),
("Night Street Photo", ("night street photography", "city lights", "bokeh", "wet reflections"), flux_light_neon),
("Concert Photography", ("concert photography", "stage lights", "dynamic contrast"), "Lighting: dramatic stage lighting with colored highlights"),
("Automotive Photo", ("automotive photography", "clean reflections", "sharp lines"), "Lighting: controlled reflections, crisp highlights, studio or golden hour"),
("Wedding Photo", ("wedding photography", "soft romantic light", "candid moments"), flux_light_golden_back),
("Still Life Photo", ("still life photography", "careful composition", "soft shadows"), flux_light_soft_window),
("Flat Lay", ("flat lay photography", "top-down", "organized composition"), "Lighting: soft overhead diffused light, minimal harsh shadows"),
("On-Camera Flash", ("direct flash photography", "hard shadows", "party snapshot"), "Lighting: on-camera flash, hard shadows, punchy contrast"),
("Ring Flash Portrait", ("ring flash portrait", "crisp catchlight", "high clarity"), "Lighting: ring flash with crisp shadows and clean contrast"),
("On-Camera Flash", ("direct flash photography", "hard shadows", "party snapshot"), "Lighting: direct on-axis flash, hard shadows, punchy contrast"),
("Ring Flash Portrait", ("on-axis circular flash portrait", "crisp catchlight", "high clarity"), "Lighting: on-axis circular flash with crisp shadows and clean contrast"),
("Cinematic Backlight", ("backlit photography", "rim light", "atmospheric haze"), flux_light_golden_back),
("Silhouette", ("silhouette photography", "strong backlight", "clean outline"), "Lighting: strong backlight creating a crisp silhouette"),
("Rainy Window", ("moody window scene", "raindrops on glass", "soft bokeh"), flux_light_soft_window),
("Astrophotography", ("astrophotography", "night sky", "stars", "clean exposure"), "Lighting: moonless night, crisp stars, low noise look"),
("Milky Way Landscape", ("milky way", "night landscape", "wide angle", "stars"), "Lighting: starlight and faint airglow, crisp night contrast"),
("Milky Way Landscape", ("milky way", "night landscape", "wide field of view", "stars"), "Lighting: starlight and faint airglow, crisp night contrast"),
("Underwater Photo", ("underwater photography", "clear water", "floating particles", "blue tones"), "Lighting: underwater light beams and caustics, soft particulate haze"),
("Real Estate Photo", ("real estate photography", "wide angle", "clean lines", "bright interior"), flux_light_soft_window),
("Sports Action Freeze", ("sports photography", "fast shutter", "sharp action", "telephoto"), "Lighting: stadium lighting, crisp highlights, frozen motion"),
("Real Estate Photo", ("real estate photography", "wide field of view", "clean lines", "bright interior"), flux_light_soft_window),
("Sports Action Freeze", ("sports photography", "fast shutter", "sharp action", "compressed perspective"), "Lighting: stadium lighting, crisp highlights, frozen motion"),
("Motion Blur Action", ("motion blur", "panning shot", "dynamic movement"), "Lighting: controlled highlights supporting motion blur and panning"),
]
for name, ztags, flux_light in photo_genres:
@@ -531,7 +563,7 @@ def build() -> None:
z_prefix=ztags,
z_suffix=("realistic detail", "clean color", "natural contrast"),
flux_suffix_sentences=(
f"Style: {name.lower()}, realistic photograph",
f"Style: {_flux_style_label(name)}, realistic photograph",
flux_light,
"Mood: grounded, natural, believable",
),
@@ -573,7 +605,7 @@ def build() -> None:
("Moody Window Light", ("window light", "soft shadows", "intimate mood"), flux_light_soft_window),
("Backlit Rim Light", ("backlit", "rim light", "atmospheric haze"), flux_light_golden_back),
("Volumetric Light Beams", ("volumetric light", "god rays", "haze"), "Lighting: strong directional light creating volumetric beams through haze"),
("Rain Reflections", ("wet streets", "reflections", "night bokeh"), flux_light_neon),
("Rain Reflections", ("wet reflective surfaces", "reflections", "night bokeh"), flux_light_neon),
("Minimalist Studio", ("minimalist studio photo", "clean seamless", "controlled reflections"), flux_light_studio_softbox),
("Close-Up Texture Study", ("close-up photo", "micro texture", "tactile detail"), "Lighting: raking light to reveal texture and surface detail"),
("Soft Overcast Natural", ("soft overcast", "even skin tones", "gentle contrast"), flux_light_overcast),
@@ -600,11 +632,11 @@ def build() -> None:
# Lens / camera vibes (helpful shorthand; keep it generic).
lens_vibes = [
("24mm Wide Angle", ("wide angle", "24mm lens feel", "strong perspective"), "Composition: wide-angle perspective with strong leading lines"),
("35mm Documentary", ("35mm lens feel", "documentary framing", "natural perspective"), "Composition: documentary framing with natural perspective"),
("50mm Natural", ("50mm lens feel", "natural perspective", "balanced framing"), "Composition: balanced perspective and natural proportions"),
("85mm Portrait", ("85mm lens feel", "portrait compression", "shallow depth of field"), "Composition: flattering compression with shallow depth of field"),
("135mm Telephoto", ("telephoto compression", "135mm lens feel", "compressed background"), "Composition: strong telephoto compression and layered background"),
("24mm Wide Angle", ("wide field of view", "24mm perspective", "strong perspective"), "Composition: wide field of view with strong leading lines"),
("35mm Documentary", ("35mm perspective", "documentary framing", "natural perspective"), "Composition: documentary framing with natural perspective"),
("50mm Natural", ("50mm perspective", "natural perspective", "balanced framing"), "Composition: balanced perspective and natural proportions"),
("85mm Portrait", ("85mm portrait perspective", "portrait compression", "shallow depth of field"), "Composition: flattering compression with shallow depth of field"),
("135mm Telephoto", ("strong compression", "135mm compressed perspective", "compressed background"), "Composition: strong compression and layered background"),
]
for name, ztags, flux_comp in lens_vibes:
photo.append(
@@ -616,7 +648,7 @@ def build() -> None:
z_prefix=ztags,
z_suffix=("clean optics", "natural contrast"),
flux_suffix_sentences=(
"Style: realistic photograph with a specific lens perspective",
"Style: realistic photograph with a specific perspective and field of view",
flux_comp,
flux_light_overcast,
),
@@ -1439,7 +1471,7 @@ def build() -> None:
("Glossy Fashion Editorial", ("fashion editorial", "studio lighting", "high contrast", "clean backdrop"), flux_light_studio_softbox),
("Streetwear Lookbook", ("streetwear lookbook", "candid pose", "urban backdrop"), flux_light_overcast),
("Runway Backstage", ("backstage fashion", "documentary feel", "available light"), flux_light_soft_window),
("High Fashion Beauty Shot", ("beauty shot", "clean skin", "beauty lighting", "sharp eyes"), "Lighting: beauty dish with soft fill, clean catchlights, smooth gradients"),
("High Fashion Beauty Shot", ("beauty shot", "clean skin", "beauty lighting", "sharp eyes"), "Lighting: centered beauty lighting with soft fill, clean catchlights, smooth gradients"),
("Minimal Editorial", ("minimal fashion editorial", "neutral palette", "clean composition"), flux_light_studio_softbox),
("Vintage Editorial", ("vintage fashion editorial", "film grain", "muted palette"), flux_light_soft_window),
("Outdoor Editorial", ("fashion editorial outdoors", "wind", "natural light"), flux_light_golden_back),
@@ -1498,12 +1530,12 @@ def build() -> None:
# --- Nature ---
nature_styles = [
("Misty Forest", ("nature photography", "misty forest", "atmospheric depth"), "Lighting: diffused fog light, soft beams through trees"),
("Mountain Vista", ("landscape photography", "mountain vista", "wide angle"), flux_light_golden_back),
("Mountain Vista", ("landscape photography", "mountain vista", "wide field of view"), flux_light_golden_back),
("Seascape", ("seascape photography", "waves", "horizon line"), "Lighting: soft overcast coastal light, subtle specular highlights"),
("Desert Dunes", ("desert landscape", "sand dunes", "ripples", "wide angle"), "Lighting: low sun casting long shadows across dune ridges"),
("Desert Dunes", ("desert landscape", "sand dunes", "ripples", "wide field of view"), "Lighting: low sun casting long shadows across dune ridges"),
("Autumn Leaves", ("nature close-up", "autumn leaves", "rich colors", "bokeh"), flux_light_soft_window),
("Rainforest", ("rainforest", "lush greens", "humid haze", "detailed foliage"), "Lighting: filtered sunlight through canopy, humid atmosphere"),
("Aurora Night", ("aurora", "night sky", "wide angle", "stars"), "Lighting: moonless night with aurora glow, crisp stars"),
("Aurora Night", ("aurora", "night sky", "wide field of view", "stars"), "Lighting: moonless night with aurora glow, crisp stars"),
("Stormy Coast", ("stormy seascape", "dramatic clouds", "waves"), "Lighting: storm light with high contrast clouds, moody atmosphere"),
("Wildflower Meadow", ("wildflower meadow", "soft bokeh", "pastel colors"), flux_light_golden_back),
("Snowy Pines", ("snowy forest", "cold palette", "fine detail"), "Lighting: bright overcast snow light, soft shadow transitions"),
@@ -1600,8 +1632,13 @@ def build() -> None:
grades,
)
)
snapshot_total = write_legacy_snapshot()
print(f"Wrote style packs: {total} styles -> {PACKS_DIR}")
print(f"Updated legacy snapshot: {snapshot_total} styles -> {os.path.join(ROOT, 'styles', 'styles_v1.json')}")
if __name__ == "__main__":
build()
+23
View File
@@ -0,0 +1,23 @@
import os
import sys
ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if ROOT not in sys.path:
sys.path.insert(0, ROOT)
from style_library import LOAD_POLICY_STRICT, StyleLibraryError, write_legacy_snapshot
def main() -> int:
try:
total = write_legacy_snapshot(load_policy=LOAD_POLICY_STRICT)
except StyleLibraryError as exc:
print(f"ERROR: {exc}")
return 2
print(f"Updated styles/styles_v1.json with {total} merged styles")
return 0
if __name__ == "__main__":
raise SystemExit(main())
+18 -45
View File
@@ -1,64 +1,37 @@
import json
import os
import sys
ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if ROOT not in sys.path:
sys.path.insert(0, ROOT)
from style_library import LOAD_POLICY_STRICT, StyleLibraryError, load_style_library
def main() -> int:
root = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
packs_dir = os.path.join(root, "styles", "packs")
data = {"styles": []}
if os.path.isdir(packs_dir):
for name in sorted(os.listdir(packs_dir)):
if not name.lower().endswith(".json"):
continue
path = os.path.join(packs_dir, name)
with open(path, "r", encoding="utf-8") as f:
part = json.load(f) or {}
data["styles"].extend(part.get("styles", []) or [])
else:
path = os.path.join(root, "styles", "styles_v1.json")
with open(path, "r", encoding="utf-8") as f:
data = json.load(f)
styles = data.get("styles", [])
if not isinstance(styles, list):
print("ERROR: styles must be a list")
try:
library = load_style_library(load_policy=LOAD_POLICY_STRICT)
except StyleLibraryError as exc:
print(f"ERROR: {exc}")
return 2
ids = set()
names = set()
ok = True
for i, s in enumerate(styles):
sid = s.get("id")
name = s.get("name")
if not sid or not name:
print(f"ERROR: styles[{i}] missing id or name")
for style in library.styles:
if style.id in ids:
print(f"ERROR: duplicate id: {style.id}")
ok = False
continue
if sid in ids:
print(f"ERROR: duplicate id: {sid}")
if style.name in names:
print(f"ERROR: duplicate name: {style.name}")
ok = False
if name in names:
print(f"ERROR: duplicate name: {name}")
ok = False
ids.add(sid)
names.add(name)
default = s.get("default", {})
if not isinstance(default, dict):
print(f"ERROR: styles[{i}].default must be an object")
ok = False
continue
for k in ("prefix", "suffix"):
if k not in default:
print(f"ERROR: styles[{i}].default missing {k}")
ok = False
ids.add(style.id)
names.add(style.name)
if not ok:
return 2
print(f"OK: {len(styles)} styles; {len(ids)} unique ids; {len(names)} unique names")
print(f"OK: {len(library.styles)} styles; {len(ids)} unique ids; {len(names)} unique names")
return 0
+77
View File
@@ -0,0 +1,77 @@
import argparse
import json
import os
import sys
ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
VERSION_PATH = os.path.join(ROOT, "VERSION")
INIT_PATH = os.path.join(ROOT, "__init__.py")
MANIFEST_PATH = os.path.join(ROOT, ".release-please-manifest.json")
def _read_version() -> str:
with open(VERSION_PATH, "r", encoding="utf-8") as handle:
return handle.read().strip()
def _read_manifest_version() -> str:
with open(MANIFEST_PATH, "r", encoding="utf-8") as handle:
data = json.load(handle) or {}
return str(data.get(".", "")).strip()
def _write_manifest_version(version: str) -> None:
with open(MANIFEST_PATH, "w", encoding="utf-8") as handle:
json.dump({".": version}, handle, indent=2, ensure_ascii=True)
handle.write("\n")
def _init_reads_version_file() -> bool:
with open(INIT_PATH, "r", encoding="utf-8") as handle:
text = handle.read()
return "_read_version()" in text and 'os.path.join(here, "VERSION")' in text
def cmd_check(_args) -> int:
version = _read_version()
manifest_version = _read_manifest_version()
ok = True
if not _init_reads_version_file():
print("ERROR: __init__.py is no longer reading VERSION directly")
ok = False
if manifest_version != version:
print(f"ERROR: .release-please-manifest.json ({manifest_version}) does not match VERSION ({version})")
ok = False
if not ok:
return 2
print(f"OK: VERSION, __init__.py, and .release-please-manifest.json are aligned at {version}")
return 0
def cmd_write(_args) -> int:
version = _read_version()
_write_manifest_version(version)
print(f"Updated .release-please-manifest.json -> {version}")
return 0
def main(argv: list[str] | None = None) -> int:
parser = argparse.ArgumentParser(prog="version_sync.py", description="Check or sync version metadata")
sub = parser.add_subparsers(dest="cmd", required=True)
p_check = sub.add_parser("check", help="Validate VERSION, __init__.py, and release manifest alignment")
p_check.set_defaults(func=cmd_check)
p_write = sub.add_parser("write", help="Write manifest version from VERSION")
p_write.set_defaults(func=cmd_write)
args = parser.parse_args(argv)
return int(args.func(args))
if __name__ == "__main__":
raise SystemExit(main())