Whyx-PROmpTea / AGENTS.md
ArtShumov's picture
feat(tagger): auto-use DWPose for smart analysis (pose/anatomy/expression/background)
49318b8
|
Raw
History Blame Contribute Delete
2.07 kB
# AGENTS.md
> **ВАЖНО — язык общения:** Всегда отвечай пользователю **только на русском языке**,
> независимо от языка кода или комментариев в репозитории. Пользователь слабо
> понимает английский.
Project instructions for AI coding agents working on Whyx-PROmpTea (Whyx-PROptimizer).
## Overview
Gradio web app that rewrites, expands, and generates variations of Stable Diffusion
prompts. Core logic lives in `src/`, UI in `app.py`, visual theme in `theme/whyx_theme.py`,
data/tag pools in `data/`.
## Environment
- Python 3.13 (a `.venv/` virtualenv is present in the project root for local dev).
- Gradio 5.x / 6.x (do NOT pin gradio in requirements.txt — HF Spaces pins its own).
`app.py` auto-detects via `_GRADIO_MAJOR`:
- Gradio 5: `theme`, `css`, `head` go in `gr.Blocks()`
- Gradio 6: `theme`, `css`, `head` go in `demo.launch()`
## Conventions
- Keep source modules under `src/`; import as `from src import ...`.
- Tag pools are JSON files under `data/tag_pools/`; do not commit generated runtime files
like `data/session_history.json` if they become corrupt — reset to `[]`.
- Ratings map centrally through `src.safety_filter`: UI ratings (`pg`, `pg13`, `pg16`, `r`, `r+`)
must never be hard-coded to tag-pool ratings elsewhere.
- `data/negative_templates.json` is the single source of truth for negative-prompt strings.
- The artist pool (`data/tag_pools/artist.json`) can be refreshed with `scripts/fetch_top_artists.py`
and post-enriched with `scripts/enrich_artist_signatures.py`.
## Verification
- Import check: `.venv\Scripts\python.exe -c "import app"` should succeed with no errors.
- Functional check: parse/rewrite/generate via `src.prompt_parser`, `src.prompt_rewriter`,
`src.variation_engine`.
- Tests: run `.venv\Scripts\python.exe -m pytest tests/ -q` (21+ expected passes).
- Run the app: `.venv\Scripts\python.exe app.py` and confirm it serves HTTP 200 on the configured port.