* Base ace step 1.5 xl added. Generating, still wip on training and ui
* Base training code done
* Fix some issues with caching text embeddings. Update sample cards to show audio
* Fix issue with quantizing ace step
* Add album artwork to samples with waveform.
* Cleanup logs
* Add album art endpoint to speed up album art loading
* Made an make video with artwork script
* Make ui handle basic audio models. Make multi line adjustments to the editor and better syntax hilighting.
* Add prompt tagging system for special tagged models.
* prompt tagging processing for ui working.
* Moved default samples to a special file so we can add more when needed and they can be adjusted for a specific model
* Add a captioner job with music captioner that is prepped for use with the ui
* Add basit ui setup for captioning modal and handeling captioning jobs
* Starting captioning job from ui working. Still better management for it.
* Better filtering of job options in the job view for captioning jobs
* Added qwen3 vl as a captioner for images
* Have an indicator when a dataset is being captioned.
* Adjust the way caption jobs look in the queue
* Fix a few issues. Adjust defaults.
* Version bump
* Added ace step to the readme.
Keep the transformer and Qwen text encoder off CUDA during initial load/quantization in low-VRAM mode so model startup avoids full-model OOM before offloading and quantization can take effect.
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Jaret Burkett <jaretburkett@gmail.com>
* Made an install script and auto updates env for mac
* GPU sensors and initial training working for MAC. Still WIP.
* Switch dataloader to single threaded until I can work around some mac pickeling issues.
* Get quantization working on mac
* Fix mac exclusive imports so they don't break other builds.
* Add mac instructions to the UI
When training Klein models with a `control_path` (edit/kontext-style
paired datasets), `encode_image_refs()` returns tensors that reside on
the VAE's device (CPU, since the VAE weights are loaded via
`load_file(..., device="cpu")` and are never explicitly moved to the
training device). Concatenating those CPU tensors with the training
latents (`packed_latents`) that live on CUDA raises:
RuntimeError: Expected all tensors to be on the same device
Fix: move `img_cond_seq` and `img_cond_seq_ids` to the same device
(and dtype) as `img_input` / `img_input_ids` before concatenation.
Co-authored-by: HuangYuChuh <HuangYuChuh@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix Qwen Image mask handling
* Fix Qwen attention mask crash with diffusers >=0.37
diffusers v0.37 (PR #12987) optimizes all-ones attention masks to None
in encode_prompt() when there is no padding. This breaks ai-toolkit's
Qwen extensions which call .to() on the mask unconditionally.
Fix: reconstruct the all-ones mask at the boundary (get_prompt_embeds)
right after encode_prompt() returns. This keeps the rest of the code
unchanged and works with both old and new diffusers versions.
Also removes redundant duplicate mask assignments in qwen_image_edit
and qwen_image_edit_plus.
Fixes#740
* Initial support for ltx 2.3. Still needs a lot of testing to make sure it is all right.
* bump version
* Handle lora renaming keys for new ltx 2.3 layers
* WIP, adding support for LTX2
* Training on images working
* Fix loading comfy models
* Handle converting and deconverting lora so it matches original format
* Reworked ui to habdle ltx and propert dataset default overwriting.
* Update the way lokr saves to it is more compatable with comfy
* Audio loading and synchronization/resampling is working
* Add audio to training. Does it work? Maybe, still testing.
* Fixed fps default issue for sound
* Have ui set fps for accurate audio mapping on ltx
* Added audio procession options to the ui for ltx
* Clean up requirements