Compare commits

..

No commits in common. "9d0dc6298c243cd2a0aa8e640db49015abf0a503" and "2de2d1bc6bf1444729710a88f2f51a7e6c16c2ea" have entirely different histories.

6 changed files with 136 additions and 133 deletions

View file

@ -109,8 +109,6 @@ bool AceStep::requestGeneration(SongItem song, QString requestTemplate, QString
if (!song.vocalLanguage.isEmpty())
requestObj["vocal_language"] = song.vocalLanguage;
requestObj["use_cot_caption"] = song.cotCaption;
// Write the request file
QFile requestFileHandle(request.requestFilePath);
if (!requestFileHandle.open(QIODevice::WriteOnly | QIODevice::Text))
@ -124,7 +122,7 @@ bool AceStep::requestGeneration(SongItem song, QString requestTemplate, QString
QStringList qwen3Args;
qwen3Args << "--request" << request.requestFilePath;
qwen3Args << "--lm" << qwen3ModelPath;
qwen3Args << "--model" << qwen3ModelPath;
progressUpdate(30);
@ -180,7 +178,7 @@ void AceStep::qwenProcFinished(int code, QProcess::ExitStatus status)
// Step 2: Run ace-synth to generate audio
QStringList ditVaeArgs;
ditVaeArgs << "--request"<<request.requestLlmFilePath;
ditVaeArgs << "--embedding"<<request.textEncoderModelPath;
ditVaeArgs << "--text-encoder"<<request.textEncoderModelPath;
ditVaeArgs << "--dit"<<request.ditModelPath;
ditVaeArgs << "--vae"<<request.vaeModelPath;
ditVaeArgs << "--wav";

View file

@ -698,8 +698,7 @@ bool MainWindow::savePlaylistToJson(const QString &filePath, const QList<SongIte
songObj["caption"] = song.caption;
songObj["lyrics"] = song.lyrics;
songObj["vocalLanguage"] = song.vocalLanguage;
songObj["uniqueId"] = static_cast<qint64>(song.uniqueId);
songObj["use_cot_caption"] = song.cotCaption;
songObj["uniqueId"] = static_cast<qint64>(song.uniqueId); // Store as qint64 for JSON compatibility
songsArray.append(songObj);
}
@ -780,20 +779,31 @@ bool MainWindow::loadPlaylistFromJson(const QString &filePath, QList<SongItem> &
SongItem song;
if (songObj.contains("caption"))
{
song.caption = songObj["caption"].toString();
}
if (songObj.contains("lyrics"))
{
song.lyrics = songObj["lyrics"].toString();
}
// Load vocalLanguage if present
if (songObj.contains("vocalLanguage"))
{
song.vocalLanguage = songObj["vocalLanguage"].toString();
}
// Load uniqueId if present (for backward compatibility)
if (songObj.contains("uniqueId"))
{
song.uniqueId = static_cast<uint64_t>(songObj["uniqueId"].toInteger());
}
else
{
// Generate new ID for old playlists without uniqueId
song.uniqueId = QRandomGenerator::global()->generate64();
song.cotCaption = songObj["use_cot_caption"].toBool(true);
}
songs.append(song);
}

View file

@ -5,16 +5,21 @@
#include "ui_SongDialog.h"
#include <QMessageBox>
SongDialog::SongDialog(QWidget *parent, const QString &caption, const QString &lyrics, const QString &vocalLanguage, bool cotEnabled)
SongDialog::SongDialog(QWidget *parent, const QString &caption, const QString &lyrics, const QString &vocalLanguage)
: QDialog(parent),
ui(new Ui::SongDialog)
{
ui->setupUi(this);
// Set initial values if provided
if (!caption.isEmpty())
{
ui->captionEdit->setPlainText(caption);
}
if (!lyrics.isEmpty())
{
ui->lyricsEdit->setPlainText(lyrics);
ui->checkBoxEnhanceCaption->setChecked(cotEnabled);
}
// Setup vocal language combo box
ui->vocalLanguageCombo->addItem("--", ""); // Unset
@ -105,11 +110,6 @@ QString SongDialog::getVocalLanguage() const
return ui->vocalLanguageCombo->currentData().toString();
}
bool SongDialog::getCotEnabled() const
{
return ui->checkBoxEnhanceCaption->isChecked();
}
void SongDialog::on_okButton_clicked()
{
// Validate that caption is not empty

View file

@ -20,13 +20,12 @@ class SongDialog : public QDialog
public:
explicit SongDialog(QWidget *parent = nullptr, const QString &caption = "", const QString &lyrics = "",
const QString &vocalLanguage = "", bool cotEnabled = true);
const QString &vocalLanguage = "");
~SongDialog();
QString getCaption() const;
QString getLyrics() const;
QString getVocalLanguage() const;
bool getCotEnabled() const;
private slots:
void on_okButton_clicked();

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<ui version="4.0">
<class>SongDialog</class>
<widget class="QDialog" name="SongDialog">
<property name="geometry">
@ -7,55 +7,52 @@
<x>0</x>
<y>0</y>
<width>500</width>
<height>410</height>
<height>400</height>
</rect>
</property>
<property name="windowTitle">
<string>Song Details</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,0">
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="captionLabel">
<property name="text">
<string>Caption:</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignTop</set>
<set>Qt::AlignTop</set>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBoxEnhanceCaption">
<property name="text">
<string>Enhance Caption</string>
<widget class="QTextEdit" name="captionEdit">
<property name="placeholderText">
<string>Enter song caption (e.g., "Upbeat pop rock anthem with driving electric guitars")</string>
</property>
<property name="checked">
<bool>true</bool>
<property name="maximumHeight">
<number>80</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QPlainTextEdit" name="captionEdit"/>
</item>
<item>
<widget class="QLabel" name="lyricsLabel">
<property name="text">
<string>Lyrics (optional):</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignTop</set>
<set>Qt::AlignTop</set>
</property>
</widget>
</item>
<item>
<widget class="QPlainTextEdit" name="lyricsEdit"/>
<widget class="QTextEdit" name="lyricsEdit">
<property name="placeholderText">
<string>Enter lyrics or leave empty for instrumental music</string>
</property>
<property name="minimumHeight">
<number>150</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="vocalLanguageLabel">
@ -63,7 +60,7 @@
<string>Vocal Language:</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignTop</set>
<set>Qt::AlignTop</set>
</property>
</widget>
</item>
@ -79,7 +76,7 @@
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -109,4 +106,4 @@
</widget>
<resources/>
<connections/>
</ui>
</ui>

View file

@ -16,11 +16,10 @@ public:
uint64_t uniqueId;
QString file;
QString vocalLanguage;
bool cotCaption;
QString json;
inline SongItem(const QString &caption = "", const QString &lyrics = "")
: caption(caption), lyrics(lyrics), cotCaption(true)
: caption(caption), lyrics(lyrics)
{
// Generate a unique ID using a cryptographically secure random number
uniqueId = QRandomGenerator::global()->generate64();