Opera10 commited on
Commit
8e435d6
·
verified ·
1 Parent(s): dcb7e8d

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +13 -15
index.html CHANGED
@@ -104,13 +104,12 @@
104
  <script type="module">
105
  import { Client } from "https://cdn.jsdelivr.net/npm/@gradio/client/dist/index.min.js";
106
 
107
- // فرمت‌بندی تمامی پارامترها به همراه castTo برای تبدیل نوع داده‌ها هنگام ارسال
108
  const formSchema = [
109
  // گروه: Resolution
110
  { group: "رزولوشن و ابعاد", id: "max_width", type: "number", val: 1120 },
111
  { group: "رزولوشن و ابعاد", id: "max_height", type: "number", val: 1344 },
112
  { group: "رزولوشن و ابعاد", id: "target_mp", type: "number", val: 1.15, step: 0.05 },
113
- // توجه: castTo="number" اضافه شد تا "64" به عدد صحیح 64 تبدیل شود
114
  { group: "رزولوشن و ابعاد", id: "snap_multiple", type: "select", options: ["32", "64"], val: "64", castTo: "number" },
115
  { group: "رزولوشن و ابعاد", id: "custom_res_enabled", type: "checkbox", val: false },
116
 
@@ -173,7 +172,6 @@
173
  { group: "حالت چند مرجعی (MSR)", id: "msr_ref3", type: "file", val: null },
174
  { group: "حالت چند مرجعی (MSR)", id: "msr_ref4", type: "file", val: null },
175
  { group: "حالت چند مرجعی (MSR)", id: "msr_background", type: "file", val: null },
176
- // توجه: castTo="number" اضافه شد
177
  { group: "حالت چند مرجعی (MSR)", id: "msr_frame_count", type: "select", options: ["17", "25", "33", "41"], val: "41", castTo: "number" },
178
  { group: "حالت چند مرجعی (MSR)", id: "msr_guide_strength", type: "number", val: 1.0, step: 0.05 },
179
  { group: "حالت چند مرجعی (MSR)", id: "msr_lora_strength", type: "number", val: 0.7, step: 0.05 },
@@ -289,7 +287,7 @@
289
  try {
290
  const client = await Client.connect("Fighterdan/LTX-2.3-10Eros_I2V", { hf_token: hfToken });
291
 
292
- // گرفتن فایل‌های MSR در صورت وجود، یا رد کردن مقدار null
293
  const getFile = (id) => document.getElementById(id) && document.getElementById(id).files.length ? document.getElementById(id).files[0] : null;
294
 
295
  const enhanceParams = {
@@ -336,12 +334,12 @@
336
  btn.disabled = true;
337
  loader.style.display = "block";
338
  videoRes.style.display = "none";
339
- liveLogs.innerHTML = ""; // پاک کردن لاگ‌های قبلی
340
  statusText.innerText = "در حال اتصال...";
341
  appendLog("شروع فرآیند اتصال به سرور...");
342
 
343
  try {
344
- // خواندن پارامترها و کست کردن مقادیر رشته‌ای به عددی (در صورت نیاز)
345
  const params = {
346
  image_path: imgInput.files[0],
347
  prompt: promptInput,
@@ -361,22 +359,27 @@
361
  params[field.id] = el.files[0];
362
  }
363
  } else if (field.type === "select") {
364
- // تبدیل نوع دراپ‌داون‌هایی که نیاز به عدد دارند
365
  params[field.id] = field.castTo === "number" ? Number(el.value) : el.value;
366
  } else {
367
  params[field.id] = el.value;
368
  }
369
  });
370
 
 
 
 
 
 
 
 
371
  appendLog("پارامترها آماده شد. اتصال به کلاینت Gradio...");
372
  const client = await Client.connect("Fighterdan/LTX-2.3-10Eros_I2V", { hf_token: hfToken });
373
 
374
  appendLog("متصل شد! ارسال درخواست تولید ویدیو (submit)...");
375
 
376
- // استفاده از Submit به جای Predict برای دریافت رویدادهای زنده (لاگ و وضعیت)
377
  const job = client.submit("/generate", params);
378
 
379
- // گرفتن رویدادهای وضعیت (در صف، در حال اجرا و غیره)
380
  job.on("status", (status) => {
381
  if (status.stage === "pending") {
382
  const queueInfo = status.queue_position !== undefined ? ` (جایگاه در صف: ${status.queue_position})` : "";
@@ -394,12 +397,10 @@
394
  }
395
  });
396
 
397
- // گرفتن لاگ‌های زنده که توسط ��رور چاپ می‌شود (مثل خطاهای ComfyUI)
398
  job.on("log", (logData) => {
399
  appendLog("[سرور]: " + logData.log);
400
  });
401
 
402
- // گرفتن خروجی نهایی
403
  job.on("data", (result) => {
404
  appendLog("پاسخ نهایی دریافت شد.");
405
  const data = result.data;
@@ -415,7 +416,6 @@
415
  }
416
  });
417
 
418
- // در صورت بروز خطا در ارسال درخواست
419
  job.on("error", (error) => {
420
  console.error(error);
421
  statusText.innerText = "خطای کلاینت: " + error.message;
@@ -427,12 +427,10 @@
427
  statusText.innerText = "خطا در برقراری ارتباط اولیه: " + error.message;
428
  appendLog("استثنای اتصال: " + error.message);
429
  } finally {
430
- // از آنجایی که job ناهمگام (Event-based) است، دکمه را در زمان پایان (داخل status) یا همینجا با تایمر موقت آزاد می‌کنیم.
431
- // به صورت اصولی دکمه باید وقتی stage === complete شد فعال شود، اما برای اطمینان این تنظیمات را اینجا می‌گذاریم.
432
  setTimeout(() => {
433
  btn.disabled = false;
434
  loader.style.display = "none";
435
- }, 3000); // فقط برای بازگرداندن وضعیت دکمه
436
  }
437
  });
438
  </script>
 
104
  <script type="module">
105
  import { Client } from "https://cdn.jsdelivr.net/npm/@gradio/client/dist/index.min.js";
106
 
107
+ // فرمت‌بندی تمامی پارامترها
108
  const formSchema = [
109
  // گروه: Resolution
110
  { group: "رزولوشن و ابعاد", id: "max_width", type: "number", val: 1120 },
111
  { group: "رزولوشن و ابعاد", id: "max_height", type: "number", val: 1344 },
112
  { group: "رزولوشن و ابعاد", id: "target_mp", type: "number", val: 1.15, step: 0.05 },
 
113
  { group: "رزولوشن و ابعاد", id: "snap_multiple", type: "select", options: ["32", "64"], val: "64", castTo: "number" },
114
  { group: "رزولوشن و ابعاد", id: "custom_res_enabled", type: "checkbox", val: false },
115
 
 
172
  { group: "حالت چند مرجعی (MSR)", id: "msr_ref3", type: "file", val: null },
173
  { group: "حالت چند مرجعی (MSR)", id: "msr_ref4", type: "file", val: null },
174
  { group: "حالت چند مرجعی (MSR)", id: "msr_background", type: "file", val: null },
 
175
  { group: "حالت چند مرجعی (MSR)", id: "msr_frame_count", type: "select", options: ["17", "25", "33", "41"], val: "41", castTo: "number" },
176
  { group: "حالت چند مرجعی (MSR)", id: "msr_guide_strength", type: "number", val: 1.0, step: 0.05 },
177
  { group: "حالت چند مرجعی (MSR)", id: "msr_lora_strength", type: "number", val: 0.7, step: 0.05 },
 
287
  try {
288
  const client = await Client.connect("Fighterdan/LTX-2.3-10Eros_I2V", { hf_token: hfToken });
289
 
290
+ // گرفتن فایل‌های MSR در صورت وجود
291
  const getFile = (id) => document.getElementById(id) && document.getElementById(id).files.length ? document.getElementById(id).files[0] : null;
292
 
293
  const enhanceParams = {
 
334
  btn.disabled = true;
335
  loader.style.display = "block";
336
  videoRes.style.display = "none";
337
+ liveLogs.innerHTML = "";
338
  statusText.innerText = "در حال اتصال...";
339
  appendLog("شروع فرآیند اتصال به سرور...");
340
 
341
  try {
342
+ // خواندن پارامترها و کست کردن مقادیر رشته‌ای به عددی
343
  const params = {
344
  image_path: imgInput.files[0],
345
  prompt: promptInput,
 
359
  params[field.id] = el.files[0];
360
  }
361
  } else if (field.type === "select") {
 
362
  params[field.id] = field.castTo === "number" ? Number(el.value) : el.value;
363
  } else {
364
  params[field.id] = el.value;
365
  }
366
  });
367
 
368
+ // ==========================================
369
+ // خط کلیدی برای رفع خطا:
370
+ // پارامتر enhance_budget مختص API بهینه‌سازی است و
371
+ // نباید در درخواست /generate ارسال شود!
372
+ // ==========================================
373
+ delete params.enhance_budget;
374
+
375
  appendLog("پارامترها آماده شد. اتصال به کلاینت Gradio...");
376
  const client = await Client.connect("Fighterdan/LTX-2.3-10Eros_I2V", { hf_token: hfToken });
377
 
378
  appendLog("متصل شد! ارسال درخواست تولید ویدیو (submit)...");
379
 
380
+ // استفاده از Submit به جای Predict برای دریافت رویدادهای زنده
381
  const job = client.submit("/generate", params);
382
 
 
383
  job.on("status", (status) => {
384
  if (status.stage === "pending") {
385
  const queueInfo = status.queue_position !== undefined ? ` (جایگاه در صف: ${status.queue_position})` : "";
 
397
  }
398
  });
399
 
 
400
  job.on("log", (logData) => {
401
  appendLog("[سرور]: " + logData.log);
402
  });
403
 
 
404
  job.on("data", (result) => {
405
  appendLog("پاسخ نهایی دریافت شد.");
406
  const data = result.data;
 
416
  }
417
  });
418
 
 
419
  job.on("error", (error) => {
420
  console.error(error);
421
  statusText.innerText = "خطای کلاینت: " + error.message;
 
427
  statusText.innerText = "خطا در برقراری ارتباط اولیه: " + error.message;
428
  appendLog("استثنای اتصال: " + error.message);
429
  } finally {
 
 
430
  setTimeout(() => {
431
  btn.disabled = false;
432
  loader.style.display = "none";
433
+ }, 3000);
434
  }
435
  });
436
  </script>