Lock Gradio to the 6.29 release in both dependency manifests to keep installs consistent across environments, including Hugging Face Spaces. Also expand `.gitignore` for local virtualenv, tool caches, Gradio runtime data, downloaded prediction artifacts, and first-run DLC model downloads so generated files do not get committed.
Introduce a `pyproject.toml` with project metadata, runtime dependencies, and Ruff/pyproject-fmt settings, and add a matching `.pre-commit-config.yaml` to enforce basic file checks, pyproject validation, and formatting/linting. Also normalize `.gitignore` with a trailing newline.
Duplicate from DeepLabCut/MegaDetector_DeepLabCutβ