add CHANGELOG.md
parent
40d5afd7cb
commit
2c98129bb1
|
|
@ -0,0 +1,26 @@
|
|||
# Change Log
|
||||
Formatting: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
|
||||
|
||||
## [2.0.0] - 2024-1-24
|
||||
|
||||
### Added
|
||||
- A changelog
|
||||
- Faster model loading by hooking the model dropdown and immediately sending sync requests
|
||||
- Popups in UI to lessen the need to check the status tab
|
||||
- A debug option for resetting error correction at runtime
|
||||
- Experimental "Pixel Cap" setting under worker config UI tab for limiting pixels allocated to a given worker
|
||||
|
||||
### Changed
|
||||
- From a selectable script to an **AlwaysOn** style extension
|
||||
- Thin-client mode will lack function for now
|
||||
- Renamed main extension file from `extension.py` -> `distributed.py` to help with config grouping
|
||||
- The log file (`distributed.log`) will max out at a size of 10MB and rotate over
|
||||
- All relevant UI components are returned by ui() which has implications for API usage
|
||||
|
||||
### Fixed
|
||||
- Connection check ping not always being sent on startup
|
||||
- Old issue where benchmarking could become inaccurate due to models not being loaded on every machine [#11](https://github.com/papuSpartan/stable-diffusion-webui-distributed/issues/11)
|
||||
- Worker randomly disconnecting when under high load due to handling a previous request
|
||||
|
||||
### Removed
|
||||
- Certain superfluous warnings in logs related to third party extensions
|
||||
|
|
@ -347,7 +347,7 @@ class UI:
|
|||
with gradio.Tab('Settings'):
|
||||
thin_client_cbx = gradio.Checkbox(
|
||||
label='Thin-client mode (experimental)',
|
||||
info="Only generate images using remote workers. There will be no previews when enabled.",
|
||||
info="(BROKEN) Only generate images using remote workers. There will be no previews when enabled.",
|
||||
value=self.world.thin_client_mode
|
||||
)
|
||||
job_timeout = gradio.Number(
|
||||
|
|
|
|||
|
|
@ -511,16 +511,16 @@ class World:
|
|||
#####################################
|
||||
|
||||
# Now that this worker would (otherwise) not be doing anything, see if it can still do something.
|
||||
# Calculate how many images it can output in the time that it takes the slowest real-time worker to do so.
|
||||
# Calculate how many images it can output in the time that it takes the fastest real-time worker to do so.
|
||||
|
||||
for job in self.jobs:
|
||||
if job.complementary is False:
|
||||
continue
|
||||
|
||||
slowest_active_worker = self.fastest_realtime_job().worker
|
||||
fastest_active = self.fastest_realtime_job().worker
|
||||
for j in self.jobs:
|
||||
if j.worker.label == slowest_active_worker.label:
|
||||
slack_time = slowest_active_worker.batch_eta(payload=payload, batch_size=j.batch_size) + self.job_timeout
|
||||
if j.worker.label == fastest_active.label:
|
||||
slack_time = fastest_active.batch_eta(payload=payload, batch_size=j.batch_size) + self.job_timeout
|
||||
logger.debug(f"There's {slack_time:.2f}s of slack time available for worker '{job.worker.label}'")
|
||||
|
||||
# see how long it would take to produce only 1 image on this complementary worker
|
||||
|
|
@ -615,9 +615,9 @@ class World:
|
|||
config = ConfigModel(**config_raw)
|
||||
|
||||
# saves config schema to <extension>/distributed-config.schema.json
|
||||
# print(models.Config.schema_json())
|
||||
# with open(self.extension_path.joinpath("distributed-config.schema.json"), "w") as schema_file:
|
||||
# json.dump(json.loads(models.Config.schema_json()), schema_file, indent=3)
|
||||
# print(ConfigModel.schema_json())
|
||||
# with open(extension_path.joinpath("distributed-config.schema.json"), "w") as schema_file:
|
||||
# json.dump(json.loads(ConfigModel.schema_json()), schema_file, indent=3)
|
||||
|
||||
for w in config.workers:
|
||||
label = next(iter(w.keys()))
|
||||
|
|
@ -628,6 +628,7 @@ class World:
|
|||
|
||||
sh.benchmark_payload = Benchmark_Payload(**config.benchmark_payload)
|
||||
self.job_timeout = config.job_timeout
|
||||
self.enabled = config.enabled
|
||||
|
||||
logger.debug("config loaded")
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue