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
  • ​Overview
  • ​Basic Example
  • ​Parameters and Controls
  • ​Two-Step Generation
  • ​One-Step Generation

SmartGen

PreviousBasic Image GenerationNextComfyUI Workflow

Last updated 7 days ago

SmartGen for Image Generation (Experimental)

Experimental Feature: SmartGen is currently in beta. APIs and behaviors may change.


Overview

SmartGen provides a high-level interface for generating images with enhanced prompt engineering and dimension controls. It supports both FLUX and Stable Diffusion models.


Basic Example

Copy

import Xalora from 'xalora';

const xalora = new Xalora({
  apiKey: process.env['XALORA_API_KEY']
});

const response = await xalora.smartgen.generateImage({
  description: "A futuristic cyberpunk portrait of a young woman",
  image_model: "FLUX.1-dev",
  stylization_level: 3,
  detail_level: 4,
  color_level: 5,
  lighting_level: 2
});

SmartGen accepts the following key parameters:

Copy

{
  // Basic settings
  description: string,   // Main image description
  width?: number,
  height?: number,

  // AI model settings
  image_model?: string,  // Default: FLUX-1-dev
  is_sd?: boolean,       // Default: false. Set it to true if we want to use stable diffusion prompt
  language_model?: string,  // Default: nvidia/llama-3.1-nemotron-70b-instruct. For image prompt generation.

  // Dimension controls (all optional, scale 1-5)
  stylization_level: number,  // Realism vs artistic style. 1: Photorealistic 5: Highly artistic
  detail_level: number,       // Amount of detail. 1: Minimalist 5: Extreme intricate
  color_level: number,        // Color intensity. 1: Monochromatic 5: Hyper-saturated
  lighting_level: number,     // Lighting drama. 1: Flat, even lighting 5: Extreme dramatic lighting

  // Optional parameters
  must_include?: string,   // Elements to always include without altering
  examples?: string[],     // Example prompts for reference
  quality?: 'normal' | 'high',  // Controls iteration count
  num_iterations?: number,     // Default is 20. If specified, this overrides quality setting
  guidance_scale?: number,     // 3 for Flux and 6 for Stable Diffusion
  negative_prompt?: string,    // Negative prompt, only applies to Stable Diffusion
  param_only?: boolean          // Default: false. Set it to true if we want to return params without execution.
}

You can split the generation process into two steps:

Copy

// Step 1: Get image generation parameters
const params = await xalora.smartgen.generateImage({
  description: "A cyberpunk cityscape",
  image_model: "FLUX-1-dev",
  stylization_level: 4,
  must_include: "neon lights, flying cars",
  param_only: true  // Don't generate image yet. Only return the parameters
});

// Review and modify parameters if needed
console.log(params.parameters.prompt);

// Step 2: Call `images.generate` API to generate with the same or modified parameters
const imageResult = await xalora.images.generate({
  ...params.parameters
  // You may change some fields
});

Copy

{
  parameters: {
    prompt: string, // LLM-enhanced prompt
    model: string,
    width: number,
    height: number,
    num_iterations: number,
    guidance_scale: number,
    neg_prompt?: string,
  }
}

This allows you to preview and tweak the image generation parameters before invoking the generation method.

You can create an image with a simple description in one step:

Copy

const result = await xalora.smartgen.generateImage({
  description: "A cyberpunk cityscape",
  image_model: "FLUX-1-dev",
  stylization_level: 4,
  must_include: "neon lights, flying cars"
});

// Result image URL
console.log(result.url);

// You can inspect the image generation parameters
console.log(result.parameters);

Here are two examples showcasing the progression from monochromatic to vibrant colors (color_level from 1 to 5):

Example 1: “A futuristic cyberpunk portrait of a young woman”

Example 2: “Hot air balloons in the sky”.

Parameters and Controls

Two-Step Generation

Response Type in Parameter-only Mode (param_only set to true)

One-Step Generation

Demonstration

​
​
​
​
​
​
​