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

A newer version of the Gradio SDK is available: 6.24.0

Upgrade

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.