Skip to content

Conversation

@dylanuys
Copy link
Contributor

@dylanuys dylanuys commented May 8, 2025

Release 3.0.0

Overview

The main motivation of this rewrite is to leverage Manifold's Epistula protocol, and avoid the payload bloat that the Synapse object imposed on our miner:validator communications. In v3 we'll be able to send raw video/image binary. Along with this optimization and several others, the codebase also has a much more lightweight and readable structure.

Validator challenges in 3.0.0 will be the same as they are in our current prod version (2.2.11). The goal is to not impact miner performance whatsoever.

Miners:

  • Your models can stay the same, but you will need to update miner.py to v3 in order to accept raw image and video binary.
  • You can use testnet 169 to test your updated endpoints. An hour before our mainnet release at ~1pm PST, Wednesday 5/14, testnet 168 will cut over to v3.

Validators:

  • Autoupdate will not work for this release, sorry. For future releases after 3.0.0, autoupdate will once again be enabled.
  • For this release, you'll need to pull the latest and follow the setup instructions in Validating.md. It should be quick and painless!
  • We recommend creating a new virtual environment for this release to avoid any potential dependency version conflicts
  • The same W&B and Huggingface API keys in your current validator.env will work, simply copy them over to .env.validator at the appropriate step in the setup process.

Don't hesitate to reach out with feedback or questions.

@dylanuys dylanuys changed the base branch from main to testnet May 9, 2025 04:21
dylanuys and others added 25 commits May 9, 2025 13:18
…A provides to avoid having any one model completely dominate the subnet.
* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>
* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>
* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)
* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation
dylanuys and others added 22 commits May 13, 2025 15:00
* pyproject setup

* executable setup.sh
… logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.
…ompatibility; add doc note for existing validators' Hugging Face access
Add Hugging Face model access instructions to validator docs, fix LLM device mapping for multi-GPU
@dylanuys dylanuys merged commit 6c1db24 into testnet May 14, 2025
@dylanuys dylanuys deleted the v3 branch May 15, 2025 00:37
dylanuys added a commit that referenced this pull request May 19, 2025
* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>
dylanuys added a commit that referenced this pull request May 19, 2025
* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

* [testnet] Release 3.0.5 (#207)

* fix hotkey check in sync_metagraph

* bump version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>
dylanuys added a commit that referenced this pull request Jun 21, 2025
* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

* [testnet] Release 3.0.5 (#207)

* fix hotkey check in sync_metagraph

* bump version

* [testnet] Miner healthchecks (#209)

* healthcheck wip

* remove old miner health task vars, change miner healtchechk endpoint name

* health count logging

* fixing query based on health logic

* updating healthcheck interval to 10

* removing unecessary lock

* use DEFAULT_TIMEOUT

* adding blacklisting for bad responses

* fixing detect_image fallback

* a couple comments

* update functionality for generator and proxy

* [testnet] Revised Miner Healthcheck (#210)

* adding basic health dict to miner tracker

* move all request processing logic to epistula module

* reflect request processing updates in eval engine

* healthy/unhealthy miner uid functions

* proxy using simpler miner health from tracker state

* new fn signature for score_challenge

* [testnet] Image Scraping (#213)

* scraper wip

* fixing queries with max date set in tbs, also adding placeholder for reverse image search which i cant get to work rn due to captchas

* taking first sentence of prompt as initial version of search queries

* - Adding specific media scraping interval config
- Adding retry logic and error handling to scraping callback

* Fixing enum value for output path in scraper

* add selenium to requirements

* Fixing str treated as enum

* cleaning up

* increasing media update intervals

* [testnet] Safer Miner Prediction History (#214)

* centralizing logic for safely getting valid predictions and associated labels

* cleaning up

* Aura Dataset and Mask W&B Logging (#217)

* adding bm-aura-imagegen dataset

* log mask as npy artifact

* format

* increasing media cache refresh default

* disabling scrape_new_media_on_interval

* warnings for missing keys in miner history state loading

* lowering media scraping default (not currenlty used)

* remvoning unused healthcheck endpoint in miner

* [testnet] Binary Image Proxy Endpoint (#220)

* binary image endpoint

* adding video endpoint without preprocessing (#221)

* fix frames list (should be np array)

* adding wan2.1-t2v-1.3B (#222)

* removing scraping from this release

* version bump

* whitespace

* putting peft requirement back

* ftfy requirement

* refactor(models): make Wan2.1 VAE loading lazy

- Convert VAE loading to use lazy tuple pattern (fn, args)
- Update load_vae to use kwargs for consistency

* Remove duplicate function

* fix torch_dtype typo for wan

* extending window to 200

* imports

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>
dylanuys added a commit that referenced this pull request Jun 25, 2025
* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

* [testnet] Release 3.0.5 (#207)

* fix hotkey check in sync_metagraph

* bump version

* [testnet] Miner healthchecks (#209)

* healthcheck wip

* remove old miner health task vars, change miner healtchechk endpoint name

* health count logging

* fixing query based on health logic

* updating healthcheck interval to 10

* removing unecessary lock

* use DEFAULT_TIMEOUT

* adding blacklisting for bad responses

* fixing detect_image fallback

* a couple comments

* update functionality for generator and proxy

* [testnet] Revised Miner Healthcheck (#210)

* adding basic health dict to miner tracker

* move all request processing logic to epistula module

* reflect request processing updates in eval engine

* healthy/unhealthy miner uid functions

* proxy using simpler miner health from tracker state

* new fn signature for score_challenge

* [testnet] Image Scraping (#213)

* scraper wip

* fixing queries with max date set in tbs, also adding placeholder for reverse image search which i cant get to work rn due to captchas

* taking first sentence of prompt as initial version of search queries

* - Adding specific media scraping interval config
- Adding retry logic and error handling to scraping callback

* Fixing enum value for output path in scraper

* add selenium to requirements

* Fixing str treated as enum

* cleaning up

* increasing media update intervals

* [testnet] Safer Miner Prediction History (#214)

* centralizing logic for safely getting valid predictions and associated labels

* cleaning up

* Aura Dataset and Mask W&B Logging (#217)

* adding bm-aura-imagegen dataset

* log mask as npy artifact

* format

* increasing media cache refresh default

* disabling scrape_new_media_on_interval

* warnings for missing keys in miner history state loading

* lowering media scraping default (not currenlty used)

* remvoning unused healthcheck endpoint in miner

* [testnet] Binary Image Proxy Endpoint (#220)

* binary image endpoint

* adding video endpoint without preprocessing (#221)

* fix frames list (should be np array)

* adding wan2.1-t2v-1.3B (#222)

* [testnet] Segmentation Challenges (#226)

* segmentation v1

* remove debug logging

* legacy detector backward compatibility

* initial reward split for segmentation release

* typo fix and increasing window size

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* removing scraper for current release

* whitespace

* fix bug in miner history resetting when a detector changes to a detector without dereg

* limit uids

* cleanup

* proxy updates

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>
dylanuys added a commit that referenced this pull request Jun 27, 2025
* LLM-based query generation + moving scraping to generator class

* Release 3.0.11 (#223)

* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

* [testnet] Release 3.0.5 (#207)

* fix hotkey check in sync_metagraph

* bump version

* [testnet] Miner healthchecks (#209)

* healthcheck wip

* remove old miner health task vars, change miner healtchechk endpoint name

* health count logging

* fixing query based on health logic

* updating healthcheck interval to 10

* removing unecessary lock

* use DEFAULT_TIMEOUT

* adding blacklisting for bad responses

* fixing detect_image fallback

* a couple comments

* update functionality for generator and proxy

* [testnet] Revised Miner Healthcheck (#210)

* adding basic health dict to miner tracker

* move all request processing logic to epistula module

* reflect request processing updates in eval engine

* healthy/unhealthy miner uid functions

* proxy using simpler miner health from tracker state

* new fn signature for score_challenge

* [testnet] Image Scraping (#213)

* scraper wip

* fixing queries with max date set in tbs, also adding placeholder for reverse image search which i cant get to work rn due to captchas

* taking first sentence of prompt as initial version of search queries

* - Adding specific media scraping interval config
- Adding retry logic and error handling to scraping callback

* Fixing enum value for output path in scraper

* add selenium to requirements

* Fixing str treated as enum

* cleaning up

* increasing media update intervals

* [testnet] Safer Miner Prediction History (#214)

* centralizing logic for safely getting valid predictions and associated labels

* cleaning up

* Aura Dataset and Mask W&B Logging (#217)

* adding bm-aura-imagegen dataset

* log mask as npy artifact

* format

* increasing media cache refresh default

* disabling scrape_new_media_on_interval

* warnings for missing keys in miner history state loading

* lowering media scraping default (not currenlty used)

* remvoning unused healthcheck endpoint in miner

* [testnet] Binary Image Proxy Endpoint (#220)

* binary image endpoint

* adding video endpoint without preprocessing (#221)

* fix frames list (should be np array)

* adding wan2.1-t2v-1.3B (#222)

* removing scraping from this release

* version bump

* whitespace

* putting peft requirement back

* ftfy requirement

* refactor(models): make Wan2.1 VAE loading lazy

- Convert VAE loading to use lazy tuple pattern (fn, args)
- Update load_vae to use kwargs for consistency

* Remove duplicate function

* fix torch_dtype typo for wan

* extending window to 200

* imports

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* Release/3.0.11 (#224)

* Release 3.0.11 (#225)

* updating config to allow toggling generation/scraping on and off

* updated scraper to get native resolution images

* override aug level

* native resolution wip

* Release 3.1.0 (#227)

* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

* [testnet] Release 3.0.5 (#207)

* fix hotkey check in sync_metagraph

* bump version

* [testnet] Miner healthchecks (#209)

* healthcheck wip

* remove old miner health task vars, change miner healtchechk endpoint name

* health count logging

* fixing query based on health logic

* updating healthcheck interval to 10

* removing unecessary lock

* use DEFAULT_TIMEOUT

* adding blacklisting for bad responses

* fixing detect_image fallback

* a couple comments

* update functionality for generator and proxy

* [testnet] Revised Miner Healthcheck (#210)

* adding basic health dict to miner tracker

* move all request processing logic to epistula module

* reflect request processing updates in eval engine

* healthy/unhealthy miner uid functions

* proxy using simpler miner health from tracker state

* new fn signature for score_challenge

* [testnet] Image Scraping (#213)

* scraper wip

* fixing queries with max date set in tbs, also adding placeholder for reverse image search which i cant get to work rn due to captchas

* taking first sentence of prompt as initial version of search queries

* - Adding specific media scraping interval config
- Adding retry logic and error handling to scraping callback

* Fixing enum value for output path in scraper

* add selenium to requirements

* Fixing str treated as enum

* cleaning up

* increasing media update intervals

* [testnet] Safer Miner Prediction History (#214)

* centralizing logic for safely getting valid predictions and associated labels

* cleaning up

* Aura Dataset and Mask W&B Logging (#217)

* adding bm-aura-imagegen dataset

* log mask as npy artifact

* format

* increasing media cache refresh default

* disabling scrape_new_media_on_interval

* warnings for missing keys in miner history state loading

* lowering media scraping default (not currenlty used)

* remvoning unused healthcheck endpoint in miner

* [testnet] Binary Image Proxy Endpoint (#220)

* binary image endpoint

* adding video endpoint without preprocessing (#221)

* fix frames list (should be np array)

* adding wan2.1-t2v-1.3B (#222)

* [testnet] Segmentation Challenges (#226)

* segmentation v1

* remove debug logging

* legacy detector backward compatibility

* initial reward split for segmentation release

* typo fix and increasing window size

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* removing scraper for current release

* whitespace

* fix bug in miner history resetting when a detector changes to a detector without dereg

* limit uids

* cleanup

* proxy updates

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* Patch/autoupdate minor version (#229)

* stamina for scraping

* cleanup

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>
dylanuys added a commit that referenced this pull request Jul 11, 2025
* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

* [testnet] Release 3.0.5 (#207)

* fix hotkey check in sync_metagraph

* bump version

* [testnet] Miner healthchecks (#209)

* healthcheck wip

* remove old miner health task vars, change miner healtchechk endpoint name

* health count logging

* fixing query based on health logic

* updating healthcheck interval to 10

* removing unecessary lock

* use DEFAULT_TIMEOUT

* adding blacklisting for bad responses

* fixing detect_image fallback

* a couple comments

* update functionality for generator and proxy

* [testnet] Revised Miner Healthcheck (#210)

* adding basic health dict to miner tracker

* move all request processing logic to epistula module

* reflect request processing updates in eval engine

* healthy/unhealthy miner uid functions

* proxy using simpler miner health from tracker state

* new fn signature for score_challenge

* [testnet] Image Scraping (#213)

* scraper wip

* fixing queries with max date set in tbs, also adding placeholder for reverse image search which i cant get to work rn due to captchas

* taking first sentence of prompt as initial version of search queries

* - Adding specific media scraping interval config
- Adding retry logic and error handling to scraping callback

* Fixing enum value for output path in scraper

* add selenium to requirements

* Fixing str treated as enum

* cleaning up

* increasing media update intervals

* [testnet] Safer Miner Prediction History (#214)

* centralizing logic for safely getting valid predictions and associated labels

* cleaning up

* Aura Dataset and Mask W&B Logging (#217)

* adding bm-aura-imagegen dataset

* log mask as npy artifact

* format

* increasing media cache refresh default

* disabling scrape_new_media_on_interval

* warnings for missing keys in miner history state loading

* lowering media scraping default (not currenlty used)

* remvoning unused healthcheck endpoint in miner

* [testnet] Binary Image Proxy Endpoint (#220)

* binary image endpoint

* adding video endpoint without preprocessing (#221)

* fix frames list (should be np array)

* adding wan2.1-t2v-1.3B (#222)

* [testnet] Segmentation Challenges (#226)

* segmentation v1

* remove debug logging

* legacy detector backward compatibility

* initial reward split for segmentation release

* typo fix and increasing window size

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* import and timeout

* [testnet] Scraping (#230)

* LLM-based query generation + moving scraping to generator class

* Release 3.0.11 (#223)

* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

* [testnet] Release 3.0.5 (#207)

* fix hotkey check in sync_metagraph

* bump version

* [testnet] Miner healthchecks (#209)

* healthcheck wip

* remove old miner health task vars, change miner healtchechk endpoint name

* health count logging

* fixing query based on health logic

* updating healthcheck interval to 10

* removing unecessary lock

* use DEFAULT_TIMEOUT

* adding blacklisting for bad responses

* fixing detect_image fallback

* a couple comments

* update functionality for generator and proxy

* [testnet] Revised Miner Healthcheck (#210)

* adding basic health dict to miner tracker

* move all request processing logic to epistula module

* reflect request processing updates in eval engine

* healthy/unhealthy miner uid functions

* proxy using simpler miner health from tracker state

* new fn signature for score_challenge

* [testnet] Image Scraping (#213)

* scraper wip

* fixing queries with max date set in tbs, also adding placeholder for reverse image search which i cant get to work rn due to captchas

* taking first sentence of prompt as initial version of search queries

* - Adding specific media scraping interval config
- Adding retry logic and error handling to scraping callback

* Fixing enum value for output path in scraper

* add selenium to requirements

* Fixing str treated as enum

* cleaning up

* increasing media update intervals

* [testnet] Safer Miner Prediction History (#214)

* centralizing logic for safely getting valid predictions and associated labels

* cleaning up

* Aura Dataset and Mask W&B Logging (#217)

* adding bm-aura-imagegen dataset

* log mask as npy artifact

* format

* increasing media cache refresh default

* disabling scrape_new_media_on_interval

* warnings for missing keys in miner history state loading

* lowering media scraping default (not currenlty used)

* remvoning unused healthcheck endpoint in miner

* [testnet] Binary Image Proxy Endpoint (#220)

* binary image endpoint

* adding video endpoint without preprocessing (#221)

* fix frames list (should be np array)

* adding wan2.1-t2v-1.3B (#222)

* removing scraping from this release

* version bump

* whitespace

* putting peft requirement back

* ftfy requirement

* refactor(models): make Wan2.1 VAE loading lazy

- Convert VAE loading to use lazy tuple pattern (fn, args)
- Update load_vae to use kwargs for consistency

* Remove duplicate function

* fix torch_dtype typo for wan

* extending window to 200

* imports

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* Release/3.0.11 (#224)

* Release 3.0.11 (#225)

* updating config to allow toggling generation/scraping on and off

* updated scraper to get native resolution images

* override aug level

* native resolution wip

* Release 3.1.0 (#227)

* V3 (#187)

* V3

* removing v2 ci pipeline

* removing outdated .gitmodules

* keeping the noise that sample size of 50 and slight decay of .5 in EMA provides to avoid having any one model completely dominate the subnet.

* release 2.2.6 datasets, models, and lora support (#188)

* deprecate stable-diffusion-inpainting

* .env templates

* V3/RGB (#191)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* V3 frame extraction (#192)

* bgr images --> rgb images

* proper BGR -> RGB conversion

* eradicate all usage of bgr in image challenge flow

* extract frames as rgb

* skip extraneous rgb conversion

* fix deeperforesnics consistency

* v2 frame sampling parity + eidon mp4 fix

* missing import

* handling improper reporting of fps in wembs

* correct content-type on miner side

* max_fpx setting

* improved video metadata extraction

* cleaning up ffprobe options

* fixing first frame rotation edge case

* i2i fix

* frame extraction

---------

Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* setup.sh

* removing wandb log call from generator

* V3/2.2.9 (#189)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* fixing prompt indexing

* properly handling new prompt dictionary key (task type)

* V3/2.2.11 (#190)

* mugshot dataset

* black

* i2v support and fixed prompt motion enhancement

* gen pipeline updates for i2v

* prompt sanitation + i2v model

* more retries for prompt sanitation

* fixing truthy tuple assertion

* Update min_compute.yml

* fixing setup script name in docs

* correct script name

* updated requirements.txt with bittensor-cli

* removing wandb.off

* import cleanup

* miner substrate thread restart + vali autoupdate test

* temporary v3 branch set to test autoudpate

* autoupdate update

* lower frequency of audoupdate check

* autoudpate test

* check autoupdate at setp 0

* typo

* autoupdate test

* dont set weights immediately at startup in case of many restarts

* Pyproject toml (#193)

* pyproject setup

* executable setup.sh

* autoupdate test

* resetting version after autoupdate tests

* Add Hugging Face model access instructions to validator docs; improve logging and fix LLM device mapping for multi-GPU

- Added section to Validating.md with instructions for gaining access to required Hugging Face models (FLUX.1-dev, DeepFloyd IF).
- Added logging of generation arguments in generation_pipeline.py.
- Fix LLM loading for multi-GPU in prompt_generator.py: use device_map and remove .to(self.device) for quantized models.
  Quantized LLMs must use device_map for correct device placement; calling .to(self.device) causes device mismatch errors. Parse GPU ID from device string for device_map assignment.

* fixing image_samples check for i2i

* hf_xet requirement

* wandb autorestart

* Fix: raise error if image is None for i2i/i2v tasks and ensure image is converted from array

* fixing wandb autorestart

* error log

* Update setup.sh to install Node.js 20.x LTS from NodeSource for pm2 compatibility; add doc note for existing validators' Hugging Face access

* external port for proxy cuz tensordock rugged us (#196)

* incentive doc

* Typo

* proxy updates

* v2 parity encoding (#197)

* final autoupdate test

* reset version

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* autoupdate set to main

* testing autoupdate on testnet

* autoupdate enabled by default

* autoudpate testnet

* pointing autoupdate at main by default

* removing extra state load command

* setting back to 360 epoch length

* burn for initial v3 release rampup

* debug log typo

* fixed merge to testnet

* Max Frames and Timeout (#203)

* fixing wandb cache clean paths (#202)

* max frames configuration

* fn header update

* slight increase to timeout

* adding extra metadata to testnet requests for miners (#201)

* remove max size arg

* Testnet Metadata (#204)

* adding extra metadata to testnet requests for miners

* adding label and mediatype to testnet metadata

* Log Augmentation Parameters (#205)

* log augmentation params

* braindead typo

* bump verison

* [testnet] Release 3.0.5 (#207)

* fix hotkey check in sync_metagraph

* bump version

* [testnet] Miner healthchecks (#209)

* healthcheck wip

* remove old miner health task vars, change miner healtchechk endpoint name

* health count logging

* fixing query based on health logic

* updating healthcheck interval to 10

* removing unecessary lock

* use DEFAULT_TIMEOUT

* adding blacklisting for bad responses

* fixing detect_image fallback

* a couple comments

* update functionality for generator and proxy

* [testnet] Revised Miner Healthcheck (#210)

* adding basic health dict to miner tracker

* move all request processing logic to epistula module

* reflect request processing updates in eval engine

* healthy/unhealthy miner uid functions

* proxy using simpler miner health from tracker state

* new fn signature for score_challenge

* [testnet] Image Scraping (#213)

* scraper wip

* fixing queries with max date set in tbs, also adding placeholder for reverse image search which i cant get to work rn due to captchas

* taking first sentence of prompt as initial version of search queries

* - Adding specific media scraping interval config
- Adding retry logic and error handling to scraping callback

* Fixing enum value for output path in scraper

* add selenium to requirements

* Fixing str treated as enum

* cleaning up

* increasing media update intervals

* [testnet] Safer Miner Prediction History (#214)

* centralizing logic for safely getting valid predictions and associated labels

* cleaning up

* Aura Dataset and Mask W&B Logging (#217)

* adding bm-aura-imagegen dataset

* log mask as npy artifact

* format

* increasing media cache refresh default

* disabling scrape_new_media_on_interval

* warnings for missing keys in miner history state loading

* lowering media scraping default (not currenlty used)

* remvoning unused healthcheck endpoint in miner

* [testnet] Binary Image Proxy Endpoint (#220)

* binary image endpoint

* adding video endpoint without preprocessing (#221)

* fix frames list (should be np array)

* adding wan2.1-t2v-1.3B (#222)

* [testnet] Segmentation Challenges (#226)

* segmentation v1

* remove debug logging

* legacy detector backward compatibility

* initial reward split for segmentation release

* typo fix and increasing window size

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* removing scraper for current release

* whitespace

* fix bug in miner history resetting when a detector changes to a detector without dereg

* limit uids

* cleanup

* proxy updates

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* Patch/autoupdate minor version (#229)

* stamina for scraping

* cleanup

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>

* add mask in headers on testnet (#231)

* fixing mask getting filtered out of headers

* send mask as 128x128 in header

* fixing check to include mask for seg challenges

* [testnet] wandb mask logging fix (#236)

* wandb logging fix for masks

* exclude mask in detector challenge headers

* return empty lists when no predictions received

* bump version

* removing unused arg and conditional logic

* batch size param

* lower batch size

---------

Co-authored-by: Benjamin S Liang <caliangben@gmail.com>
Co-authored-by: Dylan Uys <dylan@bitmind.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants