All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Both the lib and CLI have been marked as
looking-for-maintainer
as we have not been actively maintaining these crates for a while, and would be open to transferring this repo to someone else.
- Updated dependencies
0.8.0 - 2020-02-26
- Added the 09_sample_masks example
- CLI: Resolved #38 by adding the
repeat
subcommand, which can be used to repeat transforms with different input images - PR#91 Added support for compiling and running texture-synthesis as WASM.
- PR#69 Improved performance by 1x-2x, especially for smaller inputs. Thanks @Mr4k!
- PR#70 Improved performance by another 1x-2.7x, especially for larger numbers of threads. Thanks (again!) @Mr4k!
- CLI: PR#71 The prebuilt binary for Windows is now packaged in a zip file instead of a gzipped tarball to improve end user experience. Thanks @moppius!
- PR#98 fixed #85, sample masks could hang image generation. Thanks @Mr4k!
0.7.1 - 2019-11-19
- Update to fix broken CI script
0.7.0 - 2019-11-19
- PR#57 CLI: Added the
flip-and-rotate
subcommand which applies flip and rotation transforms to each example input and adds them as additional examples. Thanks @JD557! - PR#60 added the ability to specify a channel to use as the inpaint mask instead of a separate image. Thanks @khskarl!
- Added
SessionBuilder::inpaint_example_channel
- CLI: Added
--inpaint-channel <r|g|b|a>
- Replace
failure
crate for error handling with juststd::error::Error
- Validate that the
--m-rand
/random_sample_locations
parameter is > 0. #45
0.6.0 - 2019-09-23
- Added support for the alpha channel during generation, which was previously ignored
SessionBuilder::inpaint_example
now requires a size be provided by which all inputs will be resized, as well setting the output image size. Previously, you had to manually specify matchingoutput_size
andresize_input
otherwise you would get a parameter validation error.- All public methods/functions that took a size either as 2 u32's, or a tuple of them, now use a simple
Dims
struct for clarity.
- PR#36 Fixed undefined behavior in
Generator::update
. Thanks for reporting, @ralfbiedert!
0.5.0 - 2019-09-13
- You can now specify the maximum number of threads that can be used at any one time via
SessionBuilder::max_thread_count
- CLI: You can now specify the maximum thread count via
-t | --threads
- Added
From<image::DynamicImage>
forImageSource
- Added integrations tests for different examples, to catch regressions in generation
- Added criterion benchmarks for the different examples, to catch performance regressions
SampleMethod::From<AsRef<Path>>
is nowSampleMethod::From<Into<ImageSource>>
Example::From<AsRef<Path>>
is nowExample::From<Into<ImageSource>>
- CLI: Renamed the
--out-fmt
arg to--stdout-fmt
to indicate it only works when using stdout via--out -
- PR#14 Vastly improve performance, all benchmarks are sped up from between 1.03 to 1.96, almost twice as fast! Thanks @austinjones!
- Disabled unused
rand
default features (OS random number generator)
0.4.2 - 2019-09-05
- Added
Error::UnsupportedOutputFormat
- CLI:
--out
is now required.-
can still be passed to write to stdout instead of a file. - CLI: The file extension for the
--out
path is now checked to see if it a supported format.
- Removed tga feature in image since it wasn't used
0.4.1 - 2019-09-04
- Removed unused
lodepng
dependency
0.4.0 - 2019-09-04
- Use
failure
for errors - CLI: Replaced piston_window with
minifb
- CLI: Due to how minifb works via X11, the progress window is now an optional feature not enabled when building for musl
- Removed several codec features from
image
, onlypng
,jpeg
,bmp
, andtga
are supported now
0.3.0 - 2019-09-03
- Added
Example
andExampleBuilder
which can be used to manipulate an indidivual example input before being added to aSessionBuilder
- Added
SampleMethod
used to specify how a particular example is sampled during generation - Added
ImageSource
which is a small enum that means image data for examples, guides, masks, etc, can be specified either as paths, raw byte slices, or already loadedimage::DynamicImage
- Added
GeneratedImage
which allows saving, streaming, and inspection of the image generated bySession::run()
- All usage of
&str
paths to load images from disk have been replaced withImageSource
- Moved all of the building functionality in
Session
intoSessionBuilder
SessionBuilder::inpaint_example
now specifies an ImageSource for the inpaint mask, along with anExample
to be paired with, rather than the previous use of an index that the user had to keep track ofGeneratorProgress
now gets the total progress and stage progress in addition to the current imageSession::run()
can no longer fail, and consumes theSession
Session::run()
now returns aGeneratedImage
which can be used to get, save, or stream the generated image (and maybe the debug ones)- The CLI default values for the various available parameters now match the defaults in the
SessionBuilder
, which means the examples provided in the README.md match
- Replaced
load_examples
,load_example
,load_example_guides
, andload_sampling_masks
withadd_example
andadd_examples
which work withExample
(s)
- The top-level README.md is now deployed with both
texture-synthesis
andtexture-synthesis-cli
on crates.io
0.2.0 - 2019-08-27
- Split lib and cli into separate crates so CLI specific dependencies weren't pulled in
- Add
GeneratorProgress
to allow progress of image generation to be reported to external callers
0.1.0 - 2019-08-27
- Initial add of
texture-synthesis