Skip to content

anthonyoccelli33480-ctrl/promptshoot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PromptShoot

A deterministic prompt engineering engine for professional photography prompts — one creative brief, three model-native outputs (SDXL, FLUX, Midjourney).

Local-first · Ministral 8B via MLX (optional) · deterministic template fallback

PromptShoot interface

Quick start

git clone <this-repo> && cd promptshoot
pip install -r requirements.txt
uvicorn app.main:app --port 8802

Open http://127.0.0.1:8802.

Optional local LLM enrichment (Apple Silicon): pip install mlx-lm, then set PROMPTSHOOT_MODEL (see .env.example). The app is fully functional without it — the LLM only enriches the free-text subject description; every hierarchy position still has a deterministic fallback.

Architecture

flowchart LR
    UI[Browser UI\nshot config + description] --> API[FastAPI routes]
    API --> ENGINE[Prompt engine\n11-position hierarchy]
    ENGINE --> LLM{MLX available?}
    LLM -->|yes| ENRICH[Ministral 8B\nenrich description]
    LLM -->|no| BUDGET[Tag budget enforcer]
    ENRICH -->|valid| BUDGET
    ENRICH -->|invalid or error| BUDGET
    BUDGET --> SDXL[SDXL adapter]
    BUDGET --> FLUX[FLUX adapter]
    BUDGET --> MJ[Midjourney adapter]
Loading
  • 11-position prompt hierarchy: LoRA trigger, subject, pose/composition, wardrobe/props, environment, lighting, camera/lens, mood, Style DNA, realism, quality — assembled in the same strict order for every request.
  • Tag budget by intensity: Quick / High / Extreme calibration sets a min/max tag count; the budget enforcer trims lowest-priority tags first and pads from a fallback pool second — the cap is never exceeded.
  • Auto-adapt failsafes: keyword scanning over the description and scene options fires targeted tag/negative injections for hands, water, mirrors, wet surfaces, jewelry/metal and face close-ups.
  • One engine, three renderers: the same ordered tag list feeds SDXL (77-token CLIP split into two encoder blocks + sampler/steps/resolution params), FLUX (natural-language sentence, T5 encoder, no negatives), and Midjourney (--ar, --no, --style raw, --v 7 parameter string) — only rendering differs, never the creative decisions.
  • Anti-AI realism failsafe: a permanent anti-synthetic tag is injected into every output to counter the plastic-skin, over-smoothed look common to AI photography.

Stack

Python, FastAPI, vanilla JS/CSS (no framework, no CDN dependency), optional MLX (Apple Silicon) for local LLM description enrichment.

Examples

Roadmap

  • img2img reference analysis (upload a reference image to seed Style DNA and lighting choices).
  • Additional target models (Ideogram, Recraft).
  • A curated LoRA trigger presets library per Style DNA.
  • Prompt history / local session log for iterating on a series.

License

MIT — see LICENSE.

About

Image prompt engineering engine for SDXL / FLUX / Midjourney

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors