Xalora AI Docs
  • Getting Started
    • Welcome to Xalora
  • Agent Framework
    • Social Agents
  • Xalora Mesh
  • Ecosystem
    • Xalora Imagine
  • imaginaries NFT
  • Developer Reference
    • Integration Overview
  • Supported Models
  • Understanding Image Prompting
  • Using Xalora API with Eliza
  • REST API
    • Xalora Mesh API
  • Synchronous Request
  • Image Generation API
  • Xalora SDK
    • Introduction
  • Getting Started
  • Basic Image Generation
  • SmartGen
  • ComfyUI Workflow
  • FluxLora Workflow
  • Text2Video Workflow
  • LLM Gateway
    • Introduction
  • LLM Tool Calling
  • Embeddings
Powered by GitBook
On this page
  • ​Introduction
  • ​Available Workflows
  • ​Core Concepts
  • ​Before you start
  • ​Data Structures
  • ​Base Class
  • ​Task Option Type
  • ​Task Result Type
  • ​Functions
  • ​Execute a workflow
  • ​Query the task result
  • ​Execute a workflow and wait for the result
  • ​Cancel a task

ComfyUI Workflow

PreviousSmartGenNextFluxLora Workflow

Last updated 7 days ago

Execute ComfyUI workflows such as image upscaling and video generation.

Introduction

ComfyUI is an open-source program that allows users to use generative AI such as text-to-image, image-to-image, text-to-video and more through a flexible node-based interface. Xalora SDK abstracts away the complexity of ComfyUI, and provides simple functions in Node.js SDK to execute ComfyUI workflows on distributed GPU miners.

Available Workflows

The SDK currently supports the following ComfyUI workflows:

  • Text to Video Generation - Generate videos from text descriptions

  • Image Upscaling - Upscale images while maintaining quality

Core Concepts

Each workflow in ComfyUI is represented by a WorkflowTask. The SDK provides a base class that handles common functionality, which specific workflow implementations extend with their unique requirements.

Before you start

  1. Get an API key

  2. Define environment variables in .env file:

Copy

XALORA_API_KEY=your_api_key
XALORA_WORKFLOW_URL=https://sequencer-v2.xalora.xyz

Each WorkflowTask represents a task of a specific ComfyUI workflow (identified by a JSON workflow file describing the node structures in ComfyUI). A derived class of WorkflowTask is defined for each individual workflow, including necessary input parameters.

Copy

abstract class WorkflowTask {
  public consumer_id?: string;
  public job_id_prefix?: string;
  public timeout_seconds?: number;
  public workflow_id?: string;
  public api_key?: string;

  constructor(options: WorkflowTaskOptions) {
    this.consumer_id = options.consumer_id;
    this.job_id_prefix = options.job_id_prefix;
    this.timeout_seconds = options.timeout_seconds;
    this.workflow_id = options.workflow_id;
    this.api_key = options.api_key;
  }

  abstract get task_type(): WorkflowTaskType;
  abstract get task_details(): Record<string, any>;
}

Copy

interface WorkflowTaskOptions {
  consumer_id?: string;
  job_id_prefix?: string;
  timeout_seconds?: number;
  workflow_id?: string;
  api_key?: string;
}

Copy

interface WorkflowTaskResult {
  task_id: string
  status: 'waiting' | 'running' | 'finished' | 'failed' | 'canceled'
  result?: any
}

Executes a workflow task without waiting for the result.

Copy

async executeWorkflow(task: WorkflowTask): Promise<string>

Returns a Promise that resolves to the task ID.

Queries the result of a previously executed task.

Copy

async queryTaskResult(task_id: string): Promise<WorkflowTaskResult>

Returns a Promise that resolves to the task result.

Executes a workflow and waits until a result is returned. Internally, this function calls queryTaskResult at a fixed interval, and throws if the task times out.

Copy

async executeWorkflowAndWaitForResult(
    task: WorkflowTask,
    timeout: number = 300000,
    interval: number = 10000
  ): Promise<WorkflowTaskResult>

Cancels a previously submitted task.

Copy

async cancelTask(task_id: string): Promise<{ task_id: string; msg: string }>

Returns a Promise that resolves to the task ID and message.

Data Structures

Base Class

Task Option Type

Task Result Type

Functions

Execute a workflow

Query the task result

Execute a workflow and wait for the result

Cancel a task

​
SDK source code
​
​
​
​
​
​
​
​
​
​
​
​