Connecting node.js to space app.js

Python Code (App.py on Spaces)

import gradio as gr
from PIL import Image

def segment_image():
    # Dummy segmentation (convert to grayscale)
    segmented = img.convert("L")
    return segmented
    
demo = gr.Interface(
    fn=segment_image,
    inputs=gr.Image(type="pil"),
    outputs=gr.Image(type="pil"),
)

demo.launch()

JavaScript Code(being run locally on my machine)

I have this code in my JS file that I’m trying to send to my Spaces app, but it’s giving an error I can’t figure out.

import { Client } from "@gradio/client";
import fs from 'fs';

const app = await Client.connect("user4635/trial-gradio-blank");

const imageBuffer = fs.readFileSync('./Cristiano_Ronaldo_WC2022_-_02.jpg'); // Replace with your path
const base64Image = `data:image/jpeg;base64,${imageBuffer.toString('base64')}`;

// Send to Gradio
const result = await app.predict("/predict", [
  base64Image // Pass base64 string
]);

const output = result.data[0];

// Save the output image
fs.writeFileSync('./output_image.png', Buffer.from(output.data));

The error on my node console

node:internal/process/esm_loader:40
      internalBinding('errors').triggerUncaughtException(
                                ^
{
  type: 'status',
  endpoint: '/predict',
  fn_index: 0,
  time: 2025-03-20T02:56:19.193Z,
  original_msg: undefined,
  queue: true,
  title: undefined,
  message: null,
  visible: undefined,
  duration: undefined,
  stage: 'error',
  code: undefined,
  success: false
}

Does anyone know why this could be?

1 Like

For example, this sometimes happens when the Gradio client and Gradio GUI versions don’t match, but I don’t know how to downgrade the module version using JavaScript…

Same error but unrelated issue…