- BREAKING: Upgrade dependency baselines across extras to current compatible releases.
- Add explicit
tensorboarddependency for prompt embedding visualization support. - Validate full
.[all]installation and imports on Python 3.12 and Python 3.13. - Update notebooks for compatibility with the upgraded package structure and Colab install command.
- Accept both
colorfulnessandcolorfullnessin CLIP-IQA evaluator, normalizing to TorchMetrics prompt keys.
- Added NSGA-III algorithm for many-objective optimization with different selectors
- Added image-to-prompt functionality in
evolutionary_imaging.img2promptthat generates Stable Diffusion prompts from images using Qwen2.5-VL-7B-Instruct- Added a pre-testing notebook
img2prompt_inference.ipynbto test this functionality
- Added a pre-testing notebook
- Added a Single-Objective
SumEvaluatorto sum the fitness values of multiple evaluators
- Fix completed_generations compatability with visualizations by increasing it in algorithm_base.py instead of in the individual algorithms.
- Avoid recalculating best solution in NSGA_II by caching it
- Added the AestheticPredictorV25ImageEvaluator
- Official support for sound generation using AudioLDM and evaluation with
evolutionary_sound(soundsubpackage) nad Audiobox Aesthetics. - BREAKING:
prompt_embeddingnow supports sound generation but will not includeimaginganymore since sound does not use it. You will now have to install bothevolutionary[prompt_embedding]andevolutionary[sound or imaging]. - Updating notebooks to reflect the package changes.
- Added
TensorboardEmbedVisualizerto allow for easy visualization of embeddings with different algorithms like PCA, UMAP, etc. TensorBoard comes with a lot of functionality for that. load_torch_modelweights only is nowTrueplotting.pynow supports post_evaluation time tracking- History of solutions (parents, mutations) now tracked in
statistics.pywith dataclasses inhistory.py - Family tree visualization made possible with
graphviz, updated imageprocessing.pyand addedfamily_tree.py
- Update
transformers,diffusersanddatasetsto fix dependency issues with collab
- Fix
numpyversion to1.26.4to avoid2.0incompatibility
- added
completed_generationstoAlgorithmto allow for better access to generations when run was not finished.
- Strict OSGA can be enabled in GA
- ArithmeticCrossover now supports
proportion, a parameter to control the amount of crossover - Statistics time tracking is now handeled by Algorithm implementations. IslandModel uses sum of all islands for time statistics.
- Breaking changes to Crossover/Mutation
- moved
tensor_variationto model_helpers. - Mutation does not modify the original tensor anymore
- changed parameter names (crossover_rate, to interpolation_weight to avoid confusion)
- moved
- GA, NSGA-II now use
crossover-andmutation-rate - Breaking changes to Fitness-Statistics (avg, best, worst), now own class in
statistics.py - Can now plot time spent on evaluation and creation of individuals
- Added GoalDiminishingEvaluator, CappedEvaluator
- Added 'ring' and 'random' topology to the IslandModel to allow control of migration
- Group-By-Ident visualization for image grid to allow visualization of best image per island
- Radar chart visualization for multi-objective optimization now supports max-value, so the charts remain the same size
- Fixed RankSelector division by zero error
- NSGA-II can now use a binary tournament selection for the selection of parents
- NSGA-II now returns result which has the best fitness sum with optional normalization
- Add optional identifiers to image-saving do differentiate between islands in the island modal
- Fixed plotting when only one variation (ex. avg_fitness) is plotted
- Added generation argument to Algorithm.perform_generation
- NSGA now supports callback after NDS
- Fixed imports, structure to work with colab
- Refactored package structure to single setup.py with extras, which allow a finer selection of dependencies and packages.