hyperstudy-perception 0.1.2__tar.gz → 0.1.3__tar.gz
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.
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/PKG-INFO +1 -1
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/pyproject.toml +1 -1
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/RELEASE.json +1 -1
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody-captions/node.py +4 -2
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody-captions/style_captions.py +15 -3
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody-captions/test_style_captions.py +9 -2
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/backends/base.py +9 -3
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/backends/native.py +6 -1
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/plan.py +3 -1
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/prepare_first.py +9 -3
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/remote_driver.py +15 -5
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/LICENSE +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/README.md +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/__init__.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/runpod/guard.sh +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/runpod/image/Dockerfile +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/runpod/image/start.sh +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/runpod/image/tag.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/skypilot/gpu-faces.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/skypilot/gpu-tune.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/skypilot/guard.sh +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/skypilot/iam-perception-node.json +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/skypilot/launch.sh +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/skypilot/node-gpu.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/skypilot/node-setup.sh +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/skypilot/sky.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/cloud/skypilot/smoke.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/api/pyproject.toml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/api/uv.lock +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/asr-cuda/pyproject.toml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/asr-cuda/uv.lock +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/audio/pyproject.toml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/audio/uv.lock +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/audio-events/pyproject.toml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/audio-events/uv.lock +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/core/pyproject.toml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/core/uv.lock +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/faces/pyproject.toml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/faces/uv.lock +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/gaze/pyproject.toml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/gaze/uv.lock +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/prosody/pyproject.toml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/prosody/uv.lock +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/vision/pyproject.toml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/envs/vision/uv.lock +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/graphs/decode.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/graphs/faces.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/graphs/full.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/graphs/mvp-captions.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/graphs/mvp.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/nemo_model.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/nemo_tokens.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/node_nemo.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/raw_tokens.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/test_nemo_model.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/test_nemo_tokens.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/test_raw_tokens.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/test_wav.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/utterances.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/asr/wav.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/diarization_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/diarizer.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/pcm16.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/test_diarization_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/test_diarizer.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/test_pcm16.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/test_voices.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/diarize/voices.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/odyssey.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/praat.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/prosody_layer.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/prosody_measure.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/prosody_tracks.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/prosody_units.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/test_prosody_layer.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/test_prosody_measure.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/test_prosody_tracks.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/test_prosody_units.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/third_party/README.md +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/third_party/odyssey/LICENSE +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody/third_party/odyssey/ser_model.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody-captions/captions_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/prosody-captions/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/audioset_labels.csv +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/efficientat/LICENSE +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/efficientat/UPSTREAM.md +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/efficientat/__init__.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/efficientat/mn/__init__.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/efficientat/mn/attention_pooling.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/efficientat/mn/block_types.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/efficientat/mn/model.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/efficientat/mn/utils.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/efficientat/preprocess.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/models.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/panns/LICENSE.MIT +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/panns/UPSTREAM.md +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/panns/__init__.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/panns/cnn14.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/panns/pytorch_utils.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/sound_events.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/sound_scores.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/soundtrack.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/test_sound_events.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/test_sound_scores.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/sounds/test_soundtrack.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/waveform/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/waveform/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/waveform/test_waveform_peaks.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/audio/waveform/waveform_peaks.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/conftest.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/core/decode/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/core/decode/media.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/core/decode/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/core/decode/shot_scores.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/core/decode/test_media.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/core/decode/test_shot_scores.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/testdata/README.md +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/testdata/rotated-90.mp4 +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/asd_crops.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/asd_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/models.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/speaker_links.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/test_asd_crops.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/test_asd_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/test_speaker_links.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/third_party/README.md +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/third_party/lr_asd/LICENSE +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/third_party/lr_asd/loss.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/third_party/lr_asd/model/Classifier.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/third_party/lr_asd/model/Encoder.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/third_party/lr_asd/model/Model.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/active-speaker/video25.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/body-pose/bodies.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/body-pose/detections.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/body-pose/keypoints.json +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/body-pose/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/body-pose/models.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/body-pose/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/body-pose/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/body-pose/test_bodies.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/body-pose/test_detections.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/face_detail.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/frames.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/loader.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/pyfeat_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/test_face_detail.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/test_frames.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/test_loader.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/test_pyfeat_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/test_thumbnails.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/thumbnails.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/face-track/tracking.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/facing/facing.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/facing/facing_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/facing/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/facing/models.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/facing/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/facing/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/facing/test_facing.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/facing/test_facing_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/gaze_polygons.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/gaze_targets.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/heatmaps.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/models.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/test_gaze_polygons.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/test_gaze_targets.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/test_heatmaps.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/README.md +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/LICENSE +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/__init__.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/layers/__init__.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/layers/attention.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/layers/block.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/layers/dino_head.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/layers/drop_path.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/layers/layer_scale.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/layers/mlp.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/layers/patch_embed.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/layers/swiglu_ffn.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/models/__init__.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/dinov2/dinov2/models/vision_transformer.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/gazelle/LICENSE +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/gazelle/gazelle/backbone.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/gazelle/gazelle/model.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gaze/third_party/gazelle/gazelle/utils.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gestures/gesture_evidence.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gestures/gesture_inputs.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gestures/gesture_rules.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gestures/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gestures/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gestures/test_gesture_evidence.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/gestures/test_gesture_rules.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/hand_detections.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/hand_tracks.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/models.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/scipy_lsap/LICENSE +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/scipy_lsap/UPSTREAM.md +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/scipy_lsap/__init__.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/scipy_lsap/rectangular_lsap.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/test_hand_detections.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/test_hand_tracks.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/test_node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/hands/test_rectangular_lsap.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/budget.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/garments.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/geometry.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/haiku.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/link.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/linking.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/models.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/names.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/object_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/object_tracks.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/person_masks.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/prepare.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/shot_frames.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/test_garments.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/test_models_hub.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/test_object_budget.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/test_object_links.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/test_object_raw.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/test_person_masks.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/test_shot_frames.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/test_split.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/testdata/node_1_1_0.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/track.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects/vocabulary.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects-link/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects-names/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vision/objects-track/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vlm/shot-captions/manifest.yaml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/nodes/vlm/shot-captions/node.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/schema/README.md +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/schema/bundle-0.1.schema.json +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/sdk/pyproject.toml +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/sdk/src/perception_node/__init__.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/sdk/src/perception_node/weights.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/artifacts.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/backends/__init__.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/backends/cloud.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/backends/probe.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/backends/remote.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/cli.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/estimates.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/export.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/hosts.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/ir.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/keycheck.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/keys.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/manifests.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/release.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/remote_coordinator.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/remote_run.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/runpod.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/scheduler.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/setup.py +0 -0
- {hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/store.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: hyperstudy-perception
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: Video perception pipeline: shots, speech, faces and captions from a video, as a versioned track bundle, run locally, on cloud GPUs or lab servers
|
|
5
5
|
Project-URL: Homepage, https://github.com/hyperstudyio/hyperstudy-perception
|
|
6
6
|
Project-URL: Changelog, https://github.com/hyperstudyio/hyperstudy-perception/releases
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "hyperstudy-perception"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.3"
|
|
4
4
|
description = "Video perception pipeline: shots, speech, faces and captions from a video, as a versioned track bundle, run locally, on cloud GPUs or lab servers"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -99,7 +99,7 @@ with Node() as node:
|
|
|
99
99
|
parsed = sc.parse_caption(arguments)
|
|
100
100
|
except ValueError as e:
|
|
101
101
|
raise NodeError("internal", f"{u['id']}: {e}") from None
|
|
102
|
-
return {"parsed": parsed, "usage": usage, "prompt": text,
|
|
102
|
+
return {"parsed": parsed, "usage": usage, "prompt": text, "outside": sc.outside_tags(arguments),
|
|
103
103
|
"raw": {"model": r.model, "finish_reason": choice.finish_reason, "arguments": arguments,
|
|
104
104
|
"usage": r.usage.model_dump(mode="json")}}
|
|
105
105
|
|
|
@@ -141,6 +141,8 @@ with Node() as node:
|
|
|
141
141
|
node.write_json("prosody", "prosody.json", sc.refine(
|
|
142
142
|
prosody, entries, node.producer(timings={"caption_s": caption_s, "tagger_s": tagger_s}, device="OpenAI API"),
|
|
143
143
|
{"file": captions_raw.FILE, "format": "parquet", "description": captions_raw.DESCRIPTION}))
|
|
144
|
-
|
|
144
|
+
# tags the audio model gave outside the list, dropped from their captions: utterance -> tags
|
|
145
|
+
outside = {u["id"]: c["outside"] for u, c in zip(units, captions) if c["outside"]}
|
|
146
|
+
node.usage(utterances=len(units), workers=sc.WORKERS, tags_outside_list=outside,
|
|
145
147
|
usd_by_model={sc.GPT_MODEL: round(sum(c["usage"]["usd"] for c in captions), 4),
|
|
146
148
|
sc.TAGGER: round(sum(t["usage"]["usd"] for t in tagged), 4)})
|
|
@@ -137,13 +137,25 @@ def cost(model: str, prompt_tokens: int, audio_tokens: int | None, completion_to
|
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
def parse_caption(arguments: str) -> dict:
|
|
140
|
-
"""The function call's arguments -> {description, tags, emphasized_words}; ValueError when they are not that.
|
|
140
|
+
"""The function call's arguments -> {description, tags, emphasized_words}; ValueError when they are not that. Its tags
|
|
141
|
+
are those of the list only: gpt-audio-1.5 does not hold a function call to the schema's enum (strict or not), so a tag
|
|
142
|
+
outside it is dropped here (outside_tags says which; the side file keeps the reply as it came)."""
|
|
141
143
|
import json
|
|
142
144
|
out = json.loads(arguments)
|
|
143
145
|
if not (isinstance(out, dict) and set(out) == {"description", "tags", "emphasized_words"}):
|
|
144
146
|
raise ValueError(f"the caption is not {{description, tags, emphasized_words}}: {sorted(out) if isinstance(out, dict) else type(out).__name__}")
|
|
145
|
-
|
|
146
|
-
|
|
147
|
+
if not isinstance(out["tags"], list):
|
|
148
|
+
check_tags(out["tags"]) # not a list: said as such
|
|
149
|
+
if not all(isinstance(t, str) for t in out["tags"]):
|
|
150
|
+
raise ValueError(f"the caption's tags are not strings: {[t for t in out['tags'] if not isinstance(t, str)][:5]}")
|
|
151
|
+
return {**out, "tags": [t for t in out["tags"] if t in ALL_TAGS]}
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def outside_tags(arguments: str) -> list[str]:
|
|
155
|
+
"""The tags a caption's reply gave that are not in the list (dropped by parse_caption)."""
|
|
156
|
+
import json
|
|
157
|
+
tags = json.loads(arguments).get("tags")
|
|
158
|
+
return [t for t in tags if t not in ALL_TAGS] if isinstance(tags, list) else []
|
|
147
159
|
|
|
148
160
|
|
|
149
161
|
def parse_tags(content: str) -> list[str]:
|
|
@@ -68,8 +68,15 @@ def test_cost_is_the_bakeoffs_at_its_prices():
|
|
|
68
68
|
def test_replies_must_be_the_schemas_with_tags_from_the_list():
|
|
69
69
|
ok = {"description": "Calm.", "tags": ["calm", "falling-end"], "emphasized_words": []}
|
|
70
70
|
assert sc.parse_caption(json.dumps(ok)) == ok
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
# gpt-audio-1.5 does not hold its function call to the schema's tag list (strict or not: "friendly" on an OOO
|
|
72
|
+
# held-out clip, 2026-10-30): a tag outside it is dropped from that caption and said, not the step's failure
|
|
73
|
+
assert sc.parse_caption(json.dumps({**ok, "tags": ["calm", "grumpy", "falling-end"]})) == ok
|
|
74
|
+
assert sc.outside_tags(json.dumps({**ok, "tags": ["calm", "grumpy", "falling-end"]})) == ["grumpy"]
|
|
75
|
+
assert sc.outside_tags(json.dumps(ok)) == []
|
|
76
|
+
with pytest.raises(ValueError, match="not strings"): # not a tag at all: the reply is not the schema's
|
|
77
|
+
sc.parse_caption(json.dumps({**ok, "tags": ["calm", 3, None]}))
|
|
78
|
+
with pytest.raises(ValueError, match="outside the vocabulary"): # the tagger's json_schema holds it to the list
|
|
79
|
+
sc.parse_tags('{"tags": ["neutral", "grumpy"]}')
|
|
73
80
|
with pytest.raises(ValueError, match="not {description, tags, emphasized_words}"):
|
|
74
81
|
sc.parse_caption(json.dumps({"description": "x"}))
|
|
75
82
|
assert sc.parse_tags('{"tags": ["neutral"]}') == ["neutral"]
|
|
@@ -330,9 +330,15 @@ def child_env(requested: list[str], secrets: dict[str, str]) -> dict[str, str]:
|
|
|
330
330
|
# once, not a download it has no token for. Nor does it load a token stored on the machine (`hf auth login`'s, or
|
|
331
331
|
# HF_TOKEN_PATH's), which huggingface_hub otherwise does even offline
|
|
332
332
|
OFFLINE = {"HF_HUB_OFFLINE": "1", "HF_HUB_DISABLE_IMPLICIT_TOKEN": "1"}
|
|
333
|
-
#
|
|
334
|
-
#
|
|
335
|
-
|
|
333
|
+
# A prepare is online, with the token it was sent as HF_TOKEN: access to a gated model is a person's. It runs without
|
|
334
|
+
# HF_HUB_DISABLE_IMPLICIT_TOKEN (PREPARE_UNSET), and only when it was sent one: transformers 5.20 fetches a model's
|
|
335
|
+
# config without the token it is given when implicit tokens are off (SAM 3's prepare got a 401 on liquidswords2,
|
|
336
|
+
# 2026-10-30). The implicit token must then be the one it was sent: huggingface_hub (2.3) takes an OIDC identity first
|
|
337
|
+
# (OIDC_LOGINS, unset), then HF_TOKEN (which replaces any other), then a stored token (its path NO_STORED_TOKEN)
|
|
338
|
+
PREPARE_UNSET = ("HF_HUB_OFFLINE", "HF_HUB_DISABLE_IMPLICIT_TOKEN")
|
|
339
|
+
OIDC_LOGINS = ("HF_OIDC_RESOURCE", "HF_OIDC_ID_TOKEN")
|
|
340
|
+
# where a prepare looks for a stored token: a path that cannot exist (below /dev/null)
|
|
341
|
+
NO_STORED_TOKEN = "/dev/null/no-stored-token"
|
|
336
342
|
|
|
337
343
|
|
|
338
344
|
def hf_cache_env(home: str) -> dict[str, str]:
|
{hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/backends/native.py
RENAMED
|
@@ -20,7 +20,7 @@ from pathlib import Path
|
|
|
20
20
|
|
|
21
21
|
from ..manifests import Manifest, Runner
|
|
22
22
|
from ..store import Artifact
|
|
23
|
-
from .base import GPU_LEASES, LEASE_FOLDER, OFFLINE, Backend, Capabilities, LeaseRefused, gpu_env, holder, lease_command
|
|
23
|
+
from .base import GPU_LEASES, LEASE_FOLDER, OFFLINE, Backend, Capabilities, LeaseRefused, SubmitRefused, gpu_env, holder, lease_command
|
|
24
24
|
from .probe import probe
|
|
25
25
|
|
|
26
26
|
from ..release import REPO, env_vars
|
|
@@ -88,6 +88,11 @@ class NativeBackend(Backend):
|
|
|
88
88
|
command = [*lease_command(str(self.lease_folder()), gpu, manifest.resources.gpu,
|
|
89
89
|
holder(json.loads(request.read_text()))), *command]
|
|
90
90
|
if prepare_secrets is not None and manifest.download_secrets and self.downloads(manifest, runner):
|
|
91
|
+
if missing := [k for k in manifest.download_secrets if not (prepare_secrets.get(k) or "").strip()]:
|
|
92
|
+
# refused, not prepared with whatever login this machine has: the plan says so first (missing_secrets),
|
|
93
|
+
# but a resumed run is not planned again (as a host's submit, remote.py)
|
|
94
|
+
raise SubmitRefused("input", f"its weights are downloaded with {', '.join(missing)}, which is not set here "
|
|
95
|
+
f"(perception keys set {missing[0]})")
|
|
91
96
|
# its prepare first, with them, then the node (with its lease: no card is held while weights download)
|
|
92
97
|
# without them (prepare_first.py)
|
|
93
98
|
from .. import prepare_first
|
|
@@ -238,7 +238,9 @@ def plan(coord: Coordinator, graph: Graph, allow_downloads: bool = False, allow_
|
|
|
238
238
|
np.estimates[p.label] = {"estimate_s": seconds, "estimate_basis": basis,
|
|
239
239
|
"cost_usd": p.backend.estimate(m, p.runner, {}, video_s).cost_usd, "uploads": sent, "upload_to": to}
|
|
240
240
|
# a download secret is needed only for a download: weights already in the cache are read without it
|
|
241
|
-
|
|
241
|
+
# an empty value is no key: it is never given to a step (download_for, child_env)
|
|
242
|
+
np.missing_secrets = [s for s in (*m.secrets, *(m.download_secrets if np.downloads else ()))
|
|
243
|
+
if not (coord.secrets.get(s) or "").strip()]
|
|
242
244
|
if placement and not np.cached:
|
|
243
245
|
chosen = np.estimates[placement.label]
|
|
244
246
|
np.estimate_s, np.estimate_basis = chosen["estimate_s"], chosen["estimate_basis"]
|
|
@@ -49,8 +49,14 @@ def main(argv: list[str]) -> int:
|
|
|
49
49
|
secrets = [s for s in opts["--secrets"].split(",") if s]
|
|
50
50
|
offline = json.loads(opts["--offline"])
|
|
51
51
|
request = Path(node[-1])
|
|
52
|
-
# online, for the download,
|
|
53
|
-
|
|
52
|
+
# online, for the download, with the token it was sent as HF_TOKEN, and implicit tokens on only then: transformers
|
|
53
|
+
# fetches a model's config without the token it is given when they are off. Its implicit token is then that one: no
|
|
54
|
+
# OIDC identity (which huggingface_hub takes first) and no stored token (its path where there is none). As
|
|
55
|
+
# base.PREPARE_UNSET, OIDC_LOGINS and NO_STORED_TOKEN, which this script cannot import
|
|
56
|
+
env = {k: v for k, v in os.environ.items() if k not in ("HF_HUB_OFFLINE", "HF_OIDC_RESOURCE", "HF_OIDC_ID_TOKEN")}
|
|
57
|
+
implicit = bool((env.get("HF_TOKEN") or "").strip())
|
|
58
|
+
prepare_env = {**{k: v for k, v in env.items() if not (implicit and k == "HF_HUB_DISABLE_IMPLICIT_TOKEN")},
|
|
59
|
+
"HF_TOKEN_PATH": "/dev/null/no-stored-token", **({} if implicit else {"HF_HUB_DISABLE_IMPLICIT_TOKEN": "1"})}
|
|
54
60
|
if "--sync" in opts:
|
|
55
61
|
print("syncing the node's environment", flush=True)
|
|
56
62
|
done = subprocess.run(json.loads(opts["--sync"]), env={k: v for k, v in env.items() if k not in secrets},
|
|
@@ -58,7 +64,7 @@ def main(argv: list[str]) -> int:
|
|
|
58
64
|
if done.returncode:
|
|
59
65
|
return fail(request, f"syncing the node's environment failed (exit {done.returncode}): see the end of the log")
|
|
60
66
|
print("preparing the node (its weights, into the cache it reads)", flush=True)
|
|
61
|
-
done = subprocess.run(json.loads(opts["--prepare"]), env=
|
|
67
|
+
done = subprocess.run(json.loads(opts["--prepare"]), env=prepare_env, stdin=subprocess.DEVNULL) # its output: the log
|
|
62
68
|
if done.returncode:
|
|
63
69
|
return fail(request, f"preparing the node failed (exit {done.returncode}): see the end of the log")
|
|
64
70
|
for mark in json.loads(opts.get("--marks", "[]")):
|
|
@@ -496,17 +496,27 @@ class Driver:
|
|
|
496
496
|
from this code's own folder, and only the card the scheduler gave it (CUDA_VISIBLE_DEVICES). A node with download
|
|
497
497
|
secrets reads its account's cache there (hf_home), offline and without them, as does its prepare without the ones
|
|
498
498
|
it was not sent: the host's own (a login's HF_TOKEN in .bashrc, which bash reads under sshd) are never used."""
|
|
499
|
-
from .backends.base import OFFLINE,
|
|
499
|
+
from .backends.base import NO_STORED_TOKEN, OFFLINE, OIDC_LOGINS, PREPARE_UNSET, gpu_env, hf_cache_env
|
|
500
500
|
from .backends.remote import SDK_SOURCE
|
|
501
501
|
q, s = shlex.quote, self.spec
|
|
502
502
|
env = gpu_env(s.get("gpu"))
|
|
503
503
|
if s.get("hf_home"):
|
|
504
504
|
env.update(hf_cache_env(s["hf_home"]))
|
|
505
505
|
unset = [k for k in s.get("download_secrets") or [] if not (prepare and k in self.download)]
|
|
506
|
-
if s.get("download_secrets"):
|
|
507
|
-
# the node offline
|
|
508
|
-
|
|
509
|
-
|
|
506
|
+
if s.get("download_secrets") and not prepare:
|
|
507
|
+
env.update(OFFLINE) # the node offline, with no token: none sent, and not the host's own login either
|
|
508
|
+
unset += ["HUGGING_FACE_HUB_TOKEN", *OIDC_LOGINS]
|
|
509
|
+
elif s.get("download_secrets") and "HF_TOKEN" in self.download:
|
|
510
|
+
# its prepare online, whatever the host's own profile says, with implicit tokens on (PREPARE_UNSET): the
|
|
511
|
+
# token huggingface_hub takes is the HF_TOKEN it was sent (an assignment that replaces the host's), and no
|
|
512
|
+
# other login is in reach: the host's OIDC identity (which huggingface_hub would take first) and
|
|
513
|
+
# HUGGING_FACE_HUB_TOKEN unset, and its stored token's path (HF_TOKEN_PATH) one where there is none
|
|
514
|
+
unset += [*PREPARE_UNSET, "HUGGING_FACE_HUB_TOKEN", *OIDC_LOGINS]
|
|
515
|
+
env["HF_TOKEN_PATH"] = NO_STORED_TOKEN
|
|
516
|
+
elif s.get("download_secrets"):
|
|
517
|
+
# sent no HF_TOKEN: online, with implicit tokens off, so none of the host's is used
|
|
518
|
+
unset += ["HF_HUB_OFFLINE", *OIDC_LOGINS]
|
|
519
|
+
env["HF_HUB_DISABLE_IMPLICIT_TOKEN"] = "1"
|
|
510
520
|
if s["runner_kind"] == "self":
|
|
511
521
|
python = q(s["python"])
|
|
512
522
|
else:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperstudy_perception-0.1.2 → hyperstudy_perception-0.1.3}/src/perception/_pipeline/graphs/mvp.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|