frigate: 0.16.4 -> 0.17.0 (#494409)
This commit is contained in:
@@ -348,6 +348,10 @@ in
|
||||
proxy_set_header X-Forwarded-Groups $http_x_forwarded_groups;
|
||||
proxy_set_header X-Forwarded-Email $http_x_forwarded_email;
|
||||
proxy_set_header X-Forwarded-Preferred-Username $http_x_forwarded_preferred_username;
|
||||
proxy_set_header X-Auth-Request-User $http_x_auth_request_user;
|
||||
proxy_set_header X-Auth-Request-Groups $http_x_auth_request_groups;
|
||||
proxy_set_header X-Auth-Request-Email $http_x_auth_request_email;
|
||||
proxy_set_header X-Auth-Request-Preferred-Username $http_x_auth_request_preferred_username;
|
||||
proxy_set_header X-authentik-username $http_x_authentik_username;
|
||||
proxy_set_header X-authentik-groups $http_x_authentik_groups;
|
||||
proxy_set_header X-authentik-email $http_x_authentik_email;
|
||||
@@ -362,6 +366,10 @@ in
|
||||
aio threads;
|
||||
vod hls;
|
||||
|
||||
# Use fMP4 (fragmented MP4) instead of MPEG-TS for better performance
|
||||
# Smaller segments, faster generation, better browser compatibility
|
||||
vod_hls_container_format fmp4;
|
||||
|
||||
secure_token $args;
|
||||
secure_token_types application/vnd.apple.mpegurl;
|
||||
|
||||
@@ -555,6 +563,16 @@ in
|
||||
${nginxProxySettings}
|
||||
}
|
||||
|
||||
location /api/auth/first_time_login {
|
||||
auth_request off;
|
||||
limit_except GET {
|
||||
deny all;
|
||||
}
|
||||
rewrite ^/api(/.*)$ $1 break;
|
||||
proxy_pass http://frigate-api;
|
||||
${nginxProxySettings}
|
||||
}
|
||||
|
||||
location /api/stats {
|
||||
${nginxAuthRequest}
|
||||
access_log off;
|
||||
@@ -582,6 +600,14 @@ in
|
||||
add_header Cache-Control "public";
|
||||
'';
|
||||
};
|
||||
"/fonts" = {
|
||||
root = cfg.package.web;
|
||||
extraConfig = ''
|
||||
access_log off;
|
||||
expires 1y;
|
||||
add_header Cache-Control "public";
|
||||
'';
|
||||
};
|
||||
"/locales/" = {
|
||||
root = cfg.package.web;
|
||||
extraConfig = ''
|
||||
@@ -623,6 +649,8 @@ in
|
||||
vod_manifest_segment_durations_mode accurate;
|
||||
vod_ignore_edit_list on;
|
||||
vod_segment_duration 10000;
|
||||
|
||||
# MPEG-TS settings (not used when fMP4 is enabled, kept for reference)
|
||||
vod_hls_mpegts_align_frames off;
|
||||
vod_hls_mpegts_interleave_frames on;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/frigate/data_processing/real_time/bird.py b/frigate/data_processing/real_time/bird.py
|
||||
index d547f2dd..402876b7 100644
|
||||
index 7851c0997..520440005 100644
|
||||
--- a/frigate/data_processing/real_time/bird.py
|
||||
+++ b/frigate/data_processing/real_time/bird.py
|
||||
@@ -21,7 +21,7 @@ from .api import RealTimeProcessorApi
|
||||
@@ -22,7 +22,7 @@ from .api import RealTimeProcessorApi
|
||||
try:
|
||||
from tflite_runtime.interpreter import Interpreter
|
||||
except ModuleNotFoundError:
|
||||
@@ -11,11 +11,46 @@ index d547f2dd..402876b7 100644
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
diff --git a/frigate/data_processing/real_time/custom_classification.py b/frigate/data_processing/real_time/custom_classification.py
|
||||
index 229383d9f..2c74a6575 100644
|
||||
--- a/frigate/data_processing/real_time/custom_classification.py
|
||||
+++ b/frigate/data_processing/real_time/custom_classification.py
|
||||
@@ -32,7 +32,7 @@ from .api import RealTimeProcessorApi
|
||||
try:
|
||||
from tflite_runtime.interpreter import Interpreter
|
||||
except ModuleNotFoundError:
|
||||
- from tensorflow.lite.python.interpreter import Interpreter
|
||||
+ from ai_edge_litert.interpreter import Interpreter
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -76,7 +76,7 @@ class CustomStateClassificationProcessor(RealTimeProcessorApi):
|
||||
try:
|
||||
from tflite_runtime.interpreter import Interpreter
|
||||
except ModuleNotFoundError:
|
||||
- from tensorflow.lite.python.interpreter import Interpreter
|
||||
+ from ai_edge_litert.interpreter import Interpreter
|
||||
|
||||
model_path = os.path.join(self.model_dir, "model.tflite")
|
||||
labelmap_path = os.path.join(self.model_dir, "labelmap.txt")
|
||||
diff --git a/frigate/detectors/detector_utils.py b/frigate/detectors/detector_utils.py
|
||||
index d732de871..d8930b2ae 100644
|
||||
--- a/frigate/detectors/detector_utils.py
|
||||
+++ b/frigate/detectors/detector_utils.py
|
||||
@@ -6,7 +6,7 @@ import numpy as np
|
||||
try:
|
||||
from tflite_runtime.interpreter import Interpreter, load_delegate
|
||||
except ModuleNotFoundError:
|
||||
- from tensorflow.lite.python.interpreter import Interpreter, load_delegate
|
||||
+ from ai_edge_litert.interpreter import Interpreter, load_delegate
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
diff --git a/frigate/detectors/plugins/cpu_tfl.py b/frigate/detectors/plugins/cpu_tfl.py
|
||||
index 8a54363e..68ae558b 100644
|
||||
index 00351f519..6d336bb6b 100644
|
||||
--- a/frigate/detectors/plugins/cpu_tfl.py
|
||||
+++ b/frigate/detectors/plugins/cpu_tfl.py
|
||||
@@ -10,7 +10,7 @@ from frigate.detectors.detector_config import BaseDetectorConfig
|
||||
@@ -12,7 +12,7 @@ from ..detector_utils import tflite_detect_raw, tflite_init
|
||||
try:
|
||||
from tflite_runtime.interpreter import Interpreter
|
||||
except ModuleNotFoundError:
|
||||
@@ -25,23 +60,23 @@ index 8a54363e..68ae558b 100644
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
diff --git a/frigate/detectors/plugins/edgetpu_tfl.py b/frigate/detectors/plugins/edgetpu_tfl.py
|
||||
index 246d2dd4..e855bf87 100644
|
||||
index 2b94fde39..36c769b4b 100644
|
||||
--- a/frigate/detectors/plugins/edgetpu_tfl.py
|
||||
+++ b/frigate/detectors/plugins/edgetpu_tfl.py
|
||||
@@ -11,7 +11,7 @@ from frigate.detectors.detector_config import BaseDetectorConfig
|
||||
@@ -13,7 +13,7 @@ from frigate.detectors.detector_config import BaseDetectorConfig, ModelTypeEnum
|
||||
try:
|
||||
from tflite_runtime.interpreter import Interpreter, load_delegate
|
||||
except ModuleNotFoundError:
|
||||
- from tensorflow.lite.python.interpreter import Interpreter, load_delegate
|
||||
+ from ai_edge_litert.interpreter import Interpreter, load_delegate
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
diff --git a/frigate/embeddings/onnx/face_embedding.py b/frigate/embeddings/onnx/face_embedding.py
|
||||
index eb04b43b..0c6c26fc 100644
|
||||
index 04d756897..75dfedc94 100644
|
||||
--- a/frigate/embeddings/onnx/face_embedding.py
|
||||
+++ b/frigate/embeddings/onnx/face_embedding.py
|
||||
@@ -14,7 +14,7 @@ from .runner import ONNXModelRunner
|
||||
@@ -17,7 +17,7 @@ from .base_embedding import BaseEmbedding
|
||||
try:
|
||||
from tflite_runtime.interpreter import Interpreter
|
||||
except ModuleNotFoundError:
|
||||
@@ -51,10 +86,10 @@ index eb04b43b..0c6c26fc 100644
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
diff --git a/frigate/events/audio.py b/frigate/events/audio.py
|
||||
index f2a217fd..82206b5a 100644
|
||||
index e88f2ae71..ad87d19c1 100644
|
||||
--- a/frigate/events/audio.py
|
||||
+++ b/frigate/events/audio.py
|
||||
@@ -36,7 +36,7 @@ from frigate.video import start_or_restart_ffmpeg, stop_ffmpeg
|
||||
@@ -43,7 +43,7 @@ from frigate.video import start_or_restart_ffmpeg, stop_ffmpeg
|
||||
try:
|
||||
from tflite_runtime.interpreter import Interpreter
|
||||
except ModuleNotFoundError:
|
||||
@@ -62,3 +97,4 @@ index f2a217fd..82206b5a 100644
|
||||
+ from ai_edge_litert.interpreter import Interpreter
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
diff --git a/frigate/comms/webpush.py b/frigate/comms/webpush.py
|
||||
index c5986d45..b767e19e 100644
|
||||
--- a/frigate/comms/webpush.py
|
||||
+++ b/frigate/comms/webpush.py
|
||||
@@ -17,7 +17,7 @@ from titlecase import titlecase
|
||||
from frigate.comms.base_communicator import Communicator
|
||||
from frigate.comms.config_updater import ConfigSubscriber
|
||||
from frigate.config import FrigateConfig
|
||||
-from frigate.const import CONFIG_DIR
|
||||
+from frigate.const import BASE_DIR, CONFIG_DIR
|
||||
from frigate.models import User
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -333,7 +333,7 @@ class WebPushClient(Communicator): # type: ignore[misc]
|
||||
|
||||
title = f"{titlecase(', '.join(sorted_objects).replace('_', ' '))}{' was' if state == 'end' else ''} detected in {titlecase(', '.join(payload['after']['data']['zones']).replace('_', ' '))}"
|
||||
message = f"Detected on {titlecase(camera.replace('_', ' '))}"
|
||||
- image = f"{payload['after']['thumb_path'].replace('/media/frigate', '')}"
|
||||
+ image = f"{payload['after']['thumb_path'].replace(BASE_DIR, '')}"
|
||||
|
||||
# if event is ongoing open to live view otherwise open to recordings view
|
||||
direct_url = f"/review?id={reviewId}" if state == "end" else f"/#{camera}"
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/frigate/config/camera/ffmpeg.py b/frigate/config/camera/ffmpeg.py
|
||||
index 04bbfac7..396bcc4b 100644
|
||||
index 2c1e4cdca..d1a1f7065 100644
|
||||
--- a/frigate/config/camera/ffmpeg.py
|
||||
+++ b/frigate/config/camera/ffmpeg.py
|
||||
@@ -1,4 +1,5 @@
|
||||
@@ -8,7 +8,7 @@ index 04bbfac7..396bcc4b 100644
|
||||
from typing import Union
|
||||
|
||||
from pydantic import Field, field_validator
|
||||
@@ -69,21 +70,11 @@ class FfmpegConfig(FrigateBaseModel):
|
||||
@@ -71,21 +72,11 @@ class FfmpegConfig(FrigateBaseModel):
|
||||
|
||||
@property
|
||||
def ffmpeg_path(self) -> str:
|
||||
@@ -33,10 +33,10 @@ index 04bbfac7..396bcc4b 100644
|
||||
|
||||
class CameraRoleEnum(str, Enum):
|
||||
diff --git a/frigate/record/export.py b/frigate/record/export.py
|
||||
index 0d3f96da..463bcff4 100644
|
||||
index d4b49bb4b..bbcccff61 100644
|
||||
--- a/frigate/record/export.py
|
||||
+++ b/frigate/record/export.py
|
||||
@@ -126,7 +126,7 @@ class RecordingExporter(threading.Thread):
|
||||
@@ -127,7 +127,7 @@ class RecordingExporter(threading.Thread):
|
||||
minutes = int(diff / 60)
|
||||
seconds = int(diff % 60)
|
||||
ffmpeg_cmd = [
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/frigate/detectors/plugins/teflon_tfl.py b/frigate/detectors/plugins/teflon_tfl.py
|
||||
index 7e29d6630..98e446d84 100644
|
||||
--- a/frigate/detectors/plugins/teflon_tfl.py
|
||||
+++ b/frigate/detectors/plugins/teflon_tfl.py
|
||||
@@ -26,7 +26,7 @@ class TeflonTfl(DetectionApi):
|
||||
|
||||
def __init__(self, detector_config: TeflonDetectorConfig):
|
||||
# Location in Debian's mesa-teflon-delegate
|
||||
- delegate_library = "/usr/lib/teflon/libteflon.so"
|
||||
+ delegate_library = "@driverLink@/lib/libteflon.so"
|
||||
device_config = {}
|
||||
|
||||
interpreter = tflite_load_delegate_interpreter(
|
||||
@@ -1,19 +1,12 @@
|
||||
Disable the SimplifedLayerNormFusion optimization for onnxruntime embedding
|
||||
models to prevent a crash when using FP16 models (like jinna-clip-v1) with newer
|
||||
onnxruntime versions.
|
||||
|
||||
https://github.com/microsoft/onnxruntime/issues/26717#issuecomment-3800462654
|
||||
|
||||
|
||||
diff --git a/frigate/embeddings/onnx/runner.py b/frigate/embeddings/onnx/runner.py
|
||||
index c34c97a8d..dca91daae 100644
|
||||
--- a/frigate/embeddings/onnx/runner.py
|
||||
+++ b/frigate/embeddings/onnx/runner.py
|
||||
@@ -52,6 +52,7 @@ class ONNXModelRunner:
|
||||
model_path,
|
||||
providers=providers,
|
||||
provider_options=options,
|
||||
+ disabled_optimizers=["SimplifiedLayerNormFusion"],
|
||||
)
|
||||
|
||||
def get_input_names(self) -> list[str]:
|
||||
diff --git a/frigate/detectors/detection_runners.py b/frigate/detectors/detection_runners.py
|
||||
index fcbb41e66..5b4d3f310 100644
|
||||
--- a/frigate/detectors/detection_runners.py
|
||||
+++ b/frigate/detectors/detection_runners.py
|
||||
@@ -603,6 +603,7 @@ def get_optimized_runner(
|
||||
),
|
||||
providers=providers,
|
||||
provider_options=options,
|
||||
+ disabled_optimizers=["SimplifiedLayerNormFusion"],
|
||||
),
|
||||
model_type=model_type,
|
||||
)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
replaceVars,
|
||||
addDriverRunpath,
|
||||
callPackage,
|
||||
python313Packages,
|
||||
fetchFromGitHub,
|
||||
@@ -9,18 +11,17 @@
|
||||
sqlite-vec,
|
||||
frigate,
|
||||
nixosTests,
|
||||
fetchpatch,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.16.4";
|
||||
version = "0.17.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
name = "frigate-${version}-source";
|
||||
owner = "blakeblackshear";
|
||||
repo = "frigate";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-TPiCT/z0YuoQkQsxyZsRMQa0XwqMLCgwMbrASOKrMjA=";
|
||||
hash = "sha256-K41tWnj0u+Fw+G++aPFfMa0uFYEvvZ0r6xNPQ7J1cYs=";
|
||||
};
|
||||
|
||||
frigate-web = callPackage ./web.nix {
|
||||
@@ -38,6 +39,9 @@ let
|
||||
hash = "sha256-95xtUzzIxxvDtpHX/5uCHnTQTB8Fc08DZGUOR/SdKLs=";
|
||||
};
|
||||
});
|
||||
|
||||
huggingface-hub = super.huggingface-hub_0;
|
||||
transformers = super.transformers_4;
|
||||
};
|
||||
};
|
||||
python3Packages = python.pkgs;
|
||||
@@ -77,27 +81,23 @@ python3Packages.buildPythonApplication rec {
|
||||
inherit src;
|
||||
|
||||
patches = [
|
||||
./constants.patch
|
||||
# Fixes hardcoded path /media/frigate/clips/faces. Remove in next version.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/blakeblackshear/frigate/commit/b86e6e484f64bd43b64d7adebe78671a7a426edb.patch";
|
||||
hash = "sha256-1+n0n0yCtjfAHkXzsZdIF0iCVdPGmsG7l8/VTqBVEjU=";
|
||||
})
|
||||
# Always lookup ffmpeg from config setting
|
||||
./ffmpeg.patch
|
||||
|
||||
# Adjust libteflon.so location
|
||||
(replaceVars ./libteflon-driverlink-path.patch {
|
||||
inherit (addDriverRunpath) driverLink;
|
||||
})
|
||||
|
||||
# Use ai-edge-litert as tensorflow interpreter
|
||||
# https://github.com/blakeblackshear/frigate/pull/21876
|
||||
./ai-edge-litert.patch
|
||||
(fetchpatch {
|
||||
# peewee-migrate 0.14.x compat
|
||||
url = "https://github.com/blakeblackshear/frigate/commit/dde02cadb2168c44e9eb395ddfbb7b169096bd15.patch";
|
||||
excludes = [
|
||||
"docker/main/requirements-wheels.txt"
|
||||
"migrations/031_create_trigger_table.py"
|
||||
"migrations/032_add_password_changed_at.py"
|
||||
];
|
||||
hash = "sha256-RrmwjE4SHJIUOYfqcCtMy9Pht7UXhHcoAZlFQv9aQFw=";
|
||||
})
|
||||
|
||||
# Disable failing optimization in onnxruntime
|
||||
# https://github.com/microsoft/onnxruntime/issues/26717
|
||||
./onnxruntime-compat.patch
|
||||
|
||||
# Fix excessive trailing whitespaces in process commandlines
|
||||
# https://github.com/blakeblackshear/frigate/pull/22089
|
||||
./proc-cmdline-strip.patch
|
||||
];
|
||||
@@ -107,7 +107,7 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
substituteInPlace \
|
||||
frigate/app.py \
|
||||
frigate/test/test_{http,storage}.py \
|
||||
frigate/test/test_storage.py \
|
||||
frigate/test/http_api/base_http_test.py \
|
||||
--replace-fail "Router(migrate_db)" 'Router(migrate_db, "${placeholder "out"}/share/frigate/migrations")'
|
||||
|
||||
@@ -118,7 +118,13 @@ python3Packages.buildPythonApplication rec {
|
||||
--replace-fail "/config" "/var/lib/frigate" \
|
||||
--replace-fail "{CONFIG_DIR}/model_cache" "/var/cache/frigate/model_cache"
|
||||
|
||||
substituteInPlace frigate/comms/{config,embeddings}_updater.py frigate/comms/{zmq_proxy,inter_process}.py \
|
||||
substituteInPlace \
|
||||
frigate/comms/config_updater.py \
|
||||
frigate/comms/embeddings_updater.py \
|
||||
frigate/comms/inter_process.py \
|
||||
frigate/comms/object_detector_signaler.py \
|
||||
frigate/comms/zmq_proxy.py \
|
||||
frigate/detectors/plugins/zmq_ipc.py \
|
||||
--replace-fail "ipc:///tmp/cache" "ipc:///run/frigate"
|
||||
|
||||
substituteInPlace frigate/db/sqlitevecq.py \
|
||||
@@ -140,25 +146,27 @@ python3Packages.buildPythonApplication rec {
|
||||
dontBuild = true;
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
# docker/main/requirements.txt
|
||||
scikit-build
|
||||
# docker/main/requirements-wheel.txt
|
||||
# TODO: degirum (no source repo, binary wheels only)
|
||||
ai-edge-litert
|
||||
aiofiles
|
||||
aiohttp
|
||||
appdirs
|
||||
argcomplete
|
||||
contextlib2
|
||||
click
|
||||
contextlib2
|
||||
cryptography
|
||||
distlib
|
||||
fastapi
|
||||
faster-whisper
|
||||
filelock
|
||||
google-genai
|
||||
importlib-metadata
|
||||
importlib-resources
|
||||
google-generativeai
|
||||
joserfc
|
||||
levenshtein
|
||||
librosa
|
||||
markupsafe
|
||||
memray
|
||||
netaddr
|
||||
netifaces
|
||||
norfair
|
||||
@@ -184,14 +192,18 @@ python3Packages.buildPythonApplication rec {
|
||||
py-vapid
|
||||
pywebpush
|
||||
pyzmq
|
||||
rapidfuzz
|
||||
requests
|
||||
ruamel-yaml
|
||||
scipy
|
||||
setproctitle
|
||||
shapely
|
||||
sherpa-onnx
|
||||
slowapi
|
||||
soundfile
|
||||
starlette
|
||||
starlette-context
|
||||
tensorflow
|
||||
titlecase
|
||||
transformers
|
||||
tzlocal
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
Strip trailing whitespace from process commandlines. This is annoying for exact
|
||||
process matches against Prometheus labels.
|
||||
|
||||
https://github.com/blakeblackshear/frigate/pull/22089
|
||||
|
||||
diff --git a/frigate/util/services.py b/frigate/util/services.py
|
||||
index b31a7eea3..f1e8f0f5f 100644
|
||||
index 64d83833d..912ce67bd 100644
|
||||
--- a/frigate/util/services.py
|
||||
+++ b/frigate/util/services.py
|
||||
@@ -118,7 +118,7 @@ def get_cpu_stats() -> dict[str, dict]:
|
||||
@@ -121,7 +121,7 @@ def get_cpu_stats() -> dict[str, dict]:
|
||||
pid = str(process.info["pid"])
|
||||
try:
|
||||
cpu_percent = process.info["cpu_percent"]
|
||||
@@ -16,7 +11,7 @@ index b31a7eea3..f1e8f0f5f 100644
|
||||
|
||||
with open(f"/proc/{pid}/stat", "r") as f:
|
||||
stats = f.readline().split()
|
||||
@@ -152,7 +152,7 @@ def get_cpu_stats() -> dict[str, dict]:
|
||||
@@ -155,7 +155,7 @@ def get_cpu_stats() -> dict[str, dict]:
|
||||
"cpu": str(cpu_percent),
|
||||
"cpu_average": str(round(cpu_average_usage, 2)),
|
||||
"mem": f"{mem_pct}",
|
||||
|
||||
@@ -18,21 +18,20 @@ buildNpmPackage {
|
||||
--replace-fail '/BASE_PATH/' '/'
|
||||
|
||||
substituteInPlace \
|
||||
src/pages/Exports.tsx \
|
||||
src/components/preview/ScrubbablePreview.tsx \
|
||||
src/components/card/AnimatedEventCard.tsx \
|
||||
src/components/card/ExportCard.tsx \
|
||||
src/components/card/ReviewCard.tsx \
|
||||
src/components/card/AnimatedEventCard.tsx \
|
||||
src/components/player/PreviewThumbnailPlayer.tsx \
|
||||
src/components/preview/ScrubbablePreview.tsx \
|
||||
src/pages/Exports.tsx \
|
||||
src/views/system/StorageMetrics.tsx \
|
||||
src/components/timeline/EventSegment.tsx \
|
||||
--replace-fail "/media/frigate" "/var/lib/frigate" \
|
||||
|
||||
substituteInPlace src/views/system/StorageMetrics.tsx \
|
||||
--replace-fail "/tmp/cache" "/var/cache/frigate"
|
||||
'';
|
||||
|
||||
npmDepsHash = "sha256-CrK/6BaKmKIxlohEZdGEEKJkioszBUupyKQx4nBeLqI=";
|
||||
npmDepsHash = "sha256-iIqP3pspkDbaXZkZ5MIT/GVGiKBJCkFXQ7Av5h1rWKk=";
|
||||
|
||||
installPhase = ''
|
||||
cp -rv dist/ $out
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
filelock,
|
||||
fsspec,
|
||||
hf-xet,
|
||||
packaging,
|
||||
pyyaml,
|
||||
requests,
|
||||
tqdm,
|
||||
typing-extensions,
|
||||
|
||||
# optional-dependencies
|
||||
# cli
|
||||
inquirerpy,
|
||||
# inference
|
||||
aiohttp,
|
||||
# torch
|
||||
torch,
|
||||
safetensors,
|
||||
# hf_transfer
|
||||
hf-transfer,
|
||||
# fastai
|
||||
toml,
|
||||
fastai,
|
||||
fastcore,
|
||||
# tensorflow
|
||||
tensorflow,
|
||||
pydot,
|
||||
graphviz,
|
||||
# tensorflow-testing
|
||||
keras,
|
||||
|
||||
# tests
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "huggingface-hub";
|
||||
version = "0.36.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "huggingface";
|
||||
repo = "huggingface_hub";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-cUp5Mm8vgJI/0N/9inQVedGWRde8lioduFoccq6b7UE=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
filelock
|
||||
fsspec
|
||||
hf-xet
|
||||
packaging
|
||||
pyyaml
|
||||
requests
|
||||
tqdm
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
all = [
|
||||
|
||||
];
|
||||
cli = [
|
||||
inquirerpy
|
||||
];
|
||||
inference = [
|
||||
aiohttp
|
||||
];
|
||||
torch = [
|
||||
torch
|
||||
safetensors
|
||||
]
|
||||
++ safetensors.optional-dependencies.torch;
|
||||
hf_transfer = [
|
||||
hf-transfer
|
||||
];
|
||||
fastai = [
|
||||
toml
|
||||
fastai
|
||||
fastcore
|
||||
];
|
||||
tensorflow = [
|
||||
tensorflow
|
||||
pydot
|
||||
graphviz
|
||||
];
|
||||
tensorflow-testing = [
|
||||
tensorflow
|
||||
keras
|
||||
];
|
||||
hf_xet = [
|
||||
hf-xet
|
||||
];
|
||||
};
|
||||
|
||||
nativeCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
versionCheckProgramArg = "version";
|
||||
|
||||
pythonImportsCheck = [ "huggingface_hub" ];
|
||||
|
||||
meta = {
|
||||
description = "Download and publish models and other files on the huggingface.co hub";
|
||||
mainProgram = "hf";
|
||||
homepage = "https://github.com/huggingface/huggingface_hub";
|
||||
changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/v${version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
GaetanLepage
|
||||
osbm
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,208 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
filelock,
|
||||
huggingface-hub,
|
||||
numpy,
|
||||
protobuf,
|
||||
packaging,
|
||||
pyyaml,
|
||||
regex,
|
||||
requests,
|
||||
tokenizers,
|
||||
safetensors,
|
||||
tqdm,
|
||||
|
||||
# optional-dependencies
|
||||
diffusers,
|
||||
scikit-learn,
|
||||
tensorflow,
|
||||
onnxconverter-common,
|
||||
opencv4,
|
||||
tf2onnx,
|
||||
torch,
|
||||
accelerate,
|
||||
faiss,
|
||||
datasets,
|
||||
jax,
|
||||
jaxlib,
|
||||
flax,
|
||||
optax,
|
||||
ftfy,
|
||||
onnxruntime,
|
||||
onnxruntime-tools,
|
||||
cookiecutter,
|
||||
sagemaker,
|
||||
fairscale,
|
||||
optuna,
|
||||
ray,
|
||||
pydantic,
|
||||
uvicorn,
|
||||
fastapi,
|
||||
starlette,
|
||||
librosa,
|
||||
phonemizer,
|
||||
torchaudio,
|
||||
pillow,
|
||||
timm,
|
||||
torchvision,
|
||||
av,
|
||||
sentencepiece,
|
||||
hf-xet,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "transformers";
|
||||
version = "4.57.6";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "huggingface";
|
||||
repo = "transformers";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-a78ornUAYlOpr30iFdq1oUiWQTm6GeT0iq8ras5i3DQ=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
filelock
|
||||
huggingface-hub
|
||||
numpy
|
||||
packaging
|
||||
pyyaml
|
||||
regex
|
||||
requests
|
||||
tokenizers
|
||||
safetensors
|
||||
tqdm
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [ "huggingface-hub" ];
|
||||
|
||||
optional-dependencies =
|
||||
let
|
||||
audio = [
|
||||
librosa
|
||||
# pyctcdecode
|
||||
phonemizer
|
||||
# kenlm
|
||||
];
|
||||
vision = [ pillow ];
|
||||
in
|
||||
{
|
||||
agents = [
|
||||
diffusers
|
||||
accelerate
|
||||
datasets
|
||||
torch
|
||||
sentencepiece
|
||||
opencv4
|
||||
pillow
|
||||
];
|
||||
ja = [
|
||||
# fugashi
|
||||
# ipadic
|
||||
# rhoknp
|
||||
# sudachidict_core
|
||||
# sudachipy
|
||||
# unidic
|
||||
# unidic_lite
|
||||
];
|
||||
sklearn = [ scikit-learn ];
|
||||
tf = [
|
||||
tensorflow
|
||||
onnxconverter-common
|
||||
tf2onnx
|
||||
# tensorflow-text
|
||||
# keras-nlp
|
||||
];
|
||||
torch = [
|
||||
torch
|
||||
accelerate
|
||||
];
|
||||
retrieval = [
|
||||
faiss
|
||||
datasets
|
||||
];
|
||||
flax = [
|
||||
jax
|
||||
jaxlib
|
||||
flax
|
||||
optax
|
||||
];
|
||||
hf_xet = [
|
||||
hf-xet
|
||||
];
|
||||
tokenizers = [ tokenizers ];
|
||||
ftfy = [ ftfy ];
|
||||
onnxruntime = [
|
||||
onnxruntime
|
||||
onnxruntime-tools
|
||||
];
|
||||
onnx = [
|
||||
onnxconverter-common
|
||||
tf2onnx
|
||||
onnxruntime
|
||||
onnxruntime-tools
|
||||
];
|
||||
modelcreation = [ cookiecutter ];
|
||||
sagemaker = [ sagemaker ];
|
||||
deepspeed = [
|
||||
# deepspeed
|
||||
accelerate
|
||||
];
|
||||
fairscale = [ fairscale ];
|
||||
optuna = [ optuna ];
|
||||
ray = [ ray ] ++ ray.optional-dependencies.tune;
|
||||
# sigopt = [ sigopt ];
|
||||
# integrations = ray ++ optuna ++ sigopt;
|
||||
serving = [
|
||||
pydantic
|
||||
uvicorn
|
||||
fastapi
|
||||
starlette
|
||||
];
|
||||
audio = audio;
|
||||
speech = [ torchaudio ] ++ audio;
|
||||
torch-speech = [ torchaudio ] ++ audio;
|
||||
tf-speech = audio;
|
||||
flax-speech = audio;
|
||||
timm = [ timm ];
|
||||
torch-vision = [ torchvision ] ++ vision;
|
||||
# natten = [ natten ];
|
||||
# codecarbon = [ codecarbon ];
|
||||
video = [
|
||||
av
|
||||
];
|
||||
sentencepiece = [
|
||||
sentencepiece
|
||||
protobuf
|
||||
];
|
||||
};
|
||||
|
||||
# Many tests require internet access.
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "transformers" ];
|
||||
|
||||
meta = {
|
||||
broken = lib.versionAtLeast huggingface-hub.version "1.0";
|
||||
homepage = "https://github.com/huggingface/transformers";
|
||||
description = "Natural Language Processing for TensorFlow 2.0 and PyTorch";
|
||||
mainProgram = "transformers-cli";
|
||||
changelog = "https://github.com/huggingface/transformers/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [
|
||||
pashashocky
|
||||
happysalada
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -7184,6 +7184,8 @@ self: super: with self; {
|
||||
|
||||
huggingface-hub = callPackage ../development/python-modules/huggingface-hub { };
|
||||
|
||||
huggingface-hub_0 = callPackage ../development/python-modules/huggingface-hub/0.nix { };
|
||||
|
||||
human-readable = callPackage ../development/python-modules/human-readable { };
|
||||
|
||||
humanfriendly = callPackage ../development/python-modules/humanfriendly { };
|
||||
@@ -19395,6 +19397,8 @@ self: super: with self; {
|
||||
|
||||
transformers = callPackage ../development/python-modules/transformers { };
|
||||
|
||||
transformers_4 = callPackage ../development/python-modules/transformers/4.nix { };
|
||||
|
||||
transforms3d = callPackage ../development/python-modules/transforms3d { };
|
||||
|
||||
transitions = callPackage ../development/python-modules/transitions { };
|
||||
|
||||
Reference in New Issue
Block a user