gaur3009 commited on
Commit
d261060
·
verified ·
1 Parent(s): 40c8f96

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +31 -39
index.html CHANGED
@@ -318,7 +318,7 @@
318
  const historyGrid = document.getElementById('history-grid');
319
 
320
  // API Endpoint
321
- const API_URL = 'https://multimodalart-cosxl.hf.space/api/predict';
322
 
323
  // Current state
324
  let uploadedImage = null;
@@ -388,14 +388,6 @@
388
  });
389
  });
390
 
391
- async function fileToBase64(file) {
392
- return new Promise((resolve, reject) => {
393
- const reader = new FileReader();
394
- reader.readAsDataURL(file);
395
- reader.onload = () => resolve(reader.result.split(',')[1]);
396
- reader.onerror = error => reject(error);
397
- });
398
- }
399
  generateBtn.addEventListener('click', async () => {
400
  if (!uploadedImage) {
401
  alert('Please upload an image first');
@@ -412,28 +404,24 @@
412
  loadingIcon.classList.remove('hidden');
413
  generateBtn.disabled = true;
414
 
415
- try {
416
- // Convert image to base64
417
- const imageBase64 = await fileToBase64(uploadedFile);
418
-
419
- // Construct API payload
420
- const payload = {
421
- data: [
422
- imageBase64, // Image data
423
- colorPrompt.value, // Positive prompt
424
  negativePrompt.value, // Negative prompt
425
  Number(guidanceScale.value), // Guidance scale
426
- Number(steps.value) // Inference steps
427
- ]
428
- };
 
429
 
430
- // API request
431
  const response = await fetch(API_URL, {
432
  method: 'POST',
433
- headers: {
434
- 'Content-Type': 'application/json',
435
- },
436
- body: JSON.stringify(payload)
437
  });
438
 
439
  // Handle response errors
@@ -443,25 +431,20 @@
443
  }
444
 
445
  const result = await response.json();
446
-
447
- // Handle different response formats
448
- let resultImageData;
449
- if (result.data && result.data[0]) {
450
- resultImageData = result.data[0];
451
- } else if (result.output) {
452
- resultImageData = result.output;
453
- } else {
454
- throw new Error('Unexpected API response format');
455
  }
456
 
457
  // Display results
458
  originalImage.src = URL.createObjectURL(uploadedFile);
459
- resultImage.src = `data:image/png;base64,${resultImageData}`;
460
  emptyState.classList.add('hidden');
461
  resultContainer.classList.remove('hidden');
462
 
463
  // Add to history
464
- addToHistory(URL.createObjectURL(uploadedFile), `data:image/png;base64,${resultImageData}`);
465
  historySection.classList.remove('hidden');
466
 
467
  } catch (error) {
@@ -471,9 +454,18 @@
471
  generateIcon.classList.remove('hidden');
472
  loadingIcon.classList.add('hidden');
473
  generateBtn.disabled = false;
474
-
475
- }
 
 
 
 
 
 
 
 
476
  });
 
477
 
478
  downloadBtn.addEventListener('click', () => {
479
  if (resultImage.src) {
 
318
  const historyGrid = document.getElementById('history-grid');
319
 
320
  // API Endpoint
321
+ const API_URL = 'https://multimodalart-cosxl.hf.space/run/predict';
322
 
323
  // Current state
324
  let uploadedImage = null;
 
388
  });
389
  });
390
 
 
 
 
 
 
 
 
 
391
  generateBtn.addEventListener('click', async () => {
392
  if (!uploadedImage) {
393
  alert('Please upload an image first');
 
404
  loadingIcon.classList.remove('hidden');
405
  generateBtn.disabled = true;
406
 
407
+ try {
408
+ // Prepare form data according to Gradio's API requirements
409
+ const formData = new FormData();
410
+ formData.append('data', JSON.stringify({
411
+ 'data': [
412
+ await fileToBase64(uploadedFile), // Image
413
+ colorPrompt.value, // Prompt
 
 
414
  negativePrompt.value, // Negative prompt
415
  Number(guidanceScale.value), // Guidance scale
416
+ Number(steps.value) // Steps
417
+ ],
418
+ 'fn_index': 0 // Important for Gradio interface
419
+ }));
420
 
421
+ // API request with proper headers
422
  const response = await fetch(API_URL, {
423
  method: 'POST',
424
+ body: formData
 
 
 
425
  });
426
 
427
  // Handle response errors
 
431
  }
432
 
433
  const result = await response.json();
434
+
435
+ // Handle Gradio response format
436
+ if (!result.data || !result.data[0]) {
437
+ throw new Error('Invalid API response format');
 
 
 
 
 
438
  }
439
 
440
  // Display results
441
  originalImage.src = URL.createObjectURL(uploadedFile);
442
+ resultImage.src = `data:image/png;base64,${result.data[0]}`;
443
  emptyState.classList.add('hidden');
444
  resultContainer.classList.remove('hidden');
445
 
446
  // Add to history
447
+ addToHistory(URL.createObjectURL(uploadedFile), `data:image/png;base64,${result.data[0]}`);
448
  historySection.classList.remove('hidden');
449
 
450
  } catch (error) {
 
454
  generateIcon.classList.remove('hidden');
455
  loadingIcon.classList.add('hidden');
456
  generateBtn.disabled = false;
457
+ }
458
+ });
459
+
460
+ // Helper function to convert file to base64
461
+ async function fileToBase64(file) {
462
+ return new Promise((resolve, reject) => {
463
+ const reader = new FileReader();
464
+ reader.readAsDataURL(file);
465
+ reader.onload = () => resolve(reader.result.split(',')[1]);
466
+ reader.onerror = error => reject(error);
467
  });
468
+ }
469
 
470
  downloadBtn.addEventListener('click', () => {
471
  if (resultImage.src) {