diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 6756a0edf..b3f14e521 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -66,7 +66,6 @@ jobs:
env:
PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
INDEXNOW_KEY: ${{ secrets.INDEXNOW_KEY_DOCS }}
- WEGLOT_KEY: ${{ secrets.WEGLOT_KEY_DOCS }}
run: |
python docs/build_docs.py
git config --global user.name "Glenn Jocher"
diff --git a/docs/build_docs.py b/docs/build_docs.py
index 33164fd4f..54b81c49e 100644
--- a/docs/build_docs.py
+++ b/docs/build_docs.py
@@ -33,24 +33,36 @@ from tqdm import tqdm
DOCS = Path(__file__).parent.resolve()
SITE = DOCS.parent / "site"
-LANGUAGES = False
-def build_docs():
+def build_docs(use_languages=False, clone_repos=True):
"""Build docs using mkdocs."""
if SITE.exists():
print(f"Removing existing {SITE}")
shutil.rmtree(SITE)
+ # Get hub-sdk repo
+ if clone_repos:
+ repo = "https://github.com/ultralytics/hub-sdk"
+ local_dir = DOCS.parent / Path(repo).name
+ if not local_dir.exists():
+ os.system(f"git clone {repo} {local_dir}")
+ os.system(f"git -C {local_dir} pull") # update repo
+ shutil.rmtree(DOCS / "en/hub/sdk")
+ shutil.copytree(local_dir / "docs", DOCS / "en/hub/sdk")
+ shutil.rmtree(DOCS / "en/hub/sdk/reference") # temporarily delete reference until we find a solution for this
+ print(f"Cloned/Updated {repo} in {local_dir}")
+
# Build the main documentation
print(f"Building docs from {DOCS}")
subprocess.run(f"mkdocs build -f {DOCS}/mkdocs.yml", check=True, shell=True)
# Build other localized documentations
- if LANGUAGES:
+ if use_languages:
for file in DOCS.glob("mkdocs_*.yml"):
print(f"Building MkDocs site with configuration file: {file}")
subprocess.run(f"mkdocs build -f {file}", check=True, shell=True)
+ update_html_links() # update .md in href links
print(f"Site built at {SITE}")
@@ -104,21 +116,13 @@ def update_page_title(file_path: Path, new_title: str):
file.write(updated_content)
-def update_html_head(key=""):
+def update_html_head(script=""):
"""Update the HTML head section of each file."""
html_files = Path(SITE).rglob("*.html")
for html_file in tqdm(html_files, desc="Processing HTML files"):
with html_file.open("r", encoding="utf-8") as file:
html_content = file.read()
- script = f"""
-
-
-"""
if script in html_content: # script already in HTML file
return
@@ -137,13 +141,8 @@ def main():
# Update titles
update_page_title(SITE / "404.html", new_title="Ultralytics Docs - Not Found")
- # Update .md in href links
- if LANGUAGES:
- update_html_links()
-
# Update HTML file head section
- if not LANGUAGES and False:
- update_html_head(key=os.environ.get("WEGLOT_KEY"))
+ # update_html_head("")
# Show command to serve built website
print('Serve site at http://localhost:8000 with "python -m http.server --directory site"')
diff --git a/docs/coming_soon_template.md b/docs/coming_soon_template.md
new file mode 100644
index 000000000..f8d78022e
--- /dev/null
+++ b/docs/coming_soon_template.md
@@ -0,0 +1,34 @@
+---
+description: Discover what's next for Ultralytics with our under-construction page, previewing new, groundbreaking AI and ML features coming soon.
+keywords: Ultralytics, coming soon, under construction, new features, AI updates, ML advancements, YOLO, technology preview
+---
+
+# Under Construction 🏗️🌟
+
+Welcome to the Ultralytics "Under Construction" page! Here, we're hard at work developing the next generation of AI and ML innovations. This page serves as a teaser for the exciting updates and new features we're eager to share with you!
+
+## Exciting New Features on the Way 🎉
+
+- **Innovative Breakthroughs:** Get ready for advanced features and services that will transform your AI and ML experience.
+- **New Horizons:** Anticipate novel products that redefine AI and ML capabilities.
+- **Enhanced Services:** We're upgrading our services for greater efficiency and user-friendliness.
+
+## Stay Updated 🚧
+
+This placeholder page is your first stop for upcoming developments. Keep an eye out for:
+
+- **Newsletter:** Subscribe [here](https://ultralytics.com/#newsletter) for the latest news.
+- **Social Media:** Follow us [here](https://www.linkedin.com/company/ultralytics) for updates and teasers.
+- **Blog:** Visit our [blog](https://ultralytics.com/blog) for detailed insights.
+
+## We Value Your Input 🗣️
+
+Your feedback shapes our future releases. Share your thoughts and suggestions [here](https://ultralytics.com/contact).
+
+## Thank You, Community! 🌍
+
+Your [contributions](https://docs.ultralytics.com/help/contributing) inspire our continuous [innovation](https://github.com/ultralytics/ultralytics). Stay tuned for the big reveal of what's next in AI and ML at Ultralytics!
+
+---
+
+Excited for what's coming? Bookmark this page and get ready for a transformative AI and ML journey with Ultralytics! 🛠️🤖
diff --git a/docs/en/hub/api/index.md b/docs/en/hub/api/index.md
new file mode 100644
index 000000000..f8d78022e
--- /dev/null
+++ b/docs/en/hub/api/index.md
@@ -0,0 +1,34 @@
+---
+description: Discover what's next for Ultralytics with our under-construction page, previewing new, groundbreaking AI and ML features coming soon.
+keywords: Ultralytics, coming soon, under construction, new features, AI updates, ML advancements, YOLO, technology preview
+---
+
+# Under Construction 🏗️🌟
+
+Welcome to the Ultralytics "Under Construction" page! Here, we're hard at work developing the next generation of AI and ML innovations. This page serves as a teaser for the exciting updates and new features we're eager to share with you!
+
+## Exciting New Features on the Way 🎉
+
+- **Innovative Breakthroughs:** Get ready for advanced features and services that will transform your AI and ML experience.
+- **New Horizons:** Anticipate novel products that redefine AI and ML capabilities.
+- **Enhanced Services:** We're upgrading our services for greater efficiency and user-friendliness.
+
+## Stay Updated 🚧
+
+This placeholder page is your first stop for upcoming developments. Keep an eye out for:
+
+- **Newsletter:** Subscribe [here](https://ultralytics.com/#newsletter) for the latest news.
+- **Social Media:** Follow us [here](https://www.linkedin.com/company/ultralytics) for updates and teasers.
+- **Blog:** Visit our [blog](https://ultralytics.com/blog) for detailed insights.
+
+## We Value Your Input 🗣️
+
+Your feedback shapes our future releases. Share your thoughts and suggestions [here](https://ultralytics.com/contact).
+
+## Thank You, Community! 🌍
+
+Your [contributions](https://docs.ultralytics.com/help/contributing) inspire our continuous [innovation](https://github.com/ultralytics/ultralytics). Stay tuned for the big reveal of what's next in AI and ML at Ultralytics!
+
+---
+
+Excited for what's coming? Bookmark this page and get ready for a transformative AI and ML journey with Ultralytics! 🛠️🤖
diff --git a/docs/en/hub/index.md b/docs/en/hub/index.md
index 9d18aa47f..3637946c0 100644
--- a/docs/en/hub/index.md
+++ b/docs/en/hub/index.md
@@ -58,4 +58,4 @@ We hope that the resources here will help you get the most out of HUB. Please br
- [**Ultralytics HUB App**](app/index.md). Learn about the Ultralytics App for iOS and Android, which allows you to run models directly on your mobile device.
- [**iOS**](app/ios.md). Learn about YOLO CoreML models accelerated on Apple's Neural Engine on iPhones and iPads.
- [**Android**](app/android.md). Explore TFLite acceleration on mobile devices.
-- [**Inference API**](inference_api.md). Understand how to use the Inference API for running your trained models in the cloud to generate predictions.
+- [**Inference API**](inference-api.md). Understand how to use the Inference API for running your trained models in the cloud to generate predictions.
diff --git a/docs/en/hub/inference_api.md b/docs/en/hub/inference-api.md
similarity index 96%
rename from docs/en/hub/inference_api.md
rename to docs/en/hub/inference-api.md
index b258d375e..f37c0a955 100644
--- a/docs/en/hub/inference_api.md
+++ b/docs/en/hub/inference-api.md
@@ -103,7 +103,7 @@ The JSON list contains information about the detected objects, their coordinates
### Detect Model Format
-YOLO detection models, such as `yolov8n.pt`, can return JSON responses from local inference, CLI API inference, and Python API inference. All of these methods produce the same JSON response format.
+YOLO detection models, such as `yolov8n.pt`, can return JSON responses from local inference, CLI inference, and Python inference. All of these methods produce the same JSON response format.
!!! Example "Detect Model JSON Response"
@@ -122,7 +122,7 @@ YOLO detection models, such as `yolov8n.pt`, can return JSON responses from loca
print(results[0].tojson())
```
- === "CLI API"
+ === "CLI"
```bash
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
@@ -133,7 +133,7 @@ YOLO detection models, such as `yolov8n.pt`, can return JSON responses from loca
-F "iou=0.45"
```
- === "Python API"
+ === "Python"
```python
import requests
@@ -201,7 +201,7 @@ YOLO detection models, such as `yolov8n.pt`, can return JSON responses from loca
### Segment Model Format
-YOLO segmentation models, such as `yolov8n-seg.pt`, can return JSON responses from local inference, CLI API inference, and Python API inference. All of these methods produce the same JSON response format.
+YOLO segmentation models, such as `yolov8n-seg.pt`, can return JSON responses from local inference, CLI inference, and Python inference. All of these methods produce the same JSON response format.
!!! Example "Segment Model JSON Response"
@@ -220,7 +220,7 @@ YOLO segmentation models, such as `yolov8n-seg.pt`, can return JSON responses fr
print(results[0].tojson())
```
- === "CLI API"
+ === "CLI"
```bash
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
@@ -231,7 +231,7 @@ YOLO segmentation models, such as `yolov8n-seg.pt`, can return JSON responses fr
-F "iou=0.45"
```
- === "Python API"
+ === "Python"
```python
import requests
@@ -342,7 +342,7 @@ YOLO segmentation models, such as `yolov8n-seg.pt`, can return JSON responses fr
### Pose Model Format
-YOLO pose models, such as `yolov8n-pose.pt`, can return JSON responses from local inference, CLI API inference, and Python API inference. All of these methods produce the same JSON response format.
+YOLO pose models, such as `yolov8n-pose.pt`, can return JSON responses from local inference, CLI inference, and Python inference. All of these methods produce the same JSON response format.
!!! Example "Pose Model JSON Response"
@@ -361,7 +361,7 @@ YOLO pose models, such as `yolov8n-pose.pt`, can return JSON responses from loca
print(results[0].tojson())
```
- === "CLI API"
+ === "CLI"
```bash
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
@@ -372,7 +372,7 @@ YOLO pose models, such as `yolov8n-pose.pt`, can return JSON responses from loca
-F "iou=0.45"
```
- === "Python API"
+ === "Python"
```python
import requests
diff --git a/docs/en/hub/models.md b/docs/en/hub/models.md
index 41091ad95..df8a917ff 100644
--- a/docs/en/hub/models.md
+++ b/docs/en/hub/models.md
@@ -124,7 +124,7 @@ You can preview your model if you click on the **Preview** tab and upload an ima
![Ultralytics HUB screenshot of the Preview tab (Test card) inside the Model page](https://raw.githubusercontent.com/ultralytics/assets/main/docs/hub/models/hub_preview_model_1.jpg)
-You can also use our Ultralytics Cloud API to effortlessly [run inference](https://docs.ultralytics.com/hub/inference_api) with your custom model.
+You can also use our Ultralytics Cloud API to effortlessly [run inference](inference-api.md) with your custom model.
![Ultralytics HUB screenshot of the Preview tab (Ultralytics Cloud API card) inside the Model page](https://raw.githubusercontent.com/ultralytics/assets/main/docs/hub/models/hub_preview_model_2.jpg)
diff --git a/docs/en/hub/on-premise/index.md b/docs/en/hub/on-premise/index.md
new file mode 100644
index 000000000..f8d78022e
--- /dev/null
+++ b/docs/en/hub/on-premise/index.md
@@ -0,0 +1,34 @@
+---
+description: Discover what's next for Ultralytics with our under-construction page, previewing new, groundbreaking AI and ML features coming soon.
+keywords: Ultralytics, coming soon, under construction, new features, AI updates, ML advancements, YOLO, technology preview
+---
+
+# Under Construction 🏗️🌟
+
+Welcome to the Ultralytics "Under Construction" page! Here, we're hard at work developing the next generation of AI and ML innovations. This page serves as a teaser for the exciting updates and new features we're eager to share with you!
+
+## Exciting New Features on the Way 🎉
+
+- **Innovative Breakthroughs:** Get ready for advanced features and services that will transform your AI and ML experience.
+- **New Horizons:** Anticipate novel products that redefine AI and ML capabilities.
+- **Enhanced Services:** We're upgrading our services for greater efficiency and user-friendliness.
+
+## Stay Updated 🚧
+
+This placeholder page is your first stop for upcoming developments. Keep an eye out for:
+
+- **Newsletter:** Subscribe [here](https://ultralytics.com/#newsletter) for the latest news.
+- **Social Media:** Follow us [here](https://www.linkedin.com/company/ultralytics) for updates and teasers.
+- **Blog:** Visit our [blog](https://ultralytics.com/blog) for detailed insights.
+
+## We Value Your Input 🗣️
+
+Your feedback shapes our future releases. Share your thoughts and suggestions [here](https://ultralytics.com/contact).
+
+## Thank You, Community! 🌍
+
+Your [contributions](https://docs.ultralytics.com/help/contributing) inspire our continuous [innovation](https://github.com/ultralytics/ultralytics). Stay tuned for the big reveal of what's next in AI and ML at Ultralytics!
+
+---
+
+Excited for what's coming? Bookmark this page and get ready for a transformative AI and ML journey with Ultralytics! 🛠️🤖
diff --git a/docs/en/usage/cli.md b/docs/en/usage/cli.md
index 62b79e43b..c3380ce24 100644
--- a/docs/en/usage/cli.md
+++ b/docs/en/usage/cli.md
@@ -1,6 +1,6 @@
---
comments: true
-description: Learn how to use Ultralytics YOLO through Command Line: train models, run predictions and exports models to different formats easily using terminal commands.
+description: Learn how to use Ultralytics YOLO through Command Line, train models, run predictions and exports models to different formats easily using terminal commands.
keywords: Ultralytics, YOLO, CLI, train, validation, prediction, command line interface, YOLO CLI, YOLO terminal, model training, prediction, exporting
---
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index 2845974ef..fb5e7aee2 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -343,17 +343,28 @@ nav:
- TensorBoard: integrations/tensorboard.md
- Amazon SageMaker: integrations/amazon-sagemaker.md
- HUB:
- - hub/index.md
- - Quickstart: hub/quickstart.md
- - Datasets: hub/datasets.md
- - Projects: hub/projects.md
- - Models: hub/models.md
- - Integrations: hub/integrations.md
- - Ultralytics HUB App:
+ - Cloud:
+ - hub/index.md
+ - Quickstart: hub/quickstart.md
+ - Datasets: hub/datasets.md
+ - Projects: hub/projects.md
+ - Models: hub/models.md
+ - Integrations: hub/integrations.md
+ - Inference API: hub/inference-api.md
+ - On Premise:
+ - hub/on-premise/index.md
+ - App:
- hub/app/index.md
- iOS: hub/app/ios.md
- Android: hub/app/android.md
- - Inference API: hub/inference_api.md
+ - Python SDK:
+ - hub/sdk/index.md
+ - Quickstart: hub/sdk/quickstart.md
+ - Model: hub/sdk/model.md
+ - Dataset: hub/sdk/dataset.md
+ - Project: hub/sdk/project.md
+ - REST API:
+ - hub/api/index.md
- Reference:
- cfg:
@@ -542,6 +553,7 @@ plugins:
quick-start.md: quickstart.md
app.md: hub/app/index.md
sdk.md: index.md
+ hub/inference_api.md: hub/inference-api.md
usage/hyperparameter_tuning.md: integrations/ray-tune.md
reference/base_pred.md: reference/engine/predictor.md
reference/base_trainer.md: reference/engine/trainer.md
diff --git a/ultralytics/engine/model.py b/ultralytics/engine/model.py
index a0783ced1..625607035 100644
--- a/ultralytics/engine/model.py
+++ b/ultralytics/engine/model.py
@@ -259,8 +259,8 @@ class Model(nn.Module):
x in sys.argv for x in ("predict", "track", "mode=predict", "mode=track")
)
- custom = {"conf": 0.25, "save": is_cli} # method defaults
- args = {**self.overrides, **custom, **kwargs, "mode": "predict"} # highest priority args on the right
+ custom = {"conf": 0.25, "save": is_cli, "mode": "predict"} # method defaults
+ args = {**self.overrides, **custom, **kwargs} # highest priority args on the right
prompts = args.pop("prompts", None) # for SAM-type models
if not self.predictor: