tribunal-kit 9.2.1 → 9.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/.tribunal/session.jsonl +15 -0
- package/.agent/ARCHITECTURE.md +4 -4
- package/.agent/agents/agent-shield-auditor.md +18 -0
- package/.agent/agents/harness-manager.md +49 -0
- package/.agent/agents/human-gate-negotiator.md +22 -0
- package/.agent/agents/kernel-scheduler.md +56 -0
- package/.agent/agents/memory-archivist.md +37 -0
- package/.agent/agents/orchestrator.md +7 -0
- package/.agent/agents/project-planner.md +5 -0
- package/.agent/agents/security-auditor.md +5 -0
- package/.agent/config/claude.json +1 -1
- package/.agent/config/plugin.json +1 -1
- package/.agent/history/architecture-explorer.html +352 -0
- package/.agent/history/architecture-graph.yaml +181 -1
- package/.agent/history/graph-cache.json +323 -13
- package/.agent/history/integrity_manifest.json +3937 -299
- package/.agent/history/memory/.memory.idx +50 -50
- package/.agent/history/snapshots/.opencode__plugins__tribunal.js.json +12 -0
- package/.agent/history/snapshots/.pi__extensions__tribunal.ts.json +12 -0
- package/.agent/history/snapshots/bin__adapter-install.js.json +1 -1
- package/.agent/history/snapshots/bin__mcp-server.js.json +4 -2
- package/.agent/history/snapshots/bin__proxy-server.js.json +1 -1
- package/.agent/history/snapshots/bin__spawn-agent.js.json +1 -1
- package/.agent/history/snapshots/bin__wrapper.js.json +1 -1
- package/.agent/history/snapshots/eslint.config.js.json +1 -1
- package/.agent/history/snapshots/hooks__session-start.js.json +11 -0
- package/.agent/history/snapshots/scripts__apply-version.js.json +11 -0
- package/.agent/history/snapshots/scripts__audit_skill_sdo.js.json +11 -0
- package/.agent/history/snapshots/scripts__clean-pycache.js.json +11 -0
- package/.agent/history/snapshots/scripts__context_compiler.js.json +17 -0
- package/.agent/history/snapshots/scripts__modernize_skills.js.json +11 -0
- package/.agent/history/snapshots/scripts__package-cores.js.json +12 -0
- package/.agent/history/snapshots/scripts__skill_enhancement_engine.js.json +11 -0
- package/.agent/history/snapshots/scripts__sync-skills.js.json +11 -0
- package/.agent/history/snapshots/scripts__telemetry_gc.js.json +11 -0
- package/.agent/history/snapshots/scripts__validate-payload.js.json +1 -1
- package/.agent/history/snapshots/test__integration__browser_cli.test.js.json +12 -0
- package/.agent/history/snapshots/test__integration__sync_status.test.js.json +1 -1
- package/.agent/history/snapshots/test__unit__ast_context_loader.test.js.json +12 -0
- package/.agent/history/snapshots/test__unit__browser_case_bridge.test.js.json +11 -0
- package/.agent/history/snapshots/test__unit__browser_discovery.test.js.json +10 -0
- package/.agent/history/snapshots/test__unit__browser_idpi.test.js.json +10 -0
- package/.agent/history/snapshots/test__unit__browser_sentinel.test.js.json +11 -0
- package/.agent/history/snapshots/test__unit__browser_synapse.test.js.json +10 -0
- package/.agent/history/snapshots/test__unit__browser_trimmer.test.js.json +10 -0
- package/.agent/history/snapshots/test__unit__context_compiler.test.js.json +26 -0
- package/.agent/history/snapshots/test__unit__init.test.js.json +1 -1
- package/.agent/history/snapshots/test__unit__learn.test.js.json +1 -1
- package/.agent/history/snapshots/test__unit__mcp_server.test.js.json +1 -1
- package/.agent/history/snapshots/test__unit__platform_download_audit.test.js.json +11 -0
- package/.agent/history/snapshots/test__unit__prompt_compiler.test.js.json +10 -0
- package/.agent/history/snapshots/test__unit__sdd_integration.test.js.json +12 -0
- package/.agent/history/snapshots/test__unit__stress.test.js.json +1 -1
- package/.agent/history/snapshots/test__unit__token_budget_broker.test.js.json +10 -0
- package/.agent/history/snapshots/test__unit__tui.test.js.json +10 -0
- package/.agent/routing_index.json +1 -1
- package/.agent/rules/GEMINI.md +1 -1
- package/.agent/rules/kernel.md +86 -0
- package/.agent/scripts/_utils.js +79 -1
- package/.agent/scripts/checklist.js +1 -1
- package/.agent/scripts/context_broker.js +0 -8
- package/.agent/scripts/context_compiler.js +1106 -3
- package/.agent/scripts/guardrail_engine.js +48 -11
- package/.agent/scripts/harness_manager.js +60 -0
- package/.agent/scripts/lint_runner.js +1 -1
- package/.agent/scripts/mcp_server.js +181 -0
- package/.agent/scripts/memory_archivist.js +97 -0
- package/.agent/scripts/memory_consolidator.js +37 -0
- package/.agent/scripts/memory_engine.js +526 -325
- package/.agent/scripts/pipeline_engine.js +45 -107
- package/.agent/scripts/session_logger.js +115 -0
- package/.agent/scripts/session_manager.js +10 -0
- package/.agent/scripts/swarm_dispatcher.js +197 -49
- package/.agent/scripts/syscall_registry.js +105 -0
- package/.agent/scripts/test_runner.js +1 -1
- package/.agent/scripts/verify_all.js +2 -2
- package/.agent/skill_topic_map.json +98 -22
- package/.agent/skills/12-principles-of-animation/SKILL.md +1 -76
- package/.agent/skills/60fps-animation/SKILL.md +1 -76
- package/.agent/skills/accessible-animation/SKILL.md +1 -76
- package/.agent/skills/adapt/SKILL.md +1 -76
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +1 -76
- package/.agent/skills/agent-organizer/SKILL.md +1 -76
- package/.agent/skills/agent-syscall-guidelines/SKILL.md +25 -0
- package/.agent/skills/agentic-patterns/SKILL.md +1 -76
- package/.agent/skills/agentic-workflows-2026/SKILL.md +6 -73
- package/.agent/skills/agentshield-security/SKILL.md +26 -0
- package/.agent/skills/ai-app-hardening/SKILL.md +1 -76
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +1 -76
- package/.agent/skills/animation-on-scroll/SKILL.md +1 -76
- package/.agent/skills/animation-systems/SKILL.md +1 -76
- package/.agent/skills/antfu-conventions/SKILL.md +0 -75
- package/.agent/skills/api-patterns/SKILL.md +1 -76
- package/.agent/skills/api-security-auditor/SKILL.md +1 -76
- package/.agent/skills/app-builder/SKILL.md +1 -76
- package/.agent/skills/appflow-wireframe/SKILL.md +1 -76
- package/.agent/skills/apple-design/SKILL.md +1 -76
- package/.agent/skills/architecture/SKILL.md +1 -76
- package/.agent/skills/audit-and-fix/SKILL.md +41 -77
- package/.agent/skills/authentication-best-practices/SKILL.md +1 -76
- package/.agent/skills/backend-security-expert/SKILL.md +1 -76
- package/.agent/skills/baseline-ui/SKILL.md +1 -76
- package/.agent/skills/bash-linux/SKILL.md +1 -76
- package/.agent/skills/behavioral-modes/SKILL.md +1 -76
- package/.agent/skills/better-colors/SKILL.md +1 -76
- package/.agent/skills/better-typography/SKILL.md +1 -76
- package/.agent/skills/better-ui/SKILL.md +1 -76
- package/.agent/skills/bolder/SKILL.md +1 -76
- package/.agent/skills/brainstorming/SKILL.md +1 -76
- package/.agent/skills/browser-audit/SKILL.md +1 -76
- package/.agent/skills/browser-native-ai/SKILL.md +1 -76
- package/.agent/skills/build-primitive/SKILL.md +1 -76
- package/.agent/skills/building-native-ui/SKILL.md +1 -76
- package/.agent/skills/cicd-pro/SKILL.md +1 -76
- package/.agent/skills/clarify/SKILL.md +1 -76
- package/.agent/skills/clean-code/SKILL.md +1 -76
- package/.agent/skills/cloud-architect/SKILL.md +1 -76
- package/.agent/skills/cobejs/SKILL.md +1 -76
- package/.agent/skills/code-review-checklist/SKILL.md +1 -76
- package/.agent/skills/codebase-design/SKILL.md +1 -76
- package/.agent/skills/colorize/SKILL.md +1 -76
- package/.agent/skills/compact-landing/SKILL.md +1 -76
- package/.agent/skills/company-logos/SKILL.md +1 -76
- package/.agent/skills/config-validator/SKILL.md +1 -76
- package/.agent/skills/containerization-pro/SKILL.md +1 -76
- package/.agent/skills/context-engineering-pro/SKILL.md +5 -73
- package/.agent/skills/create-design-md/SKILL.md +1 -76
- package/.agent/skills/critique/SKILL.md +1 -76
- package/.agent/skills/csharp-developer/SKILL.md +1 -76
- package/.agent/skills/data-validation-schemas/SKILL.md +1 -76
- package/.agent/skills/database-design/SKILL.md +1 -76
- package/.agent/skills/delight/SKILL.md +1 -76
- package/.agent/skills/deployment-procedures/SKILL.md +1 -76
- package/.agent/skills/design-lab/SKILL.md +1 -76
- package/.agent/skills/devops-engineer/SKILL.md +1 -76
- package/.agent/skills/devops-incident-responder/SKILL.md +1 -76
- package/.agent/skills/diagnosing-bugs/SKILL.md +1 -76
- package/.agent/skills/distill/SKILL.md +1 -76
- package/.agent/skills/documentation-templates/SKILL.md +1 -76
- package/.agent/skills/domain-modeling/SKILL.md +1 -76
- package/.agent/skills/duckdb-analytical-sql/SKILL.md +1 -76
- package/.agent/skills/edge-ai-mobile/SKILL.md +1 -76
- package/.agent/skills/edge-computing/SKILL.md +1 -76
- package/.agent/skills/emil-design-eng/SKILL.md +1 -76
- package/.agent/skills/error-resilience/SKILL.md +1 -76
- package/.agent/skills/expo-router-v4/SKILL.md +1 -76
- package/.agent/skills/extract-design-system/SKILL.md +1 -76
- package/.agent/skills/fabel-protocol/SKILL.md +3 -73
- package/.agent/skills/fixing-accessibility/SKILL.md +1 -76
- package/.agent/skills/fixing-metadata/SKILL.md +1 -76
- package/.agent/skills/fixing-motion-performance/SKILL.md +1 -76
- package/.agent/skills/framer-motion-expert/SKILL.md +1 -76
- package/.agent/skills/frontend-design/SKILL.md +1 -76
- package/.agent/skills/frontend-security-expert/SKILL.md +1 -76
- package/.agent/skills/game-design-expert/SKILL.md +1 -76
- package/.agent/skills/game-engineering-expert/SKILL.md +1 -76
- package/.agent/skills/generative-ui-expert/SKILL.md +1 -76
- package/.agent/skills/geo-fundamentals/SKILL.md +1 -76
- package/.agent/skills/git-pro/SKILL.md +1 -76
- package/.agent/skills/github-operations/SKILL.md +1 -76
- package/.agent/skills/gpt-taste/SKILL.md +1 -76
- package/.agent/skills/graph-engineering/SKILL.md +28 -0
- package/.agent/skills/gsap-core/SKILL.md +1 -76
- package/.agent/skills/gsap-frameworks/SKILL.md +1 -76
- package/.agent/skills/gsap-performance/SKILL.md +1 -76
- package/.agent/skills/gsap-plugins/SKILL.md +1 -76
- package/.agent/skills/gsap-react/SKILL.md +1 -76
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +1 -76
- package/.agent/skills/gsap-timeline/SKILL.md +1 -76
- package/.agent/skills/gsap-utils/SKILL.md +1 -76
- package/.agent/skills/harden/SKILL.md +1 -76
- package/.agent/skills/harness-protocol/SKILL.md +6 -73
- package/.agent/skills/hf-cli/SKILL.md +239 -0
- package/.agent/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
- package/.agent/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
- package/.agent/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
- package/.agent/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
- package/.agent/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
- package/.agent/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
- package/.agent/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
- package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
- package/.agent/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
- package/.agent/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
- package/.agent/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
- package/.agent/skills/hf-mem/SKILL.md +79 -0
- package/.agent/skills/huggingface-best/SKILL.md +134 -0
- package/.agent/skills/huggingface-community-evals/SKILL.md +207 -0
- package/.agent/skills/huggingface-community-evals/examples/.env.example +3 -0
- package/.agent/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/.agent/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/.agent/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/.agent/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/.agent/skills/huggingface-datasets/SKILL.md +107 -0
- package/.agent/skills/huggingface-gradio/SKILL.md +298 -0
- package/.agent/skills/huggingface-gradio/examples.md +613 -0
- package/.agent/skills/huggingface-llm-trainer/SKILL.md +738 -0
- package/.agent/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
- package/.agent/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
- package/.agent/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
- package/.agent/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
- package/.agent/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
- package/.agent/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
- package/.agent/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
- package/.agent/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
- package/.agent/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
- package/.agent/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
- package/.agent/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
- package/.agent/skills/huggingface-local-models/SKILL.md +113 -0
- package/.agent/skills/huggingface-local-models/references/hardware.md +38 -0
- package/.agent/skills/huggingface-local-models/references/hub-discovery.md +178 -0
- package/.agent/skills/huggingface-local-models/references/quantization.md +256 -0
- package/.agent/skills/huggingface-lora-space-builder/SKILL.md +394 -0
- package/.agent/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
- package/.agent/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
- package/.agent/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
- package/.agent/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
- package/.agent/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
- package/.agent/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
- package/.agent/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
- package/.agent/skills/huggingface-paper-publisher/SKILL.md +624 -0
- package/.agent/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
- package/.agent/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
- package/.agent/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
- package/.agent/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
- package/.agent/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
- package/.agent/skills/huggingface-paper-publisher/templates/modern.md +319 -0
- package/.agent/skills/huggingface-paper-publisher/templates/standard.md +201 -0
- package/.agent/skills/huggingface-papers/SKILL.md +239 -0
- package/.agent/skills/huggingface-spaces/README.md +9 -0
- package/.agent/skills/huggingface-spaces/SKILL.md +242 -0
- package/.agent/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
- package/.agent/skills/huggingface-spaces/references/3d-generation.md +98 -0
- package/.agent/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
- package/.agent/skills/huggingface-spaces/references/3d-models.md +227 -0
- package/.agent/skills/huggingface-spaces/references/3d-outputs.md +114 -0
- package/.agent/skills/huggingface-spaces/references/buckets.md +89 -0
- package/.agent/skills/huggingface-spaces/references/debugging.md +236 -0
- package/.agent/skills/huggingface-spaces/references/gradio.md +200 -0
- package/.agent/skills/huggingface-spaces/references/grants.md +63 -0
- package/.agent/skills/huggingface-spaces/references/inference-providers.md +97 -0
- package/.agent/skills/huggingface-spaces/references/known-errors.md +232 -0
- package/.agent/skills/huggingface-spaces/references/requirements.md +169 -0
- package/.agent/skills/huggingface-spaces/references/zerogpu.md +349 -0
- package/.agent/skills/huggingface-tool-builder/SKILL.md +120 -0
- package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
- package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
- package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
- package/.agent/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
- package/.agent/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
- package/.agent/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
- package/.agent/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
- package/.agent/skills/huggingface-trackio/SKILL.md +142 -0
- package/.agent/skills/huggingface-trackio/references/alerts.md +196 -0
- package/.agent/skills/huggingface-trackio/references/logging_metrics.md +212 -0
- package/.agent/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
- package/.agent/skills/huggingface-vision-trainer/SKILL.md +593 -0
- package/.agent/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
- package/.agent/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
- package/.agent/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
- package/.agent/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
- package/.agent/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
- package/.agent/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
- package/.agent/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
- package/.agent/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
- package/.agent/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
- package/.agent/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
- package/.agent/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
- package/.agent/skills/huggingface-zerogpu/SKILL.md +289 -0
- package/.agent/skills/huggingface-zerogpu/references/concurrency.md +79 -0
- package/.agent/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
- package/.agent/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
- package/.agent/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
- package/.agent/skills/human-gate-negotiation/SKILL.md +30 -0
- package/.agent/skills/i18n-localization/SKILL.md +1 -76
- package/.agent/skills/impeccable/SKILL.md +1 -76
- package/.agent/skills/improve-codebase-architecture/SKILL.md +1 -76
- package/.agent/skills/improve-ui/SKILL.md +1 -76
- package/.agent/skills/intelligent-routing/SKILL.md +9 -89
- package/.agent/skills/knowledge-graph/SKILL.md +1 -76
- package/.agent/skills/landing-page/SKILL.md +1 -76
- package/.agent/skills/lint-and-validate/SKILL.md +1 -76
- package/.agent/skills/llm-engineering/SKILL.md +1 -76
- package/.agent/skills/local-first/SKILL.md +1 -76
- package/.agent/skills/local-first-architecture/SKILL.md +1 -76
- package/.agent/skills/lottie-animation/SKILL.md +1 -76
- package/.agent/skills/marquee-loop/SKILL.md +1 -76
- package/.agent/skills/masked-reveal/SKILL.md +1 -76
- package/.agent/skills/mcp-builder/SKILL.md +1 -76
- package/.agent/skills/micro-interaction/SKILL.md +1 -76
- package/.agent/skills/mobile-design/SKILL.md +1 -76
- package/.agent/skills/monorepo-management/SKILL.md +1 -76
- package/.agent/skills/morphing-icons/SKILL.md +1 -76
- package/.agent/skills/motion-engineering/SKILL.md +1 -76
- package/.agent/skills/nextjs-react-expert/SKILL.md +1 -76
- package/.agent/skills/nodejs-best-practices/SKILL.md +1 -76
- package/.agent/skills/observability/SKILL.md +1 -76
- package/.agent/skills/opentelemetry-observability/SKILL.md +1 -76
- package/.agent/skills/page-transition-animation/SKILL.md +1 -76
- package/.agent/skills/parallel-agents/SKILL.md +1 -76
- package/.agent/skills/performance-profiling/SKILL.md +1 -76
- package/.agent/skills/plan-writing/SKILL.md +1 -76
- package/.agent/skills/platform-engineer/SKILL.md +1 -76
- package/.agent/skills/platform-engineering-opentofu/SKILL.md +1 -76
- package/.agent/skills/playwright-ai-e2e/SKILL.md +1 -76
- package/.agent/skills/playwright-best-practices/SKILL.md +1 -76
- package/.agent/skills/polish/SKILL.md +1 -76
- package/.agent/skills/powershell-windows/SKILL.md +1 -76
- package/.agent/skills/pricing-page/SKILL.md +1 -76
- package/.agent/skills/product-aware-heuristics/SKILL.md +1 -76
- package/.agent/skills/progressive-blur/SKILL.md +1 -76
- package/.agent/skills/project-idioms/SKILL.md +1 -76
- package/.agent/skills/property-based-testing/SKILL.md +1 -76
- package/.agent/skills/python-patterns/SKILL.md +1 -76
- package/.agent/skills/python-pro/SKILL.md +1 -76
- package/.agent/skills/quieter/SKILL.md +1 -76
- package/.agent/skills/react-doctor/SKILL.md +1 -76
- package/.agent/skills/react-specialist/SKILL.md +1 -76
- package/.agent/skills/readme-builder/SKILL.md +1 -76
- package/.agent/skills/realtime-patterns/SKILL.md +1 -76
- package/.agent/skills/red-team-tactics/SKILL.md +1 -76
- package/.agent/skills/redesign-skill/SKILL.md +1 -76
- package/.agent/skills/review-animations/SKILL.md +1 -76
- package/.agent/skills/rust-pro/SKILL.md +1 -76
- package/.agent/skills/semantic-filesystem-navigation/SKILL.md +24 -0
- package/.agent/skills/seo-fundamentals/SKILL.md +1 -76
- package/.agent/skills/server-management/SKILL.md +1 -76
- package/.agent/skills/session-log-interrogation/SKILL.md +29 -0
- package/.agent/skills/shadcn-ui-expert/SKILL.md +1 -76
- package/.agent/skills/shape/SKILL.md +1 -76
- package/.agent/skills/skill-creator/SKILL.md +124 -90
- package/.agent/skills/soft-skill/SKILL.md +1 -76
- package/.agent/skills/sounds-on-the-web/SKILL.md +1 -76
- package/.agent/skills/sql-pro/SKILL.md +1 -76
- package/.agent/skills/subagent-driven-development/SKILL.md +32 -0
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +1 -76
- package/.agent/skills/svg-animation/SKILL.md +1 -76
- package/.agent/skills/swiftui-expert/SKILL.md +1 -76
- package/.agent/skills/swiss-design/SKILL.md +1 -76
- package/.agent/skills/system-design-pro/SKILL.md +1 -76
- package/.agent/skills/systematic-debugging/SKILL.md +3 -73
- package/.agent/skills/tailwind-patterns/SKILL.md +1 -76
- package/.agent/skills/taste-skill/SKILL.md +1 -76
- package/.agent/skills/tdd-workflow/SKILL.md +1 -76
- package/.agent/skills/test-result-analyzer/SKILL.md +1 -76
- package/.agent/skills/testing-patterns/SKILL.md +1 -76
- package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +1 -76
- package/.agent/skills/thinking-protocol/SKILL.md +1 -78
- package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +1 -76
- package/.agent/skills/train-sentence-transformers/SKILL.md +109 -0
- package/.agent/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
- package/.agent/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
- package/.agent/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
- package/.agent/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
- package/.agent/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
- package/.agent/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
- package/.agent/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
- package/.agent/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
- package/.agent/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
- package/.agent/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
- package/.agent/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
- package/.agent/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
- package/.agent/skills/train-sentence-transformers/references/model_architectures.md +178 -0
- package/.agent/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
- package/.agent/skills/train-sentence-transformers/references/training_args.md +270 -0
- package/.agent/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
- package/.agent/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
- package/.agent/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
- package/.agent/skills/transformers-js/SKILL.md +692 -0
- package/.agent/skills/transformers-js/references/CACHE.md +339 -0
- package/.agent/skills/transformers-js/references/CONFIGURATION.md +438 -0
- package/.agent/skills/transformers-js/references/EXAMPLES.md +620 -0
- package/.agent/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
- package/.agent/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
- package/.agent/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
- package/.agent/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
- package/.agent/skills/transitions-dev/SKILL.md +1 -76
- package/.agent/skills/trend-researcher/SKILL.md +1 -76
- package/.agent/skills/tribunal-instincts-memory/SKILL.md +31 -0
- package/.agent/skills/trl-training/SKILL.md +318 -0
- package/.agent/skills/typescript-advanced/SKILL.md +1 -76
- package/.agent/skills/typeset/SKILL.md +1 -76
- package/.agent/skills/ui-reasoning-engine/SKILL.md +1 -76
- package/.agent/skills/ui-skill-packs/SKILL.md +1 -76
- package/.agent/skills/ui-skills-root/SKILL.md +1 -76
- package/.agent/skills/ui-ux-pro-max/SKILL.md +1 -76
- package/.agent/skills/ui-ux-researcher/SKILL.md +1 -76
- package/.agent/skills/vector-search-pgvector/SKILL.md +1 -76
- package/.agent/skills/verification-before-completion/SKILL.md +1 -76
- package/.agent/skills/vue-expert/SKILL.md +1 -76
- package/.agent/skills/vulnerability-scanner/SKILL.md +1 -76
- package/.agent/skills/web-accessibility-auditor/SKILL.md +1 -76
- package/.agent/skills/web-design-guidelines/SKILL.md +1 -76
- package/.agent/skills/web-quality-audit/SKILL.md +1 -76
- package/.agent/skills/webapp-testing/SKILL.md +1 -76
- package/.agent/skills/webgpu-performance/SKILL.md +1 -76
- package/.agent/skills/whimsy-injector/SKILL.md +1 -76
- package/.agent/skills/workflow-optimizer/SKILL.md +1 -76
- package/.agent/skills/zero-trust-passkeys/SKILL.md +1 -76
- package/.agent/workflows/assimilate.md +21 -0
- package/.agent/workflows/audit.md +5 -0
- package/.agent/workflows/generate.md +6 -1
- package/.agent/workflows/htop.md +22 -0
- package/.agent/workflows/marathon.md +5 -0
- package/.agent/workflows/orchestrate.md +1 -1
- package/.agent/workflows/resume.md +20 -0
- package/.agent/workflows/review-ai.md +1 -1
- package/.agent/workflows/skill-enhancement-engine.md +6 -10
- package/.agent/workflows/swarm.md +1 -1
- package/.agent/workflows/team-mode.md +22 -0
- package/.agent/workflows/tribunal-backend.md +1 -1
- package/.agent/workflows/tribunal-cicd.md +1 -1
- package/.agent/workflows/tribunal-database.md +1 -1
- package/.agent/workflows/tribunal-frontend.md +1 -1
- package/.agent/workflows/tribunal-full.md +9 -9
- package/.agent/workflows/tribunal-mobile.md +1 -1
- package/.agent/workflows/tribunal-speed.md +1 -1
- package/.agent/workflows/tribunal-ui.md +1 -1
- package/.agents/skills/12-principles-of-animation/SKILL.md +1 -76
- package/.agents/skills/60fps-animation/SKILL.md +1 -76
- package/.agents/skills/accessible-animation/SKILL.md +1 -76
- package/.agents/skills/adapt/SKILL.md +1 -76
- package/.agents/skills/advanced-rag-pipelines/SKILL.md +1 -76
- package/.agents/skills/agent-organizer/SKILL.md +1 -76
- package/.agents/skills/agent-syscall-guidelines/SKILL.md +25 -0
- package/.agents/skills/agentic-patterns/SKILL.md +1 -76
- package/.agents/skills/agentic-workflows-2026/SKILL.md +6 -73
- package/.agents/skills/agentshield-security/SKILL.md +26 -0
- package/.agents/skills/ai-app-hardening/SKILL.md +1 -76
- package/.agents/skills/ai-prompt-injection-defense/SKILL.md +1 -76
- package/.agents/skills/animation-on-scroll/SKILL.md +1 -76
- package/.agents/skills/animation-systems/SKILL.md +1 -76
- package/.agents/skills/antfu-conventions/SKILL.md +0 -75
- package/.agents/skills/api-patterns/SKILL.md +1 -76
- package/.agents/skills/api-security-auditor/SKILL.md +1 -76
- package/.agents/skills/app-builder/SKILL.md +1 -76
- package/.agents/skills/appflow-wireframe/SKILL.md +1 -76
- package/.agents/skills/apple-design/SKILL.md +1 -76
- package/.agents/skills/architecture/SKILL.md +1 -76
- package/.agents/skills/audit-and-fix/SKILL.md +41 -77
- package/.agents/skills/authentication-best-practices/SKILL.md +1 -76
- package/.agents/skills/backend-security-expert/SKILL.md +1 -76
- package/.agents/skills/baseline-ui/SKILL.md +1 -76
- package/.agents/skills/bash-linux/SKILL.md +1 -76
- package/.agents/skills/behavioral-modes/SKILL.md +1 -76
- package/.agents/skills/better-colors/SKILL.md +1 -76
- package/.agents/skills/better-typography/SKILL.md +1 -76
- package/.agents/skills/better-ui/SKILL.md +1 -76
- package/.agents/skills/bolder/SKILL.md +1 -76
- package/.agents/skills/brainstorming/SKILL.md +1 -76
- package/.agents/skills/browser-audit/SKILL.md +1 -76
- package/.agents/skills/browser-native-ai/SKILL.md +1 -76
- package/.agents/skills/build-primitive/SKILL.md +1 -76
- package/.agents/skills/building-native-ui/SKILL.md +1 -76
- package/.agents/skills/cicd-pro/SKILL.md +1 -76
- package/.agents/skills/clarify/SKILL.md +1 -76
- package/.agents/skills/clean-code/SKILL.md +1 -76
- package/.agents/skills/cloud-architect/SKILL.md +1 -76
- package/.agents/skills/cobejs/SKILL.md +1 -76
- package/.agents/skills/code-review-checklist/SKILL.md +1 -76
- package/.agents/skills/codebase-design/SKILL.md +1 -76
- package/.agents/skills/colorize/SKILL.md +1 -76
- package/.agents/skills/compact-landing/SKILL.md +1 -76
- package/.agents/skills/company-logos/SKILL.md +1 -76
- package/.agents/skills/config-validator/SKILL.md +1 -76
- package/.agents/skills/containerization-pro/SKILL.md +1 -76
- package/.agents/skills/context-engineering-pro/SKILL.md +5 -73
- package/.agents/skills/create-design-md/SKILL.md +1 -76
- package/.agents/skills/critique/SKILL.md +1 -76
- package/.agents/skills/csharp-developer/SKILL.md +1 -76
- package/.agents/skills/data-validation-schemas/SKILL.md +1 -76
- package/.agents/skills/database-design/SKILL.md +1 -76
- package/.agents/skills/delight/SKILL.md +1 -76
- package/.agents/skills/deployment-procedures/SKILL.md +1 -76
- package/.agents/skills/design-lab/SKILL.md +1 -76
- package/.agents/skills/devops-engineer/SKILL.md +1 -76
- package/.agents/skills/devops-incident-responder/SKILL.md +1 -76
- package/.agents/skills/diagnosing-bugs/SKILL.md +1 -76
- package/.agents/skills/distill/SKILL.md +1 -76
- package/.agents/skills/documentation-templates/SKILL.md +1 -76
- package/.agents/skills/domain-modeling/SKILL.md +1 -76
- package/.agents/skills/duckdb-analytical-sql/SKILL.md +1 -76
- package/.agents/skills/edge-ai-mobile/SKILL.md +1 -76
- package/.agents/skills/edge-computing/SKILL.md +1 -76
- package/.agents/skills/emil-design-eng/SKILL.md +1 -76
- package/.agents/skills/error-resilience/SKILL.md +1 -76
- package/.agents/skills/expo-router-v4/SKILL.md +1 -76
- package/.agents/skills/extract-design-system/SKILL.md +1 -76
- package/.agents/skills/fabel-protocol/SKILL.md +3 -73
- package/.agents/skills/fixing-accessibility/SKILL.md +1 -76
- package/.agents/skills/fixing-metadata/SKILL.md +1 -76
- package/.agents/skills/fixing-motion-performance/SKILL.md +1 -76
- package/.agents/skills/framer-motion-expert/SKILL.md +1 -76
- package/.agents/skills/frontend-design/SKILL.md +1 -76
- package/.agents/skills/frontend-security-expert/SKILL.md +1 -76
- package/.agents/skills/game-design-expert/SKILL.md +1 -76
- package/.agents/skills/game-engineering-expert/SKILL.md +1 -76
- package/.agents/skills/generative-ui-expert/SKILL.md +1 -76
- package/.agents/skills/geo-fundamentals/SKILL.md +1 -76
- package/.agents/skills/git-pro/SKILL.md +1 -76
- package/.agents/skills/github-operations/SKILL.md +1 -76
- package/.agents/skills/gpt-taste/SKILL.md +1 -76
- package/.agents/skills/graph-engineering/SKILL.md +28 -0
- package/.agents/skills/gsap-core/SKILL.md +1 -76
- package/.agents/skills/gsap-frameworks/SKILL.md +1 -76
- package/.agents/skills/gsap-performance/SKILL.md +1 -76
- package/.agents/skills/gsap-plugins/SKILL.md +1 -76
- package/.agents/skills/gsap-react/SKILL.md +1 -76
- package/.agents/skills/gsap-scrolltrigger/SKILL.md +1 -76
- package/.agents/skills/gsap-timeline/SKILL.md +1 -76
- package/.agents/skills/gsap-utils/SKILL.md +1 -76
- package/.agents/skills/harden/SKILL.md +1 -76
- package/.agents/skills/harness-protocol/SKILL.md +6 -73
- package/.agents/skills/hf-cli/SKILL.md +239 -0
- package/.agents/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
- package/.agents/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
- package/.agents/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
- package/.agents/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
- package/.agents/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
- package/.agents/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
- package/.agents/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
- package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
- package/.agents/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
- package/.agents/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
- package/.agents/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
- package/.agents/skills/hf-mem/SKILL.md +79 -0
- package/.agents/skills/huggingface-best/SKILL.md +134 -0
- package/.agents/skills/huggingface-community-evals/SKILL.md +207 -0
- package/.agents/skills/huggingface-community-evals/examples/.env.example +3 -0
- package/.agents/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/.agents/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/.agents/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/.agents/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/.agents/skills/huggingface-datasets/SKILL.md +107 -0
- package/.agents/skills/huggingface-gradio/SKILL.md +298 -0
- package/.agents/skills/huggingface-gradio/examples.md +613 -0
- package/.agents/skills/huggingface-llm-trainer/SKILL.md +738 -0
- package/.agents/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
- package/.agents/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
- package/.agents/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
- package/.agents/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
- package/.agents/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
- package/.agents/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
- package/.agents/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
- package/.agents/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
- package/.agents/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
- package/.agents/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
- package/.agents/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
- package/.agents/skills/huggingface-local-models/SKILL.md +113 -0
- package/.agents/skills/huggingface-local-models/references/hardware.md +38 -0
- package/.agents/skills/huggingface-local-models/references/hub-discovery.md +178 -0
- package/.agents/skills/huggingface-local-models/references/quantization.md +256 -0
- package/.agents/skills/huggingface-lora-space-builder/SKILL.md +394 -0
- package/.agents/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
- package/.agents/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
- package/.agents/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
- package/.agents/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
- package/.agents/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
- package/.agents/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
- package/.agents/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
- package/.agents/skills/huggingface-paper-publisher/SKILL.md +624 -0
- package/.agents/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
- package/.agents/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
- package/.agents/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
- package/.agents/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
- package/.agents/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
- package/.agents/skills/huggingface-paper-publisher/templates/modern.md +319 -0
- package/.agents/skills/huggingface-paper-publisher/templates/standard.md +201 -0
- package/.agents/skills/huggingface-papers/SKILL.md +239 -0
- package/.agents/skills/huggingface-spaces/README.md +9 -0
- package/.agents/skills/huggingface-spaces/SKILL.md +242 -0
- package/.agents/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
- package/.agents/skills/huggingface-spaces/references/3d-generation.md +98 -0
- package/.agents/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
- package/.agents/skills/huggingface-spaces/references/3d-models.md +227 -0
- package/.agents/skills/huggingface-spaces/references/3d-outputs.md +114 -0
- package/.agents/skills/huggingface-spaces/references/buckets.md +89 -0
- package/.agents/skills/huggingface-spaces/references/debugging.md +236 -0
- package/.agents/skills/huggingface-spaces/references/gradio.md +200 -0
- package/.agents/skills/huggingface-spaces/references/grants.md +63 -0
- package/.agents/skills/huggingface-spaces/references/inference-providers.md +97 -0
- package/.agents/skills/huggingface-spaces/references/known-errors.md +232 -0
- package/.agents/skills/huggingface-spaces/references/requirements.md +169 -0
- package/.agents/skills/huggingface-spaces/references/zerogpu.md +349 -0
- package/.agents/skills/huggingface-tool-builder/SKILL.md +120 -0
- package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
- package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
- package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
- package/.agents/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
- package/.agents/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
- package/.agents/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
- package/.agents/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
- package/.agents/skills/huggingface-trackio/SKILL.md +142 -0
- package/.agents/skills/huggingface-trackio/references/alerts.md +196 -0
- package/.agents/skills/huggingface-trackio/references/logging_metrics.md +212 -0
- package/.agents/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
- package/.agents/skills/huggingface-vision-trainer/SKILL.md +593 -0
- package/.agents/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
- package/.agents/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
- package/.agents/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
- package/.agents/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
- package/.agents/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
- package/.agents/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
- package/.agents/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
- package/.agents/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
- package/.agents/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
- package/.agents/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
- package/.agents/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
- package/.agents/skills/huggingface-zerogpu/SKILL.md +289 -0
- package/.agents/skills/huggingface-zerogpu/references/concurrency.md +79 -0
- package/.agents/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
- package/.agents/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
- package/.agents/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
- package/.agents/skills/human-gate-negotiation/SKILL.md +30 -0
- package/.agents/skills/i18n-localization/SKILL.md +1 -76
- package/.agents/skills/impeccable/SKILL.md +1 -76
- package/.agents/skills/improve-codebase-architecture/SKILL.md +1 -76
- package/.agents/skills/improve-ui/SKILL.md +1 -76
- package/.agents/skills/intelligent-routing/SKILL.md +9 -89
- package/.agents/skills/knowledge-graph/SKILL.md +1 -76
- package/.agents/skills/landing-page/SKILL.md +1 -76
- package/.agents/skills/lint-and-validate/SKILL.md +1 -76
- package/.agents/skills/llm-engineering/SKILL.md +1 -76
- package/.agents/skills/local-first/SKILL.md +1 -76
- package/.agents/skills/local-first-architecture/SKILL.md +1 -76
- package/.agents/skills/lottie-animation/SKILL.md +1 -76
- package/.agents/skills/marquee-loop/SKILL.md +1 -76
- package/.agents/skills/masked-reveal/SKILL.md +1 -76
- package/.agents/skills/mcp-builder/SKILL.md +1 -76
- package/.agents/skills/micro-interaction/SKILL.md +1 -76
- package/.agents/skills/mobile-design/SKILL.md +1 -76
- package/.agents/skills/monorepo-management/SKILL.md +1 -76
- package/.agents/skills/morphing-icons/SKILL.md +1 -76
- package/.agents/skills/motion-engineering/SKILL.md +1 -76
- package/.agents/skills/nextjs-react-expert/SKILL.md +1 -76
- package/.agents/skills/nodejs-best-practices/SKILL.md +1 -76
- package/.agents/skills/observability/SKILL.md +1 -76
- package/.agents/skills/opentelemetry-observability/SKILL.md +1 -76
- package/.agents/skills/page-transition-animation/SKILL.md +1 -76
- package/.agents/skills/parallel-agents/SKILL.md +1 -76
- package/.agents/skills/performance-profiling/SKILL.md +1 -76
- package/.agents/skills/plan-writing/SKILL.md +1 -76
- package/.agents/skills/platform-engineer/SKILL.md +1 -76
- package/.agents/skills/platform-engineering-opentofu/SKILL.md +1 -76
- package/.agents/skills/playwright-ai-e2e/SKILL.md +1 -76
- package/.agents/skills/playwright-best-practices/SKILL.md +1 -76
- package/.agents/skills/polish/SKILL.md +1 -76
- package/.agents/skills/powershell-windows/SKILL.md +1 -76
- package/.agents/skills/pricing-page/SKILL.md +1 -76
- package/.agents/skills/product-aware-heuristics/SKILL.md +1 -76
- package/.agents/skills/progressive-blur/SKILL.md +1 -76
- package/.agents/skills/project-idioms/SKILL.md +1 -76
- package/.agents/skills/property-based-testing/SKILL.md +1 -76
- package/.agents/skills/python-patterns/SKILL.md +1 -76
- package/.agents/skills/python-pro/SKILL.md +1 -76
- package/.agents/skills/quieter/SKILL.md +1 -76
- package/.agents/skills/react-doctor/SKILL.md +1 -76
- package/.agents/skills/react-specialist/SKILL.md +1 -76
- package/.agents/skills/readme-builder/SKILL.md +1 -76
- package/.agents/skills/realtime-patterns/SKILL.md +1 -76
- package/.agents/skills/red-team-tactics/SKILL.md +1 -76
- package/.agents/skills/redesign-skill/SKILL.md +1 -76
- package/.agents/skills/review-animations/SKILL.md +1 -76
- package/.agents/skills/rust-pro/SKILL.md +1 -76
- package/.agents/skills/semantic-filesystem-navigation/SKILL.md +24 -0
- package/.agents/skills/seo-fundamentals/SKILL.md +1 -76
- package/.agents/skills/server-management/SKILL.md +1 -76
- package/.agents/skills/session-log-interrogation/SKILL.md +29 -0
- package/.agents/skills/shadcn-ui-expert/SKILL.md +1 -76
- package/.agents/skills/shape/SKILL.md +1 -76
- package/.agents/skills/skill-creator/SKILL.md +124 -90
- package/.agents/skills/soft-skill/SKILL.md +1 -76
- package/.agents/skills/sounds-on-the-web/SKILL.md +1 -76
- package/.agents/skills/sql-pro/SKILL.md +1 -76
- package/.agents/skills/subagent-driven-development/SKILL.md +32 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +1 -76
- package/.agents/skills/svg-animation/SKILL.md +1 -76
- package/.agents/skills/swiftui-expert/SKILL.md +1 -76
- package/.agents/skills/swiss-design/SKILL.md +1 -76
- package/.agents/skills/system-design-pro/SKILL.md +1 -76
- package/.agents/skills/systematic-debugging/SKILL.md +3 -73
- package/.agents/skills/tailwind-patterns/SKILL.md +1 -76
- package/.agents/skills/taste-skill/SKILL.md +1 -76
- package/.agents/skills/tdd-workflow/SKILL.md +1 -76
- package/.agents/skills/test-result-analyzer/SKILL.md +1 -76
- package/.agents/skills/testing-patterns/SKILL.md +1 -76
- package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +1 -76
- package/.agents/skills/thinking-protocol/SKILL.md +1 -78
- package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +1 -76
- package/.agents/skills/train-sentence-transformers/SKILL.md +109 -0
- package/.agents/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
- package/.agents/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
- package/.agents/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
- package/.agents/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
- package/.agents/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
- package/.agents/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
- package/.agents/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
- package/.agents/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
- package/.agents/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
- package/.agents/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
- package/.agents/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
- package/.agents/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
- package/.agents/skills/train-sentence-transformers/references/model_architectures.md +178 -0
- package/.agents/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
- package/.agents/skills/train-sentence-transformers/references/training_args.md +270 -0
- package/.agents/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
- package/.agents/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
- package/.agents/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
- package/.agents/skills/transformers-js/SKILL.md +692 -0
- package/.agents/skills/transformers-js/references/CACHE.md +339 -0
- package/.agents/skills/transformers-js/references/CONFIGURATION.md +438 -0
- package/.agents/skills/transformers-js/references/EXAMPLES.md +620 -0
- package/.agents/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
- package/.agents/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
- package/.agents/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
- package/.agents/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
- package/.agents/skills/transitions-dev/SKILL.md +1 -76
- package/.agents/skills/trend-researcher/SKILL.md +1 -76
- package/.agents/skills/tribunal-instincts-memory/SKILL.md +31 -0
- package/.agents/skills/trl-training/SKILL.md +318 -0
- package/.agents/skills/typescript-advanced/SKILL.md +1 -76
- package/.agents/skills/typeset/SKILL.md +1 -76
- package/.agents/skills/ui-reasoning-engine/SKILL.md +1 -76
- package/.agents/skills/ui-skill-packs/SKILL.md +1 -76
- package/.agents/skills/ui-skills-root/SKILL.md +1 -76
- package/.agents/skills/ui-ux-pro-max/SKILL.md +1 -76
- package/.agents/skills/ui-ux-researcher/SKILL.md +1 -76
- package/.agents/skills/vector-search-pgvector/SKILL.md +1 -76
- package/.agents/skills/verification-before-completion/SKILL.md +1 -76
- package/.agents/skills/vue-expert/SKILL.md +1 -76
- package/.agents/skills/vulnerability-scanner/SKILL.md +1 -76
- package/.agents/skills/web-accessibility-auditor/SKILL.md +1 -76
- package/.agents/skills/web-design-guidelines/SKILL.md +1 -76
- package/.agents/skills/web-quality-audit/SKILL.md +1 -76
- package/.agents/skills/webapp-testing/SKILL.md +1 -76
- package/.agents/skills/webgpu-performance/SKILL.md +1 -76
- package/.agents/skills/whimsy-injector/SKILL.md +1 -76
- package/.agents/skills/workflow-optimizer/SKILL.md +1 -76
- package/.agents/skills/zero-trust-passkeys/SKILL.md +1 -76
- package/CONTRIBUTING.md +2 -2
- package/README.md +242 -542
- package/bin/adapter-install.js +263 -263
- package/bin/mcp-server.js +72 -47
- package/bin/wrapper.js +10 -1
- package/dist/commands/init.js +25 -11
- package/dist/tui/banner.js +1 -1
- package/gemini-extension.json +1 -1
- package/mcp_config.json +1 -1
- package/package.json +13 -10
- package/plugin.json +1 -1
- package/scripts/context_compiler.js +49 -0
- package/scripts/skill_enhancement_engine.js +11 -37
- package/scripts/telemetry_gc.js +3 -1
- package/scripts/validate-payload.js +1 -6
- package/skills/12-principles-of-animation/SKILL.md +1 -76
- package/skills/60fps-animation/SKILL.md +1 -76
- package/skills/accessible-animation/SKILL.md +1 -76
- package/skills/adapt/SKILL.md +1 -76
- package/skills/advanced-rag-pipelines/SKILL.md +1 -76
- package/skills/agent-organizer/SKILL.md +1 -76
- package/skills/agent-syscall-guidelines/SKILL.md +25 -0
- package/skills/agentic-patterns/SKILL.md +1 -76
- package/skills/agentic-workflows-2026/SKILL.md +6 -73
- package/skills/agentshield-security/SKILL.md +26 -0
- package/skills/ai-app-hardening/SKILL.md +1 -76
- package/skills/ai-prompt-injection-defense/SKILL.md +1 -76
- package/skills/animation-on-scroll/SKILL.md +1 -76
- package/skills/animation-systems/SKILL.md +1 -76
- package/skills/antfu-conventions/SKILL.md +0 -75
- package/skills/api-patterns/SKILL.md +1 -76
- package/skills/api-security-auditor/SKILL.md +1 -76
- package/skills/app-builder/SKILL.md +1 -76
- package/skills/appflow-wireframe/SKILL.md +1 -76
- package/skills/apple-design/SKILL.md +1 -76
- package/skills/architecture/SKILL.md +1 -76
- package/skills/audit-and-fix/SKILL.md +41 -77
- package/skills/authentication-best-practices/SKILL.md +1 -76
- package/skills/backend-security-expert/SKILL.md +1 -76
- package/skills/baseline-ui/SKILL.md +1 -76
- package/skills/bash-linux/SKILL.md +1 -76
- package/skills/behavioral-modes/SKILL.md +1 -76
- package/skills/better-colors/SKILL.md +1 -76
- package/skills/better-typography/SKILL.md +1 -76
- package/skills/better-ui/SKILL.md +1 -76
- package/skills/bolder/SKILL.md +1 -76
- package/skills/brainstorming/SKILL.md +1 -76
- package/skills/browser-audit/SKILL.md +1 -76
- package/skills/browser-native-ai/SKILL.md +1 -76
- package/skills/build-primitive/SKILL.md +1 -76
- package/skills/building-native-ui/SKILL.md +1 -76
- package/skills/cicd-pro/SKILL.md +1 -76
- package/skills/clarify/SKILL.md +1 -76
- package/skills/clean-code/SKILL.md +1 -76
- package/skills/cloud-architect/SKILL.md +1 -76
- package/skills/cobejs/SKILL.md +1 -76
- package/skills/code-review-checklist/SKILL.md +1 -76
- package/skills/codebase-design/SKILL.md +1 -76
- package/skills/colorize/SKILL.md +1 -76
- package/skills/compact-landing/SKILL.md +1 -76
- package/skills/company-logos/SKILL.md +1 -76
- package/skills/config-validator/SKILL.md +1 -76
- package/skills/containerization-pro/SKILL.md +1 -76
- package/skills/context-engineering-pro/SKILL.md +5 -73
- package/skills/create-design-md/SKILL.md +1 -76
- package/skills/critique/SKILL.md +1 -76
- package/skills/csharp-developer/SKILL.md +1 -76
- package/skills/data-validation-schemas/SKILL.md +1 -76
- package/skills/database-design/SKILL.md +1 -76
- package/skills/delight/SKILL.md +1 -76
- package/skills/deployment-procedures/SKILL.md +1 -76
- package/skills/design-lab/SKILL.md +1 -76
- package/skills/devops-engineer/SKILL.md +1 -76
- package/skills/devops-incident-responder/SKILL.md +1 -76
- package/skills/diagnosing-bugs/SKILL.md +1 -76
- package/skills/distill/SKILL.md +1 -76
- package/skills/documentation-templates/SKILL.md +1 -76
- package/skills/domain-modeling/SKILL.md +1 -76
- package/skills/duckdb-analytical-sql/SKILL.md +1 -76
- package/skills/edge-ai-mobile/SKILL.md +1 -76
- package/skills/edge-computing/SKILL.md +1 -76
- package/skills/emil-design-eng/SKILL.md +1 -76
- package/skills/error-resilience/SKILL.md +1 -76
- package/skills/expo-router-v4/SKILL.md +1 -76
- package/skills/extract-design-system/SKILL.md +1 -76
- package/skills/fabel-protocol/SKILL.md +3 -73
- package/skills/fixing-accessibility/SKILL.md +1 -76
- package/skills/fixing-metadata/SKILL.md +1 -76
- package/skills/fixing-motion-performance/SKILL.md +1 -76
- package/skills/framer-motion-expert/SKILL.md +1 -76
- package/skills/frontend-design/SKILL.md +1 -76
- package/skills/frontend-security-expert/SKILL.md +1 -76
- package/skills/game-design-expert/SKILL.md +1 -76
- package/skills/game-engineering-expert/SKILL.md +1 -76
- package/skills/generative-ui-expert/SKILL.md +1 -76
- package/skills/geo-fundamentals/SKILL.md +1 -76
- package/skills/git-pro/SKILL.md +1 -76
- package/skills/github-operations/SKILL.md +1 -76
- package/skills/gpt-taste/SKILL.md +1 -76
- package/skills/graph-engineering/SKILL.md +28 -0
- package/skills/gsap-core/SKILL.md +1 -76
- package/skills/gsap-frameworks/SKILL.md +1 -76
- package/skills/gsap-performance/SKILL.md +1 -76
- package/skills/gsap-plugins/SKILL.md +1 -76
- package/skills/gsap-react/SKILL.md +1 -76
- package/skills/gsap-scrolltrigger/SKILL.md +1 -76
- package/skills/gsap-timeline/SKILL.md +1 -76
- package/skills/gsap-utils/SKILL.md +1 -76
- package/skills/harden/SKILL.md +1 -76
- package/skills/harness-protocol/SKILL.md +6 -73
- package/skills/hf-cli/SKILL.md +239 -0
- package/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
- package/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
- package/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
- package/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
- package/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
- package/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
- package/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
- package/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
- package/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
- package/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
- package/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
- package/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
- package/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
- package/skills/hf-mem/SKILL.md +79 -0
- package/skills/huggingface-best/SKILL.md +134 -0
- package/skills/huggingface-community-evals/SKILL.md +207 -0
- package/skills/huggingface-community-evals/examples/.env.example +3 -0
- package/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/skills/huggingface-datasets/SKILL.md +107 -0
- package/skills/huggingface-gradio/SKILL.md +298 -0
- package/skills/huggingface-gradio/examples.md +613 -0
- package/skills/huggingface-llm-trainer/SKILL.md +738 -0
- package/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
- package/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
- package/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
- package/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
- package/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
- package/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
- package/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
- package/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
- package/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
- package/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
- package/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
- package/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
- package/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
- package/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
- package/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
- package/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
- package/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
- package/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
- package/skills/huggingface-local-models/SKILL.md +113 -0
- package/skills/huggingface-local-models/references/hardware.md +38 -0
- package/skills/huggingface-local-models/references/hub-discovery.md +178 -0
- package/skills/huggingface-local-models/references/quantization.md +256 -0
- package/skills/huggingface-lora-space-builder/SKILL.md +394 -0
- package/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
- package/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
- package/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
- package/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
- package/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
- package/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
- package/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
- package/skills/huggingface-paper-publisher/SKILL.md +624 -0
- package/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
- package/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
- package/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
- package/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
- package/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
- package/skills/huggingface-paper-publisher/templates/modern.md +319 -0
- package/skills/huggingface-paper-publisher/templates/standard.md +201 -0
- package/skills/huggingface-papers/SKILL.md +239 -0
- package/skills/huggingface-spaces/README.md +9 -0
- package/skills/huggingface-spaces/SKILL.md +242 -0
- package/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
- package/skills/huggingface-spaces/references/3d-generation.md +98 -0
- package/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
- package/skills/huggingface-spaces/references/3d-models.md +227 -0
- package/skills/huggingface-spaces/references/3d-outputs.md +114 -0
- package/skills/huggingface-spaces/references/buckets.md +89 -0
- package/skills/huggingface-spaces/references/debugging.md +236 -0
- package/skills/huggingface-spaces/references/gradio.md +200 -0
- package/skills/huggingface-spaces/references/grants.md +63 -0
- package/skills/huggingface-spaces/references/inference-providers.md +97 -0
- package/skills/huggingface-spaces/references/known-errors.md +232 -0
- package/skills/huggingface-spaces/references/requirements.md +169 -0
- package/skills/huggingface-spaces/references/zerogpu.md +349 -0
- package/skills/huggingface-tool-builder/SKILL.md +120 -0
- package/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
- package/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
- package/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
- package/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
- package/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
- package/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
- package/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
- package/skills/huggingface-trackio/SKILL.md +142 -0
- package/skills/huggingface-trackio/references/alerts.md +196 -0
- package/skills/huggingface-trackio/references/logging_metrics.md +212 -0
- package/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
- package/skills/huggingface-vision-trainer/SKILL.md +593 -0
- package/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
- package/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
- package/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
- package/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
- package/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
- package/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
- package/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
- package/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
- package/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
- package/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
- package/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
- package/skills/huggingface-zerogpu/SKILL.md +289 -0
- package/skills/huggingface-zerogpu/references/concurrency.md +79 -0
- package/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
- package/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
- package/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
- package/skills/human-gate-negotiation/SKILL.md +30 -0
- package/skills/i18n-localization/SKILL.md +1 -76
- package/skills/impeccable/SKILL.md +1 -76
- package/skills/improve-codebase-architecture/SKILL.md +1 -76
- package/skills/improve-ui/SKILL.md +1 -76
- package/skills/intelligent-routing/SKILL.md +9 -89
- package/skills/knowledge-graph/SKILL.md +1 -76
- package/skills/landing-page/SKILL.md +1 -76
- package/skills/lint-and-validate/SKILL.md +1 -76
- package/skills/llm-engineering/SKILL.md +1 -76
- package/skills/local-first/SKILL.md +1 -76
- package/skills/local-first-architecture/SKILL.md +1 -76
- package/skills/lottie-animation/SKILL.md +1 -76
- package/skills/marquee-loop/SKILL.md +1 -76
- package/skills/masked-reveal/SKILL.md +1 -76
- package/skills/mcp-builder/SKILL.md +1 -76
- package/skills/micro-interaction/SKILL.md +1 -76
- package/skills/mobile-design/SKILL.md +1 -76
- package/skills/monorepo-management/SKILL.md +1 -76
- package/skills/morphing-icons/SKILL.md +1 -76
- package/skills/motion-engineering/SKILL.md +1 -76
- package/skills/nextjs-react-expert/SKILL.md +1 -76
- package/skills/nodejs-best-practices/SKILL.md +1 -76
- package/skills/observability/SKILL.md +1 -76
- package/skills/opentelemetry-observability/SKILL.md +1 -76
- package/skills/page-transition-animation/SKILL.md +1 -76
- package/skills/parallel-agents/SKILL.md +1 -76
- package/skills/performance-profiling/SKILL.md +1 -76
- package/skills/plan-writing/SKILL.md +1 -76
- package/skills/platform-engineer/SKILL.md +1 -76
- package/skills/platform-engineering-opentofu/SKILL.md +1 -76
- package/skills/playwright-ai-e2e/SKILL.md +1 -76
- package/skills/playwright-best-practices/SKILL.md +1 -76
- package/skills/polish/SKILL.md +1 -76
- package/skills/powershell-windows/SKILL.md +1 -76
- package/skills/pricing-page/SKILL.md +1 -76
- package/skills/product-aware-heuristics/SKILL.md +1 -76
- package/skills/progressive-blur/SKILL.md +1 -76
- package/skills/project-idioms/SKILL.md +1 -76
- package/skills/property-based-testing/SKILL.md +1 -76
- package/skills/python-patterns/SKILL.md +1 -76
- package/skills/python-pro/SKILL.md +1 -76
- package/skills/quieter/SKILL.md +1 -76
- package/skills/react-doctor/SKILL.md +1 -76
- package/skills/react-specialist/SKILL.md +1 -76
- package/skills/readme-builder/SKILL.md +1 -76
- package/skills/realtime-patterns/SKILL.md +1 -76
- package/skills/red-team-tactics/SKILL.md +1 -76
- package/skills/redesign-skill/SKILL.md +1 -76
- package/skills/review-animations/SKILL.md +1 -76
- package/skills/rust-pro/SKILL.md +1 -76
- package/skills/semantic-filesystem-navigation/SKILL.md +24 -0
- package/skills/seo-fundamentals/SKILL.md +1 -76
- package/skills/server-management/SKILL.md +1 -76
- package/skills/session-log-interrogation/SKILL.md +29 -0
- package/skills/shadcn-ui-expert/SKILL.md +1 -76
- package/skills/shape/SKILL.md +1 -76
- package/skills/skill-creator/SKILL.md +124 -90
- package/skills/soft-skill/SKILL.md +1 -76
- package/skills/sounds-on-the-web/SKILL.md +1 -76
- package/skills/sql-pro/SKILL.md +1 -76
- package/skills/subagent-driven-development/SKILL.md +32 -0
- package/skills/supabase-postgres-best-practices/SKILL.md +1 -76
- package/skills/svg-animation/SKILL.md +1 -76
- package/skills/swiftui-expert/SKILL.md +1 -76
- package/skills/swiss-design/SKILL.md +1 -76
- package/skills/system-design-pro/SKILL.md +1 -76
- package/skills/systematic-debugging/SKILL.md +3 -73
- package/skills/tailwind-patterns/SKILL.md +1 -76
- package/skills/taste-skill/SKILL.md +1 -76
- package/skills/tdd-workflow/SKILL.md +1 -76
- package/skills/test-result-analyzer/SKILL.md +1 -76
- package/skills/testing-patterns/SKILL.md +1 -76
- package/skills/thermo-nuclear-code-quality-review/SKILL.md +1 -76
- package/skills/thinking-protocol/SKILL.md +1 -78
- package/skills/to-spring-or-not-to-spring/SKILL.md +1 -76
- package/skills/train-sentence-transformers/SKILL.md +109 -0
- package/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
- package/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
- package/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
- package/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
- package/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
- package/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
- package/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
- package/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
- package/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
- package/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
- package/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
- package/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
- package/skills/train-sentence-transformers/references/model_architectures.md +178 -0
- package/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
- package/skills/train-sentence-transformers/references/training_args.md +270 -0
- package/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
- package/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
- package/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
- package/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
- package/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
- package/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
- package/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
- package/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
- package/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
- package/skills/transformers-js/SKILL.md +692 -0
- package/skills/transformers-js/references/CACHE.md +339 -0
- package/skills/transformers-js/references/CONFIGURATION.md +438 -0
- package/skills/transformers-js/references/EXAMPLES.md +620 -0
- package/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
- package/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
- package/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
- package/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
- package/skills/transitions-dev/SKILL.md +1 -76
- package/skills/trend-researcher/SKILL.md +1 -76
- package/skills/tribunal-instincts-memory/SKILL.md +31 -0
- package/skills/trl-training/SKILL.md +318 -0
- package/skills/typescript-advanced/SKILL.md +1 -76
- package/skills/typeset/SKILL.md +1 -76
- package/skills/ui-reasoning-engine/SKILL.md +1 -76
- package/skills/ui-skill-packs/SKILL.md +1 -76
- package/skills/ui-skills-root/SKILL.md +1 -76
- package/skills/ui-ux-pro-max/SKILL.md +1 -76
- package/skills/ui-ux-researcher/SKILL.md +1 -76
- package/skills/vector-search-pgvector/SKILL.md +1 -76
- package/skills/verification-before-completion/SKILL.md +1 -76
- package/skills/vue-expert/SKILL.md +1 -76
- package/skills/vulnerability-scanner/SKILL.md +1 -76
- package/skills/web-accessibility-auditor/SKILL.md +1 -76
- package/skills/web-design-guidelines/SKILL.md +1 -76
- package/skills/web-quality-audit/SKILL.md +1 -76
- package/skills/webapp-testing/SKILL.md +1 -76
- package/skills/webgpu-performance/SKILL.md +1 -76
- package/skills/whimsy-injector/SKILL.md +1 -76
- package/skills/workflow-optimizer/SKILL.md +1 -76
- package/skills/zero-trust-passkeys/SKILL.md +1 -76
|
@@ -0,0 +1,710 @@
|
|
|
1
|
+
# /// script
|
|
2
|
+
# dependencies = [
|
|
3
|
+
# "transformers>=5.2.0",
|
|
4
|
+
# "accelerate>=1.1.0",
|
|
5
|
+
# "albumentations >= 1.4.16",
|
|
6
|
+
# "timm",
|
|
7
|
+
# "datasets>=4.0",
|
|
8
|
+
# "torchmetrics",
|
|
9
|
+
# "pycocotools",
|
|
10
|
+
# "trackio",
|
|
11
|
+
# "huggingface_hub",
|
|
12
|
+
# ]
|
|
13
|
+
# ///
|
|
14
|
+
|
|
15
|
+
"""Finetuning any 🤗 Transformers model supported by AutoModelForObjectDetection for object detection leveraging the Trainer API."""
|
|
16
|
+
|
|
17
|
+
import logging
|
|
18
|
+
import math
|
|
19
|
+
import os
|
|
20
|
+
import sys
|
|
21
|
+
from collections.abc import Mapping
|
|
22
|
+
from dataclasses import dataclass, field
|
|
23
|
+
from functools import partial
|
|
24
|
+
from typing import Any
|
|
25
|
+
|
|
26
|
+
import albumentations as A
|
|
27
|
+
import numpy as np
|
|
28
|
+
import torch
|
|
29
|
+
from datasets import load_dataset
|
|
30
|
+
from torchmetrics.detection.mean_ap import MeanAveragePrecision
|
|
31
|
+
|
|
32
|
+
import trackio
|
|
33
|
+
|
|
34
|
+
import transformers
|
|
35
|
+
from transformers import (
|
|
36
|
+
AutoConfig,
|
|
37
|
+
AutoImageProcessor,
|
|
38
|
+
AutoModelForObjectDetection,
|
|
39
|
+
HfArgumentParser,
|
|
40
|
+
Trainer,
|
|
41
|
+
TrainingArguments,
|
|
42
|
+
)
|
|
43
|
+
from transformers.image_processing_utils import BatchFeature
|
|
44
|
+
from transformers.image_transforms import center_to_corners_format
|
|
45
|
+
from transformers.trainer import EvalPrediction
|
|
46
|
+
from transformers.utils import check_min_version
|
|
47
|
+
from transformers.utils.versions import require_version
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
logger = logging.getLogger(__name__)
|
|
51
|
+
|
|
52
|
+
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
|
53
|
+
check_min_version("4.57.0.dev0")
|
|
54
|
+
|
|
55
|
+
require_version("datasets>=2.0.0", "To fix: pip install -r examples/pytorch/object-detection/requirements.txt")
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@dataclass
|
|
59
|
+
class ModelOutput:
|
|
60
|
+
logits: torch.Tensor
|
|
61
|
+
pred_boxes: torch.Tensor
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def format_image_annotations_as_coco(
|
|
65
|
+
image_id: str, categories: list[int], areas: list[float], bboxes: list[tuple[float]]
|
|
66
|
+
) -> dict:
|
|
67
|
+
"""Format one set of image annotations to the COCO format
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
image_id (str): image id. e.g. "0001"
|
|
71
|
+
categories (list[int]): list of categories/class labels corresponding to provided bounding boxes
|
|
72
|
+
areas (list[float]): list of corresponding areas to provided bounding boxes
|
|
73
|
+
bboxes (list[tuple[float]]): list of bounding boxes provided in COCO format
|
|
74
|
+
([center_x, center_y, width, height] in absolute coordinates)
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
dict: {
|
|
78
|
+
"image_id": image id,
|
|
79
|
+
"annotations": list of formatted annotations
|
|
80
|
+
}
|
|
81
|
+
"""
|
|
82
|
+
annotations = []
|
|
83
|
+
for category, area, bbox in zip(categories, areas, bboxes):
|
|
84
|
+
formatted_annotation = {
|
|
85
|
+
"image_id": image_id,
|
|
86
|
+
"category_id": category,
|
|
87
|
+
"iscrowd": 0,
|
|
88
|
+
"area": area,
|
|
89
|
+
"bbox": list(bbox),
|
|
90
|
+
}
|
|
91
|
+
annotations.append(formatted_annotation)
|
|
92
|
+
|
|
93
|
+
return {
|
|
94
|
+
"image_id": image_id,
|
|
95
|
+
"annotations": annotations,
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def detect_bbox_format_from_samples(dataset, image_col="image", objects_col="objects", num_samples=50):
|
|
100
|
+
"""
|
|
101
|
+
Detect whether bboxes are xyxy (Pascal VOC) or xywh (COCO) by checking
|
|
102
|
+
bbox coordinates against image dimensions. The correct format interpretation
|
|
103
|
+
should keep bboxes within image bounds.
|
|
104
|
+
"""
|
|
105
|
+
exceeds_if_xywh = 0
|
|
106
|
+
exceeds_if_xyxy = 0
|
|
107
|
+
total = 0
|
|
108
|
+
|
|
109
|
+
for example in dataset.select(range(min(num_samples, len(dataset)))):
|
|
110
|
+
img_w, img_h = example[image_col].size
|
|
111
|
+
for bbox in example[objects_col]["bbox"]:
|
|
112
|
+
if len(bbox) != 4:
|
|
113
|
+
continue
|
|
114
|
+
a, b, c, d = float(bbox[0]), float(bbox[1]), float(bbox[2]), float(bbox[3])
|
|
115
|
+
total += 1
|
|
116
|
+
|
|
117
|
+
# If 3rd < 1st or 4th < 2nd, can't be xyxy (x_max must exceed x_min)
|
|
118
|
+
if c < a or d < b:
|
|
119
|
+
return "xywh"
|
|
120
|
+
|
|
121
|
+
# xywh: right/bottom edge = origin + size; exceeding image → wrong format
|
|
122
|
+
if a + c > img_w * 1.05:
|
|
123
|
+
exceeds_if_xywh += 1
|
|
124
|
+
if b + d > img_h * 1.05:
|
|
125
|
+
exceeds_if_xywh += 1
|
|
126
|
+
# xyxy: right/bottom edge = coordinate itself
|
|
127
|
+
if c > img_w * 1.05:
|
|
128
|
+
exceeds_if_xyxy += 1
|
|
129
|
+
if d > img_h * 1.05:
|
|
130
|
+
exceeds_if_xyxy += 1
|
|
131
|
+
|
|
132
|
+
if total == 0:
|
|
133
|
+
return "xywh"
|
|
134
|
+
|
|
135
|
+
fmt = "xyxy" if exceeds_if_xywh > exceeds_if_xyxy else "xywh"
|
|
136
|
+
logger.info(
|
|
137
|
+
f"Detected bbox format: {fmt} (checked {total} bboxes from {min(num_samples, len(dataset))} images)"
|
|
138
|
+
)
|
|
139
|
+
return fmt
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def sanitize_dataset(dataset, bbox_format="xywh", image_col="image", objects_col="objects"):
|
|
143
|
+
"""
|
|
144
|
+
Validate bboxes, convert xyxy→xywh if needed, clip to image bounds, and remove
|
|
145
|
+
entries with non-finite values, non-positive dimensions, or degenerate area (<1 px).
|
|
146
|
+
Drops images with no remaining valid bboxes.
|
|
147
|
+
"""
|
|
148
|
+
convert_xyxy = bbox_format == "xyxy"
|
|
149
|
+
|
|
150
|
+
def _validate(example):
|
|
151
|
+
img_w, img_h = example[image_col].size
|
|
152
|
+
objects = example[objects_col]
|
|
153
|
+
bboxes = objects["bbox"]
|
|
154
|
+
n = len(bboxes)
|
|
155
|
+
|
|
156
|
+
valid_indices = []
|
|
157
|
+
converted_bboxes = []
|
|
158
|
+
|
|
159
|
+
for i, bbox in enumerate(bboxes):
|
|
160
|
+
if len(bbox) != 4:
|
|
161
|
+
continue
|
|
162
|
+
vals = [float(v) for v in bbox]
|
|
163
|
+
if not all(math.isfinite(v) for v in vals):
|
|
164
|
+
continue
|
|
165
|
+
|
|
166
|
+
if convert_xyxy:
|
|
167
|
+
x_min, y_min, x_max, y_max = vals
|
|
168
|
+
w, h = x_max - x_min, y_max - y_min
|
|
169
|
+
else:
|
|
170
|
+
x_min, y_min, w, h = vals
|
|
171
|
+
|
|
172
|
+
if w <= 0 or h <= 0:
|
|
173
|
+
continue
|
|
174
|
+
|
|
175
|
+
x_min, y_min = max(0.0, x_min), max(0.0, y_min)
|
|
176
|
+
if x_min >= img_w or y_min >= img_h:
|
|
177
|
+
continue
|
|
178
|
+
w = min(w, img_w - x_min)
|
|
179
|
+
h = min(h, img_h - y_min)
|
|
180
|
+
|
|
181
|
+
if w * h < 1.0:
|
|
182
|
+
continue
|
|
183
|
+
|
|
184
|
+
valid_indices.append(i)
|
|
185
|
+
converted_bboxes.append([x_min, y_min, w, h])
|
|
186
|
+
|
|
187
|
+
# Rebuild objects dict, filtering all list-valued fields by valid_indices
|
|
188
|
+
new_objects = {}
|
|
189
|
+
for key, value in objects.items():
|
|
190
|
+
if key == "bbox":
|
|
191
|
+
new_objects["bbox"] = converted_bboxes
|
|
192
|
+
elif isinstance(value, list) and len(value) == n:
|
|
193
|
+
new_objects[key] = [value[j] for j in valid_indices]
|
|
194
|
+
else:
|
|
195
|
+
new_objects[key] = value
|
|
196
|
+
|
|
197
|
+
if "area" not in new_objects or len(new_objects.get("area", [])) != len(converted_bboxes):
|
|
198
|
+
new_objects["area"] = [b[2] * b[3] for b in converted_bboxes]
|
|
199
|
+
|
|
200
|
+
example[objects_col] = new_objects
|
|
201
|
+
return example
|
|
202
|
+
|
|
203
|
+
before = len(dataset)
|
|
204
|
+
dataset = dataset.map(_validate)
|
|
205
|
+
dataset = dataset.filter(lambda ex: len(ex[objects_col]["bbox"]) > 0)
|
|
206
|
+
after = len(dataset)
|
|
207
|
+
if before != after:
|
|
208
|
+
logger.warning(f"Dropped {before - after}/{before} images with no valid bboxes after sanitization")
|
|
209
|
+
logger.info(f"Bbox sanitization complete: {after} images with valid bboxes remain")
|
|
210
|
+
return dataset
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
def convert_bbox_yolo_to_pascal(boxes: torch.Tensor, image_size: tuple[int, int]) -> torch.Tensor:
|
|
214
|
+
"""
|
|
215
|
+
Convert bounding boxes from YOLO format (x_center, y_center, width, height) in range [0, 1]
|
|
216
|
+
to Pascal VOC format (x_min, y_min, x_max, y_max) in absolute coordinates.
|
|
217
|
+
|
|
218
|
+
Args:
|
|
219
|
+
boxes (torch.Tensor): Bounding boxes in YOLO format
|
|
220
|
+
image_size (tuple[int, int]): Image size in format (height, width)
|
|
221
|
+
|
|
222
|
+
Returns:
|
|
223
|
+
torch.Tensor: Bounding boxes in Pascal VOC format (x_min, y_min, x_max, y_max)
|
|
224
|
+
"""
|
|
225
|
+
# convert center to corners format
|
|
226
|
+
boxes = center_to_corners_format(boxes)
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
if isinstance(image_size, torch.Tensor):
|
|
230
|
+
image_size = image_size.tolist()
|
|
231
|
+
elif isinstance(image_size, np.ndarray):
|
|
232
|
+
image_size = image_size.tolist()
|
|
233
|
+
height, width = image_size
|
|
234
|
+
boxes = boxes * torch.tensor([[width, height, width, height]])
|
|
235
|
+
|
|
236
|
+
return boxes
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
def augment_and_transform_batch(
|
|
240
|
+
examples: Mapping[str, Any],
|
|
241
|
+
transform: A.Compose,
|
|
242
|
+
image_processor: AutoImageProcessor,
|
|
243
|
+
return_pixel_mask: bool = False,
|
|
244
|
+
) -> BatchFeature:
|
|
245
|
+
"""Apply augmentations and format annotations in COCO format for object detection task"""
|
|
246
|
+
|
|
247
|
+
images = []
|
|
248
|
+
annotations = []
|
|
249
|
+
image_ids = examples["image_id"] if "image_id" in examples else range(len(examples["image"]))
|
|
250
|
+
for image_id, image, objects in zip(image_ids, examples["image"], examples["objects"]):
|
|
251
|
+
image = np.array(image.convert("RGB"))
|
|
252
|
+
|
|
253
|
+
# Filter invalid bboxes before augmentation (safety net after sanitize_dataset)
|
|
254
|
+
bboxes = objects["bbox"]
|
|
255
|
+
categories = objects["category"]
|
|
256
|
+
areas = objects["area"]
|
|
257
|
+
valid = [
|
|
258
|
+
(b, c, a)
|
|
259
|
+
for b, c, a in zip(bboxes, categories, areas)
|
|
260
|
+
if len(b) == 4 and b[2] > 0 and b[3] > 0 and b[0] >= 0 and b[1] >= 0
|
|
261
|
+
]
|
|
262
|
+
if valid:
|
|
263
|
+
bboxes, categories, areas = zip(*valid)
|
|
264
|
+
else:
|
|
265
|
+
bboxes, categories, areas = [], [], []
|
|
266
|
+
|
|
267
|
+
# apply augmentations
|
|
268
|
+
output = transform(image=image, bboxes=list(bboxes), category=list(categories))
|
|
269
|
+
images.append(output["image"])
|
|
270
|
+
|
|
271
|
+
# format annotations in COCO format (recompute areas from post-augmentation bboxes)
|
|
272
|
+
post_areas = [b[2] * b[3] for b in output["bboxes"]] if output["bboxes"] else []
|
|
273
|
+
formatted_annotations = format_image_annotations_as_coco(
|
|
274
|
+
image_id, output["category"], post_areas, output["bboxes"]
|
|
275
|
+
)
|
|
276
|
+
annotations.append(formatted_annotations)
|
|
277
|
+
|
|
278
|
+
# Apply the image processor transformations: resizing, rescaling, normalization
|
|
279
|
+
result = image_processor(images=images, annotations=annotations, return_tensors="pt")
|
|
280
|
+
|
|
281
|
+
if not return_pixel_mask:
|
|
282
|
+
result.pop("pixel_mask", None)
|
|
283
|
+
|
|
284
|
+
return result
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
def collate_fn(batch: list[BatchFeature]) -> Mapping[str, torch.Tensor | list[Any]]:
|
|
288
|
+
data = {}
|
|
289
|
+
data["pixel_values"] = torch.stack([x["pixel_values"] for x in batch])
|
|
290
|
+
data["labels"] = [x["labels"] for x in batch]
|
|
291
|
+
if "pixel_mask" in batch[0]:
|
|
292
|
+
data["pixel_mask"] = torch.stack([x["pixel_mask"] for x in batch])
|
|
293
|
+
return data
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
@torch.no_grad()
|
|
297
|
+
def compute_metrics(
|
|
298
|
+
evaluation_results: EvalPrediction,
|
|
299
|
+
image_processor: AutoImageProcessor,
|
|
300
|
+
threshold: float = 0.0,
|
|
301
|
+
id2label: Mapping[int, str] | None = None,
|
|
302
|
+
) -> Mapping[str, float]:
|
|
303
|
+
"""
|
|
304
|
+
Compute mean average mAP, mAR and their variants for the object detection task.
|
|
305
|
+
|
|
306
|
+
Args:
|
|
307
|
+
evaluation_results (EvalPrediction): Predictions and targets from evaluation.
|
|
308
|
+
threshold (float, optional): Threshold to filter predicted boxes by confidence. Defaults to 0.0.
|
|
309
|
+
id2label (Optional[dict], optional): Mapping from class id to class name. Defaults to None.
|
|
310
|
+
|
|
311
|
+
Returns:
|
|
312
|
+
Mapping[str, float]: Metrics in a form of dictionary {<metric_name>: <metric_value>}
|
|
313
|
+
"""
|
|
314
|
+
|
|
315
|
+
predictions, targets = evaluation_results.predictions, evaluation_results.label_ids
|
|
316
|
+
|
|
317
|
+
# For metric computation we need to provide:
|
|
318
|
+
# - targets in a form of list of dictionaries with keys "boxes", "labels"
|
|
319
|
+
# - predictions in a form of list of dictionaries with keys "boxes", "scores", "labels"
|
|
320
|
+
|
|
321
|
+
image_sizes = []
|
|
322
|
+
post_processed_targets = []
|
|
323
|
+
post_processed_predictions = []
|
|
324
|
+
|
|
325
|
+
# Collect targets in the required format for metric computation
|
|
326
|
+
for batch in targets:
|
|
327
|
+
# collect image sizes, we will need them for predictions post processing
|
|
328
|
+
batch_image_sizes = torch.tensor([x["orig_size"] for x in batch])
|
|
329
|
+
image_sizes.append(batch_image_sizes)
|
|
330
|
+
# collect targets in the required format for metric computation
|
|
331
|
+
# boxes were converted to YOLO format needed for model training
|
|
332
|
+
# here we will convert them to Pascal VOC format (x_min, y_min, x_max, y_max)
|
|
333
|
+
for image_target in batch:
|
|
334
|
+
boxes = torch.tensor(image_target["boxes"])
|
|
335
|
+
boxes = convert_bbox_yolo_to_pascal(boxes, image_target["orig_size"])
|
|
336
|
+
labels = torch.tensor(image_target["class_labels"])
|
|
337
|
+
post_processed_targets.append({"boxes": boxes, "labels": labels})
|
|
338
|
+
|
|
339
|
+
# Collect predictions in the required format for metric computation,
|
|
340
|
+
# model produce boxes in YOLO format, then image_processor convert them to Pascal VOC format
|
|
341
|
+
for batch, target_sizes in zip(predictions, image_sizes):
|
|
342
|
+
batch_logits, batch_boxes = batch[1], batch[2]
|
|
343
|
+
output = ModelOutput(logits=torch.tensor(batch_logits), pred_boxes=torch.tensor(batch_boxes))
|
|
344
|
+
post_processed_output = image_processor.post_process_object_detection(
|
|
345
|
+
output, threshold=threshold, target_sizes=target_sizes
|
|
346
|
+
)
|
|
347
|
+
post_processed_predictions.extend(post_processed_output)
|
|
348
|
+
|
|
349
|
+
# Compute metrics
|
|
350
|
+
metric = MeanAveragePrecision(box_format="xyxy", class_metrics=True)
|
|
351
|
+
metric.update(post_processed_predictions, post_processed_targets)
|
|
352
|
+
metrics = metric.compute()
|
|
353
|
+
|
|
354
|
+
# Replace list of per class metrics with separate metric for each class
|
|
355
|
+
classes = metrics.pop("classes")
|
|
356
|
+
map_per_class = metrics.pop("map_per_class")
|
|
357
|
+
mar_100_per_class = metrics.pop("mar_100_per_class")
|
|
358
|
+
# Single-class datasets return 0-d scalar tensors; make them iterable
|
|
359
|
+
if classes.dim() == 0:
|
|
360
|
+
classes = classes.unsqueeze(0)
|
|
361
|
+
map_per_class = map_per_class.unsqueeze(0)
|
|
362
|
+
mar_100_per_class = mar_100_per_class.unsqueeze(0)
|
|
363
|
+
for class_id, class_map, class_mar in zip(classes, map_per_class, mar_100_per_class):
|
|
364
|
+
class_name = id2label[class_id.item()] if id2label is not None else class_id.item()
|
|
365
|
+
metrics[f"map_{class_name}"] = class_map
|
|
366
|
+
metrics[f"mar_100_{class_name}"] = class_mar
|
|
367
|
+
|
|
368
|
+
metrics = {k: round(v.item(), 4) for k, v in metrics.items()}
|
|
369
|
+
|
|
370
|
+
return metrics
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
@dataclass
|
|
374
|
+
class DataTrainingArguments:
|
|
375
|
+
"""
|
|
376
|
+
Arguments pertaining to what data we are going to input our model for training and eval.
|
|
377
|
+
Using `HfArgumentParser` we can turn this class into argparse arguments to be able to specify
|
|
378
|
+
them on the command line.
|
|
379
|
+
"""
|
|
380
|
+
|
|
381
|
+
dataset_name: str = field(
|
|
382
|
+
default="cppe-5",
|
|
383
|
+
metadata={
|
|
384
|
+
"help": "Name of a dataset from the hub (could be your own, possibly private dataset hosted on the hub)."
|
|
385
|
+
},
|
|
386
|
+
)
|
|
387
|
+
dataset_config_name: str | None = field(
|
|
388
|
+
default=None, metadata={"help": "The configuration name of the dataset to use (via the datasets library)."}
|
|
389
|
+
)
|
|
390
|
+
train_val_split: float | None = field(
|
|
391
|
+
default=0.15, metadata={"help": "Percent to split off of train for validation."}
|
|
392
|
+
)
|
|
393
|
+
image_square_size: int | None = field(
|
|
394
|
+
default=600,
|
|
395
|
+
metadata={"help": "Image longest size will be resized to this value, then image will be padded to square."},
|
|
396
|
+
)
|
|
397
|
+
max_train_samples: int | None = field(
|
|
398
|
+
default=None,
|
|
399
|
+
metadata={
|
|
400
|
+
"help": (
|
|
401
|
+
"For debugging purposes or quicker training, truncate the number of training examples to this "
|
|
402
|
+
"value if set."
|
|
403
|
+
)
|
|
404
|
+
},
|
|
405
|
+
)
|
|
406
|
+
max_eval_samples: int | None = field(
|
|
407
|
+
default=None,
|
|
408
|
+
metadata={
|
|
409
|
+
"help": (
|
|
410
|
+
"For debugging purposes or quicker training, truncate the number of evaluation examples to this "
|
|
411
|
+
"value if set."
|
|
412
|
+
)
|
|
413
|
+
},
|
|
414
|
+
)
|
|
415
|
+
use_fast: bool | None = field(
|
|
416
|
+
default=True,
|
|
417
|
+
metadata={"help": "Use a fast torchvision-base image processor if it is supported for a given model."},
|
|
418
|
+
)
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
@dataclass
|
|
422
|
+
class ModelArguments:
|
|
423
|
+
"""
|
|
424
|
+
Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.
|
|
425
|
+
"""
|
|
426
|
+
|
|
427
|
+
model_name_or_path: str = field(
|
|
428
|
+
default="facebook/detr-resnet-50",
|
|
429
|
+
metadata={"help": "Path to pretrained model or model identifier from huggingface.co/models"},
|
|
430
|
+
)
|
|
431
|
+
config_name: str | None = field(
|
|
432
|
+
default=None, metadata={"help": "Pretrained config name or path if not the same as model_name"}
|
|
433
|
+
)
|
|
434
|
+
cache_dir: str | None = field(
|
|
435
|
+
default=None, metadata={"help": "Where do you want to store the pretrained models downloaded from s3"}
|
|
436
|
+
)
|
|
437
|
+
model_revision: str = field(
|
|
438
|
+
default="main",
|
|
439
|
+
metadata={"help": "The specific model version to use (can be a branch name, tag name or commit id)."},
|
|
440
|
+
)
|
|
441
|
+
image_processor_name: str = field(default=None, metadata={"help": "Name or path of preprocessor config."})
|
|
442
|
+
ignore_mismatched_sizes: bool = field(
|
|
443
|
+
default=True,
|
|
444
|
+
metadata={
|
|
445
|
+
"help": "Whether or not to raise an error if some of the weights from the checkpoint do not have the same size as the weights of the model (if for instance, you are instantiating a model with 10 labels from a checkpoint with 3 labels)."
|
|
446
|
+
},
|
|
447
|
+
)
|
|
448
|
+
token: str = field(
|
|
449
|
+
default=None,
|
|
450
|
+
metadata={
|
|
451
|
+
"help": (
|
|
452
|
+
"The token to use as HTTP bearer authorization for remote files. If not specified, will use the token "
|
|
453
|
+
"generated when running `hf auth login` (stored in `~/.huggingface`)."
|
|
454
|
+
)
|
|
455
|
+
},
|
|
456
|
+
)
|
|
457
|
+
trust_remote_code: bool = field(
|
|
458
|
+
default=False,
|
|
459
|
+
metadata={
|
|
460
|
+
"help": (
|
|
461
|
+
"Whether to trust the execution of code from datasets/models defined on the Hub."
|
|
462
|
+
" This option should only be set to `True` for repositories you trust and in which you have read the"
|
|
463
|
+
" code, as it will execute code present on the Hub on your local machine."
|
|
464
|
+
)
|
|
465
|
+
},
|
|
466
|
+
)
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
def main():
|
|
470
|
+
parser = HfArgumentParser((ModelArguments, DataTrainingArguments, TrainingArguments))
|
|
471
|
+
if len(sys.argv) == 2 and sys.argv[1].endswith(".json"):
|
|
472
|
+
|
|
473
|
+
model_args, data_args, training_args = parser.parse_json_file(json_file=os.path.abspath(sys.argv[1]))
|
|
474
|
+
else:
|
|
475
|
+
model_args, data_args, training_args = parser.parse_args_into_dataclasses()
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
from huggingface_hub import login
|
|
479
|
+
hf_token = os.environ.get("HF_TOKEN") or os.environ.get("hfjob")
|
|
480
|
+
if hf_token:
|
|
481
|
+
login(token=hf_token)
|
|
482
|
+
training_args.hub_token = hf_token
|
|
483
|
+
logger.info("Logged in to Hugging Face Hub")
|
|
484
|
+
elif training_args.push_to_hub:
|
|
485
|
+
logger.warning("HF_TOKEN not found in environment. Hub push will likely fail.")
|
|
486
|
+
|
|
487
|
+
# Initialize Trackio for real-time experiment tracking
|
|
488
|
+
trackio.init(project=training_args.output_dir, name=training_args.run_name)
|
|
489
|
+
|
|
490
|
+
logging.basicConfig(
|
|
491
|
+
format="%(asctime)s - %(levelname)s - %(name)s - %(message)s",
|
|
492
|
+
datefmt="%m/%d/%Y %H:%M:%S",
|
|
493
|
+
handlers=[logging.StreamHandler(sys.stdout)],
|
|
494
|
+
)
|
|
495
|
+
|
|
496
|
+
if training_args.should_log:
|
|
497
|
+
# The default of training_args.log_level is passive, so we set log level at info here to have that default.
|
|
498
|
+
transformers.utils.logging.set_verbosity_info()
|
|
499
|
+
|
|
500
|
+
log_level = training_args.get_process_log_level()
|
|
501
|
+
logger.setLevel(log_level)
|
|
502
|
+
transformers.utils.logging.set_verbosity(log_level)
|
|
503
|
+
transformers.utils.logging.enable_default_handler()
|
|
504
|
+
transformers.utils.logging.enable_explicit_format()
|
|
505
|
+
|
|
506
|
+
# Log on each process the small summary:
|
|
507
|
+
logger.warning(
|
|
508
|
+
f"Process rank: {training_args.local_process_index}, device: {training_args.device}, n_gpu: {training_args.n_gpu}, "
|
|
509
|
+
+ f"distributed training: {training_args.parallel_mode.value == 'distributed'}, 16-bits training: {training_args.fp16}"
|
|
510
|
+
)
|
|
511
|
+
logger.info(f"Training/evaluation parameters {training_args}")
|
|
512
|
+
|
|
513
|
+
dataset = load_dataset(
|
|
514
|
+
data_args.dataset_name, cache_dir=model_args.cache_dir, trust_remote_code=model_args.trust_remote_code
|
|
515
|
+
)
|
|
516
|
+
|
|
517
|
+
bbox_format = detect_bbox_format_from_samples(dataset["train"])
|
|
518
|
+
if bbox_format == "xyxy":
|
|
519
|
+
logger.info("Converting bboxes from xyxy (Pascal VOC) → xywh (COCO) format across all splits")
|
|
520
|
+
for split_name in list(dataset.keys()):
|
|
521
|
+
dataset[split_name] = sanitize_dataset(dataset[split_name], bbox_format=bbox_format)
|
|
522
|
+
|
|
523
|
+
for split_name in list(dataset.keys()):
|
|
524
|
+
if "image_id" not in dataset[split_name].column_names:
|
|
525
|
+
dataset[split_name] = dataset[split_name].add_column(
|
|
526
|
+
"image_id", list(range(len(dataset[split_name])))
|
|
527
|
+
)
|
|
528
|
+
|
|
529
|
+
dataset["train"] = dataset["train"].shuffle(seed=training_args.seed)
|
|
530
|
+
|
|
531
|
+
data_args.train_val_split = None if "validation" in dataset else data_args.train_val_split
|
|
532
|
+
if isinstance(data_args.train_val_split, float) and data_args.train_val_split > 0.0:
|
|
533
|
+
split = dataset["train"].train_test_split(data_args.train_val_split, seed=training_args.seed)
|
|
534
|
+
dataset["train"] = split["train"]
|
|
535
|
+
dataset["validation"] = split["test"]
|
|
536
|
+
|
|
537
|
+
categories = None
|
|
538
|
+
try:
|
|
539
|
+
if isinstance(dataset["train"].features["objects"], dict):
|
|
540
|
+
cat_feature = dataset["train"].features["objects"]["category"].feature
|
|
541
|
+
else:
|
|
542
|
+
cat_feature = dataset["train"].features["objects"].feature["category"]
|
|
543
|
+
|
|
544
|
+
if hasattr(cat_feature, "names"):
|
|
545
|
+
categories = cat_feature.names
|
|
546
|
+
except (AttributeError, KeyError):
|
|
547
|
+
pass
|
|
548
|
+
|
|
549
|
+
if categories is None:
|
|
550
|
+
# Category is a Value type (not ClassLabel) — scan dataset to discover labels
|
|
551
|
+
logger.info("Category feature is not ClassLabel — scanning dataset to discover category labels...")
|
|
552
|
+
unique_cats = set()
|
|
553
|
+
for example in dataset["train"]:
|
|
554
|
+
cats = example["objects"]["category"]
|
|
555
|
+
if isinstance(cats, list):
|
|
556
|
+
unique_cats.update(cats)
|
|
557
|
+
else:
|
|
558
|
+
unique_cats.add(cats)
|
|
559
|
+
|
|
560
|
+
if all(isinstance(c, int) for c in unique_cats):
|
|
561
|
+
max_cat = max(unique_cats)
|
|
562
|
+
categories = [f"class_{i}" for i in range(max_cat + 1)]
|
|
563
|
+
elif all(isinstance(c, str) for c in unique_cats):
|
|
564
|
+
categories = sorted(unique_cats)
|
|
565
|
+
else:
|
|
566
|
+
categories = [str(c) for c in sorted(unique_cats, key=str)]
|
|
567
|
+
logger.info(f"Discovered {len(categories)} categories: {categories}")
|
|
568
|
+
|
|
569
|
+
id2label = dict(enumerate(categories))
|
|
570
|
+
label2id = {v: k for k, v in id2label.items()}
|
|
571
|
+
|
|
572
|
+
# Remap string categories to integer IDs if needed
|
|
573
|
+
sample_cats = dataset["train"][0]["objects"]["category"]
|
|
574
|
+
if sample_cats and isinstance(sample_cats[0], str):
|
|
575
|
+
logger.info(f"Remapping string categories to integer IDs: {label2id}")
|
|
576
|
+
|
|
577
|
+
def _remap_categories(example):
|
|
578
|
+
objects = example["objects"]
|
|
579
|
+
objects["category"] = [label2id[c] for c in objects["category"]]
|
|
580
|
+
example["objects"] = objects
|
|
581
|
+
return example
|
|
582
|
+
|
|
583
|
+
for split_name in list(dataset.keys()):
|
|
584
|
+
dataset[split_name] = dataset[split_name].map(_remap_categories)
|
|
585
|
+
logger.info("Category remapping complete")
|
|
586
|
+
|
|
587
|
+
if data_args.max_train_samples is not None:
|
|
588
|
+
max_train = min(data_args.max_train_samples, len(dataset["train"]))
|
|
589
|
+
dataset["train"] = dataset["train"].select(range(max_train))
|
|
590
|
+
logger.info(f"Truncated training set to {max_train} samples")
|
|
591
|
+
if data_args.max_eval_samples is not None and "validation" in dataset:
|
|
592
|
+
max_eval = min(data_args.max_eval_samples, len(dataset["validation"]))
|
|
593
|
+
dataset["validation"] = dataset["validation"].select(range(max_eval))
|
|
594
|
+
logger.info(f"Truncated validation set to {max_eval} samples")
|
|
595
|
+
|
|
596
|
+
common_pretrained_args = {
|
|
597
|
+
"cache_dir": model_args.cache_dir,
|
|
598
|
+
"revision": model_args.model_revision,
|
|
599
|
+
"token": model_args.token,
|
|
600
|
+
"trust_remote_code": model_args.trust_remote_code,
|
|
601
|
+
}
|
|
602
|
+
config = AutoConfig.from_pretrained(
|
|
603
|
+
model_args.config_name or model_args.model_name_or_path,
|
|
604
|
+
label2id=label2id,
|
|
605
|
+
id2label=id2label,
|
|
606
|
+
**common_pretrained_args,
|
|
607
|
+
)
|
|
608
|
+
model = AutoModelForObjectDetection.from_pretrained(
|
|
609
|
+
model_args.model_name_or_path,
|
|
610
|
+
config=config,
|
|
611
|
+
ignore_mismatched_sizes=model_args.ignore_mismatched_sizes,
|
|
612
|
+
**common_pretrained_args,
|
|
613
|
+
)
|
|
614
|
+
image_processor = AutoImageProcessor.from_pretrained(
|
|
615
|
+
model_args.image_processor_name or model_args.model_name_or_path,
|
|
616
|
+
do_resize=True,
|
|
617
|
+
size={"max_height": data_args.image_square_size, "max_width": data_args.image_square_size},
|
|
618
|
+
do_pad=True,
|
|
619
|
+
pad_size={"height": data_args.image_square_size, "width": data_args.image_square_size},
|
|
620
|
+
use_fast=data_args.use_fast,
|
|
621
|
+
**common_pretrained_args,
|
|
622
|
+
)
|
|
623
|
+
|
|
624
|
+
max_size = data_args.image_square_size
|
|
625
|
+
train_augment_and_transform = A.Compose(
|
|
626
|
+
[
|
|
627
|
+
A.Compose(
|
|
628
|
+
[
|
|
629
|
+
A.SmallestMaxSize(max_size=max_size, p=1.0),
|
|
630
|
+
A.RandomSizedBBoxSafeCrop(height=max_size, width=max_size, p=1.0),
|
|
631
|
+
],
|
|
632
|
+
p=0.2,
|
|
633
|
+
),
|
|
634
|
+
A.OneOf(
|
|
635
|
+
[
|
|
636
|
+
A.Blur(blur_limit=7, p=0.5),
|
|
637
|
+
A.MotionBlur(blur_limit=7, p=0.5),
|
|
638
|
+
A.Defocus(radius=(1, 5), alias_blur=(0.1, 0.25), p=0.1),
|
|
639
|
+
],
|
|
640
|
+
p=0.1,
|
|
641
|
+
),
|
|
642
|
+
A.Perspective(p=0.1),
|
|
643
|
+
A.HorizontalFlip(p=0.5),
|
|
644
|
+
A.RandomBrightnessContrast(p=0.5),
|
|
645
|
+
A.HueSaturationValue(p=0.1),
|
|
646
|
+
],
|
|
647
|
+
bbox_params=A.BboxParams(format="coco", label_fields=["category"], clip=True, min_area=25),
|
|
648
|
+
)
|
|
649
|
+
validation_transform = A.Compose(
|
|
650
|
+
[A.NoOp()],
|
|
651
|
+
bbox_params=A.BboxParams(format="coco", label_fields=["category"], clip=True),
|
|
652
|
+
)
|
|
653
|
+
|
|
654
|
+
train_transform_batch = partial(
|
|
655
|
+
augment_and_transform_batch, transform=train_augment_and_transform, image_processor=image_processor
|
|
656
|
+
)
|
|
657
|
+
validation_transform_batch = partial(
|
|
658
|
+
augment_and_transform_batch, transform=validation_transform, image_processor=image_processor
|
|
659
|
+
)
|
|
660
|
+
|
|
661
|
+
dataset["train"] = dataset["train"].with_transform(train_transform_batch)
|
|
662
|
+
dataset["validation"] = dataset["validation"].with_transform(validation_transform_batch)
|
|
663
|
+
if "test" in dataset:
|
|
664
|
+
dataset["test"] = dataset["test"].with_transform(validation_transform_batch)
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
eval_compute_metrics_fn = partial(
|
|
668
|
+
compute_metrics, image_processor=image_processor, id2label=id2label, threshold=0.0
|
|
669
|
+
)
|
|
670
|
+
|
|
671
|
+
trainer = Trainer(
|
|
672
|
+
model=model,
|
|
673
|
+
args=training_args,
|
|
674
|
+
train_dataset=dataset["train"] if training_args.do_train else None,
|
|
675
|
+
eval_dataset=dataset["validation"] if training_args.do_eval else None,
|
|
676
|
+
processing_class=image_processor,
|
|
677
|
+
data_collator=collate_fn,
|
|
678
|
+
compute_metrics=eval_compute_metrics_fn,
|
|
679
|
+
)
|
|
680
|
+
|
|
681
|
+
# Training
|
|
682
|
+
if training_args.do_train:
|
|
683
|
+
train_result = trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)
|
|
684
|
+
trainer.save_model()
|
|
685
|
+
trainer.log_metrics("train", train_result.metrics)
|
|
686
|
+
trainer.save_metrics("train", train_result.metrics)
|
|
687
|
+
trainer.save_state()
|
|
688
|
+
|
|
689
|
+
if training_args.do_eval:
|
|
690
|
+
test_dataset = dataset["test"] if "test" in dataset else dataset["validation"]
|
|
691
|
+
test_prefix = "test" if "test" in dataset else "eval"
|
|
692
|
+
metrics = trainer.evaluate(eval_dataset=test_dataset, metric_key_prefix=test_prefix)
|
|
693
|
+
trainer.log_metrics(test_prefix, metrics)
|
|
694
|
+
trainer.save_metrics(test_prefix, metrics)
|
|
695
|
+
|
|
696
|
+
trackio.finish()
|
|
697
|
+
|
|
698
|
+
kwargs = {
|
|
699
|
+
"finetuned_from": model_args.model_name_or_path,
|
|
700
|
+
"dataset": data_args.dataset_name,
|
|
701
|
+
"tags": ["object-detection", "vision"],
|
|
702
|
+
}
|
|
703
|
+
if training_args.push_to_hub:
|
|
704
|
+
trainer.push_to_hub(**kwargs)
|
|
705
|
+
else:
|
|
706
|
+
trainer.create_model_card(**kwargs)
|
|
707
|
+
|
|
708
|
+
|
|
709
|
+
if __name__ == "__main__":
|
|
710
|
+
main()
|