v3.10.3 release (Console UI broken stdin pipe fix)
v3.10.3 release with Windows installer.
Due to the size of the packaged python environment, the installer is within a multi-part zip file.
The multipart zip can be extracted using 7-Zip: https://www.7-zip.org/
Download both dgenerate_installer.zip.001
and dgenerate_installer.zip.002
to a folder.
Unzip dgenerate_installer.zip.001
to a directory (Right click, 7-Zip -> Extract to "dgenerate_installer") and then run dgenerate_installer\dgenerate.msi
to install.
dgenerate will be installed under C:\Program Files\dgenerate
by default with an isolated python environment provided.
The install directory will be added to PATH, and dgenerate will be available from the command line.
Portable Install
A portable install is provided via dgenerate_portable.zip.001
and dgenerate_portable.zip.002
, these contain
nothing but the dgenerate executable and a frozen python environment which can be placed anywhere.
v3.10.3 Patch Fix
The stdin buffer of the interpreter process in the Console UI could be easily flooded by running many commands one after another which do not execute quickly, for example, queuing up multiple diffusion or image processing commands in terminal mode.
This could have also happened with large commands, such as when pulling up a long script from the consoles history and accidentally running it twice in short succession :)
On windows the stdin buffer of a process is fairly small, and filling it up results in a broken pipe followed by a deadlock in the Console UI.
This is resolved by using a write thread, a non-blocking fifo queue, and a pre-created pipe.
The console will now warn you if the command / write fifo queue is full, and will not accept new input if the pipe being read by the interpreter process cannot accept any more data.
The maximum size of this fifo queue is 50 entries, you should not see this warning unless you are really trying to :)