diff --git a/embd_res/kcpp_musicui.embd b/embd_res/kcpp_musicui.embd index 77230ec8c..d2beacc40 100644 --- a/embd_res/kcpp_musicui.embd +++ b/embd_res/kcpp_musicui.embd @@ -303,21 +303,16 @@ function toggleAdvanced(){ function getFormData(){ const ids=["caption","lyrics","bpm","duration","keyscale","timesignature", "vocal_language","seed","lm_temperature","lm_cfg_scale","lm_top_p","inference_steps", - "guidance_scale","shift","stereo","gen_codes","audio_codes"]; + "guidance_scale","shift","audio_codes"]; const data={}; ids.forEach(id=>{ const el=document.getElementById(id); if(!el) return; const v=el.value; - if(v=="on") - { - data[id]=true; - }else if(v=="off") - { - data[id]=false; - } - else if(v!=="") {data[id]=isNaN(v)?v:Number(v);} + if(v!=="") {data[id]=isNaN(v)?v:Number(v);} }); + data["stereo"] = (document.getElementById("stereo").checked ? true : false); + data["gen_codes"] = (document.getElementById("gen_codes").checked ? true : false); return data; } @@ -490,6 +485,7 @@ function clearFields() }); document.getElementById("caption").value = ""; document.getElementById("lyrics").value = ""; + document.getElementById("audio_codes").value = ""; } function exportPlan(){ const data=getFormData(); diff --git a/otherarch/acestep/ace-qwen3.cpp b/otherarch/acestep/ace-qwen3.cpp index bdc9ca4ba..e5c67671c 100644 --- a/otherarch/acestep/ace-qwen3.cpp +++ b/otherarch/acestep/ace-qwen3.cpp @@ -917,14 +917,17 @@ static std::vector generate_phase1_batch( seqs[i].fsm.apply_mask(lc); // After : audio code constraint unless lyrics_mode - // if (seqs[i].codes_phase && !lyrics_mode) { - // for (int v = 0; v < AUDIO_CODE_BASE; v++) - // if (v != TOKEN_IM_END) lc[v] = -1e9f; - // } + if (seqs[i].codes_phase && !lyrics_mode) { + for (int v = 0; v < AUDIO_CODE_BASE; v++) + if (v != TOKEN_IM_END) lc[v] = -1e9f; + } - // kcpp: prevent outputting audio codes - for (int v = AUDIO_CODE_BASE; v < AUDIO_CODE_COUNT+AUDIO_CODE_BASE; v++) - if (v != TOKEN_IM_END) lc[v] = -1e9f; + // kcpp: prevent outputting audio codes during lyrics + if(lyrics_mode) + { + for (int v = AUDIO_CODE_BASE; v < AUDIO_CODE_COUNT+AUDIO_CODE_BASE; v++) + if (v != TOKEN_IM_END) lc[v] = -1e9f; + } int tok = kcpp_quick_sample(lc,V,quicklastntoks,1.04f,top_p,30,temperature,acestep_lm_rng); quicklastntoks.push_back(tok); @@ -1560,12 +1563,8 @@ std::string acestep_prepare_request(const music_generation_inputs inputs) ace.timesignature = req.timesignature; ace.vocal_language = req.vocal_language; - //kcpp: codes suck don't use them - req.thinking = false; - req.audio_codes = ""; - bool user_has_codes = !req.audio_codes.empty(); - bool need_lm_codes = false;//req.thinking && !user_has_codes; + bool need_lm_codes = inputs.gen_codes && !user_has_codes; bool is_simple = ace.lyrics.empty();