Ezmary commited on
Commit
b439982
·
verified ·
1 Parent(s): 1bd3eb4

Update templates/index.html

Browse files
Files changed (1) hide show
  1. templates/index.html +21 -19
templates/index.html CHANGED
@@ -495,24 +495,23 @@
495
  const outputSection = document.getElementById('outputSection');
496
  const btnRestart = document.getElementById('btnRestart');
497
  const btnDownloadVideo = document.getElementById('btnDownloadVideo');
498
- // المان‌های اسلایدر اضافه شد
499
  const durationSlider = document.getElementById('durationSlider');
500
  const durationValueDisplay = document.getElementById('durationValue');
501
 
502
- // آدرس اسپیس تغییر کرد
503
  const VIDEO_SPACE_NAME = "mrbui1990/wan2-2-fp8da-aoti-faster";
504
  const TRANSLATOR_SPACE_URL_BASE = "https://hamed744-translate-tts-aloha.hf.space/gradio_api";
505
  const FN_INDEX_TRANSLATE_SPEAK = 1;
506
  const DEFAULT_TTS_VOICE_TRANSLATOR = "انگلیسی (آمریکا) - جنی (زن)";
507
- const DEFAULT_NEGATIVE_PROMPT = "bad quality, ugly, blurry, watermark, text, signature";
 
 
508
  const DEFAULT_PROMPT_TEXT = "";
509
  const TRANSPARENT_PIXEL_SRC = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';
510
- // مقدار پیش‌فرض زمان ویدیو اضافه شد
511
  const DEFAULT_VIDEO_DURATION = 4.3;
512
 
513
  let lastAttemptedVideoPayload = null;
514
 
515
- // تابع کمکی برای استایل اسلایدر اضافه شد
516
  function updateSliderStyle(slider) {
517
  const percentage = ((slider.value - slider.min) / (slider.max - slider.min)) * 100;
518
  const colorStops = `var(--accent-primary), var(--accent-secondary)`;
@@ -596,7 +595,6 @@
596
  imageDropZone.classList.remove('has-image');
597
  promptInput.value = DEFAULT_PROMPT_TEXT;
598
  generateButton.disabled = false;
599
- // مقداردهی اولیه اسلایدر اضافه شد
600
  durationSlider.value = DEFAULT_VIDEO_DURATION;
601
  durationValueDisplay.textContent = `${parseFloat(DEFAULT_VIDEO_DURATION).toFixed(1)} ثانیه`;
602
  updateSliderStyle(durationSlider);
@@ -678,7 +676,6 @@
678
  updateSliderStyle(durationSlider);
679
  });
680
 
681
- // Event listener برای اسلایدر اضافه شد
682
  durationSlider.addEventListener('input', () => {
683
  const value = parseFloat(durationSlider.value).toFixed(1);
684
  durationValueDisplay.textContent = `${value} ثانیه`;
@@ -712,7 +709,7 @@
712
  const proceedWithVideoGeneration = async () => {
713
  const persianPrompt = promptInput.value.trim();
714
  const imageFile = imageFileInput.files[0];
715
- const duration = parseFloat(durationSlider.value); // خواندن مقدار از اسلایدر
716
 
717
  if (!persianPrompt) { addStatusMessage('لطفاً توضیحات را وارد کنید.', 'error'); return; }
718
  if (!imageFile) { addStatusMessage('لطفاً تصویر انتخاب کنید.', 'error'); return; }
@@ -735,17 +732,22 @@
735
  setAiLoaderText("در حال ساخت ویدیو...");
736
 
737
  const client = await Client.connect(VIDEO_SPACE_NAME);
738
- const result = await client.predict("/generate_video", {
739
- input_image: imageFile,
740
- prompt: englishPrompt,
741
- steps: 6,
742
- negative_prompt: DEFAULT_NEGATIVE_PROMPT,
743
- duration_seconds: duration, // استفاده از مقدار اسلایدر
744
- guidance_scale: 1,
745
- guidance_scale_2: 1,
746
- seed: 0,
747
- randomize_seed: true
748
- });
 
 
 
 
 
749
 
750
  await handleSuccessfulVideoGeneration(result);
751
 
 
495
  const outputSection = document.getElementById('outputSection');
496
  const btnRestart = document.getElementById('btnRestart');
497
  const btnDownloadVideo = document.getElementById('btnDownloadVideo');
 
498
  const durationSlider = document.getElementById('durationSlider');
499
  const durationValueDisplay = document.getElementById('durationValue');
500
 
501
+ // آدرس اسپیس و پارامترها بروزرسانی شد
502
  const VIDEO_SPACE_NAME = "mrbui1990/wan2-2-fp8da-aoti-faster";
503
  const TRANSLATOR_SPACE_URL_BASE = "https://hamed744-translate-tts-aloha.hf.space/gradio_api";
504
  const FN_INDEX_TRANSLATE_SPEAK = 1;
505
  const DEFAULT_TTS_VOICE_TRANSLATOR = "انگلیسی (آمریکا) - جنی (زن)";
506
+ // --- START: UPDATED --- پرامپت منفی جدید جایگزین شد
507
+ const DEFAULT_NEGATIVE_PROMPT = "色调艳丽, 过曝, 静态, 细节模糊不清, 字幕, 风格, 作品, 画作, 画面, 静止, 整体发灰, 最差质量, 低质量, JPEG压缩残留, 丑陋的, 残缺的, 多余的手指, 画得不好的手部, 画得不好的脸部, 畸形的, 毁容的, 形态畸形的肢体, 手指融合, 静止不动的画面, 杂乱的背景, 三条腿, 背景人很多, 倒着走";
508
+ // --- END: UPDATED ---
509
  const DEFAULT_PROMPT_TEXT = "";
510
  const TRANSPARENT_PIXEL_SRC = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';
 
511
  const DEFAULT_VIDEO_DURATION = 4.3;
512
 
513
  let lastAttemptedVideoPayload = null;
514
 
 
515
  function updateSliderStyle(slider) {
516
  const percentage = ((slider.value - slider.min) / (slider.max - slider.min)) * 100;
517
  const colorStops = `var(--accent-primary), var(--accent-secondary)`;
 
595
  imageDropZone.classList.remove('has-image');
596
  promptInput.value = DEFAULT_PROMPT_TEXT;
597
  generateButton.disabled = false;
 
598
  durationSlider.value = DEFAULT_VIDEO_DURATION;
599
  durationValueDisplay.textContent = `${parseFloat(DEFAULT_VIDEO_DURATION).toFixed(1)} ثانیه`;
600
  updateSliderStyle(durationSlider);
 
676
  updateSliderStyle(durationSlider);
677
  });
678
 
 
679
  durationSlider.addEventListener('input', () => {
680
  const value = parseFloat(durationSlider.value).toFixed(1);
681
  durationValueDisplay.textContent = `${value} ثانیه`;
 
709
  const proceedWithVideoGeneration = async () => {
710
  const persianPrompt = promptInput.value.trim();
711
  const imageFile = imageFileInput.files[0];
712
+ const duration = parseFloat(durationSlider.value);
713
 
714
  if (!persianPrompt) { addStatusMessage('لطفاً توضیحات را وارد کنید.', 'error'); return; }
715
  if (!imageFile) { addStatusMessage('لطفاً تصویر انتخاب کنید.', 'error'); return; }
 
732
  setAiLoaderText("در حال ساخت ویدیو...");
733
 
734
  const client = await Client.connect(VIDEO_SPACE_NAME);
735
+
736
+ // --- START: UPDATED ---
737
+ // ساختار فراخوانی API بر اساس اطلاعات جدید بروزرسانی شد
738
+ // از fn_index: 0 و یک آرایه به جای آبجکت پارامتر استفاده می‌شود
739
+ const result = await client.predict(0, [
740
+ imageFile, // 0: input_image (File Object)
741
+ englishPrompt, // 1: prompt (String)
742
+ 6, // 2: steps (Number)
743
+ DEFAULT_NEGATIVE_PROMPT,// 3: negative_prompt (String)
744
+ duration, // 4: duration_seconds (Number)
745
+ 1, // 5: guidance_scale (Number)
746
+ 1, // 6: guidance_scale_2 (Number)
747
+ 0, // 7: seed (Number, 0 for random)
748
+ true // 8: randomize_seed (Boolean)
749
+ ]);
750
+ // --- END: UPDATED ---
751
 
752
  await handleSuccessfulVideoGeneration(result);
753