Opera8 commited on
Commit
f4515b6
·
verified ·
1 Parent(s): 981a1e4

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +13 -10
index.html CHANGED
@@ -285,17 +285,17 @@
285
  <div class="settings-group"><label>مقیاس هدایت (CFG):</label><input type="number" id="cfg_input" value="7.0" step="0.5"></div>
286
  </div>
287
 
288
- <!-- بخش اضافه شده: آپلود فایل نمونه -->
289
  <div class="settings-group" style="border-top: 1px solid #e2e8f0; padding-top: 15px; margin-bottom: 10px;">
290
  <label>آپلود آهنگ نمونه (Audio Conditioning):</label>
291
- <input type="file" id="audio_reference" accept="audio/*" style="padding: 10px;">
292
  </div>
293
 
294
- <!-- بخش اضافه شده: چک‌باکس بی‌کلام -->
295
  <div class="checkbox-wrapper">
296
  <input type="checkbox" id="instrumental_chk">
297
  <label for="instrumental_chk" style="font-size: 0.9rem; cursor: pointer;"><b>حالت بی‌کلام (Instrumental)</b><br><span style="font-size: 0.8rem; color: #666;">بدون خواننده، فقط موسیقی</span></label>
298
  </div>
 
299
 
300
  <div class="checkbox-wrapper"><input type="checkbox" id="think_checkbox" checked><label for="think_checkbox" style="font-size: 0.9rem; cursor: pointer;"><b>فعال‌سازی تفکر مدل</b><br><span style="font-size: 0.8rem; color: #666;">افزایش کیفیت آهنگ</span></label></div>
301
  </div>
@@ -500,10 +500,13 @@
500
  const store = transaction.objectStore("songs");
501
  store.add(newItem);
502
 
 
503
  const countReq = store.count();
504
  countReq.onsuccess = () => {
505
  if (countReq.result > 10) store.openCursor().onsuccess = (e) => { if(e.target.result) e.target.result.delete(); };
506
  };
 
 
507
  transaction.oncomplete = () => loadHistory();
508
  } catch (error) { console.error("Error saving:", error); }
509
  }
@@ -599,7 +602,7 @@
599
 
600
  initDB();
601
 
602
- // --- تابع آپلود فایل صوتی به Gradio ---
603
  async function uploadAudioFile(file) {
604
  const formData = new FormData();
605
  formData.append("files", file);
@@ -610,8 +613,7 @@
610
  });
611
  const data = await response.json();
612
  if (data && data.length > 0) {
613
- // ساختن آبجکت مورد نیاز Gradio Client
614
- // طبق لاگ‌ها، response یک آرایه از مسیرهاست: ["/tmp/gradio/..."]
615
  return {
616
  "path": data[0],
617
  "url": `${ACE_SPACE_URL}gradio_api/file=${data[0]}`,
@@ -638,7 +640,7 @@
638
  loader.style.display = 'block';
639
 
640
  try {
641
- // 1. آپلود فایل صوتی اگر انتخاب شده باشد
642
  const audioInput = document.getElementById('audio_reference');
643
  let uploadedAudioObj = null;
644
  if (audioInput.files.length > 0) {
@@ -646,7 +648,7 @@
646
  uploadedAudioObj = await uploadAudioFile(audioInput.files[0]);
647
  }
648
 
649
- // 2. درخواست متن و پرامپت از بک‌اند
650
  loaderText.innerText = "آلفا در حال نوشتن شعر و ملودی...";
651
  const isInstrumental = getChk('instrumental_chk');
652
 
@@ -682,10 +684,11 @@
682
  const { lyrics, musicPrompt } = data;
683
  loaderText.innerText = "در حال ضبط آهنگ در استودیو آلفا...";
684
 
685
- // اگر بی‌کلام انتخاب شده، متن خالی ارسال می‌شود (ایندکس 5)
686
  const finalLyrics = isInstrumental ? "" : lyrics;
687
 
688
- // ایندکس 2: فایل آپلود شده (null یا آبجکت فایل)
 
689
  const payload = [
690
  getVal('model_select'), "custom", uploadedAudioObj, "unknown", musicPrompt, finalLyrics, 0, "", "", "unknown",
691
  getNum('steps_input'), getNum('cfg_input'), true, getNum('seed_input'), null, -1,
 
285
  <div class="settings-group"><label>مقیاس هدایت (CFG):</label><input type="number" id="cfg_input" value="7.0" step="0.5"></div>
286
  </div>
287
 
288
+ <!-- بخش‌های اضافه شده طبق درخواست شما -->
289
  <div class="settings-group" style="border-top: 1px solid #e2e8f0; padding-top: 15px; margin-bottom: 10px;">
290
  <label>آپلود آهنگ نمونه (Audio Conditioning):</label>
291
+ <input type="file" id="audio_reference" accept="audio/*" style="padding: 10px; width: 100%; background: #fff;">
292
  </div>
293
 
 
294
  <div class="checkbox-wrapper">
295
  <input type="checkbox" id="instrumental_chk">
296
  <label for="instrumental_chk" style="font-size: 0.9rem; cursor: pointer;"><b>حالت بی‌کلام (Instrumental)</b><br><span style="font-size: 0.8rem; color: #666;">بدون خواننده، فقط موسیقی</span></label>
297
  </div>
298
+ <!-- پایان بخش‌های اضافه شده -->
299
 
300
  <div class="checkbox-wrapper"><input type="checkbox" id="think_checkbox" checked><label for="think_checkbox" style="font-size: 0.9rem; cursor: pointer;"><b>فعال‌سازی تفکر مدل</b><br><span style="font-size: 0.8rem; color: #666;">افزایش کیفیت آهنگ</span></label></div>
301
  </div>
 
500
  const store = transaction.objectStore("songs");
501
  store.add(newItem);
502
 
503
+ // --- دقیقا همان شرط حذف اضافه (بیشتر از 10) که قبلا بود ---
504
  const countReq = store.count();
505
  countReq.onsuccess = () => {
506
  if (countReq.result > 10) store.openCursor().onsuccess = (e) => { if(e.target.result) e.target.result.delete(); };
507
  };
508
+ // --------------------------------------------------------
509
+
510
  transaction.oncomplete = () => loadHistory();
511
  } catch (error) { console.error("Error saving:", error); }
512
  }
 
602
 
603
  initDB();
604
 
605
+ // --- تابع جدید: آپلود فایل صوتی به Gradio ---
606
  async function uploadAudioFile(file) {
607
  const formData = new FormData();
608
  formData.append("files", file);
 
613
  });
614
  const data = await response.json();
615
  if (data && data.length > 0) {
616
+ // ساخت آبجکت فایل برای گرادیو
 
617
  return {
618
  "path": data[0],
619
  "url": `${ACE_SPACE_URL}gradio_api/file=${data[0]}`,
 
640
  loader.style.display = 'block';
641
 
642
  try {
643
+ // 1. آپلود فایل نمونه (اگر کاربر انتخاب کرده باشد)
644
  const audioInput = document.getElementById('audio_reference');
645
  let uploadedAudioObj = null;
646
  if (audioInput.files.length > 0) {
 
648
  uploadedAudioObj = await uploadAudioFile(audioInput.files[0]);
649
  }
650
 
651
+ // 2. درخواست متن و پرامپت
652
  loaderText.innerText = "آلفا در حال نوشتن شعر و ملودی...";
653
  const isInstrumental = getChk('instrumental_chk');
654
 
 
684
  const { lyrics, musicPrompt } = data;
685
  loaderText.innerText = "در حال ضبط آهنگ در استودیو آلفا...";
686
 
687
+ // در حالت بی‌کلام، متن خالی ارسال می‌شود
688
  const finalLyrics = isInstrumental ? "" : lyrics;
689
 
690
+ // ایندکس 2 = فایل صوتی (یا null)
691
+ // ایندکس 5 = متن ترانه
692
  const payload = [
693
  getVal('model_select'), "custom", uploadedAudioObj, "unknown", musicPrompt, finalLyrics, 0, "", "", "unknown",
694
  getNum('steps_input'), getNum('cfg_input'), true, getNum('seed_input'), null, -1,