Add support for ACE-Step 1.5 and ACE-Step 1.5 XL. Also added dataset captioning through the UI. (#785)
* 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.
This commit is contained in:
1 parent
9ca58e9aa2
commit
78cf049c29
54 files changed
+5589
-536
No files matched your search
@@ -5,7 +5,8 @@ import torch
|
||||
|
||||
from PIL import Image
|
||||
from PIL.ImageOps import exif_transpose
|
||||
|
||||
import av
|
||||
|
||||
from toolkit import image_utils
|
||||
from toolkit.basic import get_quick_signature_string
|
||||
from toolkit.dataloader_mixins import (
|
||||
@@ -21,6 +22,7 @@ from toolkit.dataloader_mixins import (
|
||||
ClipImageFileItemDTOMixin,
|
||||
InpaintControlFileItemDTOMixin,
|
||||
TextEmbeddingFileItemDTOMixin,
|
||||
AudioProcessingDTOMixin,
|
||||
)
|
||||
from toolkit.prompt_utils import PromptEmbeds, concat_prompt_embeds
|
||||
|
||||
@@ -42,6 +44,7 @@ class FileItemDTO(
|
||||
TextEmbeddingFileItemDTOMixin,
|
||||
CaptionProcessingDTOMixin,
|
||||
ImageProcessingDTOMixin,
|
||||
AudioProcessingDTOMixin,
|
||||
ControlFileItemDTOMixin,
|
||||
InpaintControlFileItemDTOMixin,
|
||||
ClipImageFileItemDTOMixin,
|
||||
@@ -55,6 +58,8 @@ class FileItemDTO(
|
||||
self.path = kwargs.get("path", "")
|
||||
self.dataset_config: "DatasetConfig" = kwargs.get("dataset_config", None)
|
||||
self.is_video = self.dataset_config.num_frames > 1 or self.dataset_config.auto_frame_count
|
||||
self.is_audio_model = kwargs.get("is_audio_model", False)
|
||||
self.sample_rate = kwargs.get("sample_rate", 48000)
|
||||
self.num_frames = self.dataset_config.num_frames
|
||||
self.temporal_compression = kwargs.get("temporal_compression", 8)
|
||||
size_database = kwargs.get("size_database", {})
|
||||
@@ -84,8 +89,16 @@ class FileItemDTO(
|
||||
and db_entry[2] == file_signature
|
||||
):
|
||||
use_db_entry = True
|
||||
|
||||
if use_db_entry:
|
||||
if self.is_audio_model:
|
||||
# get the length of the audio file in ms
|
||||
with av.open(self.path) as c:
|
||||
if c.duration is not None:
|
||||
w = int(c.duration / 1_000)
|
||||
else:
|
||||
s = c.streams.audio[0]
|
||||
w = int(float(s.duration * s.time_base) * 1_000)
|
||||
h = 1
|
||||
elif use_db_entry:
|
||||
w, h, _ = size_database[file_key]
|
||||
elif self.is_video:
|
||||
# Open the video file
|
||||
|
||||
Reference in new issue
Block a user