← Workflows

SDXL Base Image

Text → Image

Text-to-image with an SDXL checkpoint. General-purpose still generation from a prompt — no character LoRA, no source image.

sdxl_base8 GB VRAM
A glazed ceramic teapot on a wooden table beside a window in morning light.
Made with sdxl_base on our own hardware. Prompt: “a glazed ceramic teapot on a wooden table beside a window, morning light, still life photograph”

Calling it

FlixML has no generate button: you tell your agent what you want and it calls the API on your install. The id is what names this workflow.

POST /api/image/generate
{
  "workflow": "sdxl_base",
  "prompt": 0,
  "checkpoint": 0
}

Parameters

promptstringrequired

Comma-separated tags and short phrases, the way SDXL's training captions were written. A sentence still parses — it does not fail — but every article and preposition spends part of the same budget, so tags buy more control per token. Order is weight: subject, appearance, clothing, pose, setting, lighting, then medium and quality. 'young woman, short white hair, black leather jacket, standing in a rain-wet alley, neon signs, night, shallow depth of field, photorealistic, sharp focus'. Push or pull one term with `(term:1.2)` or `(term:0.8)`; bare `(term)` is 1.1. Keep it near 75 tokens — CLIP encodes the rest in a later chunk where it pulls less. Match the checkpoint: one trained on booru tags wants booru tags, one merged for realism wants photographic ones, and its model page is the authority on any trigger or quality tags it expects.

checkpointstringrequired

Checkpoint model filename discovered from the local ComfyUI node or supplied by the caller

negative_promptstringdefault

What to steer away from, same tag syntax. SDXL uses this — unlike FLUX.2, which has no negative and needs the positive to say 'sharp focus' instead. Start with the defects you actually see rather than a stock wall of tags: 'blurry, low quality, extra fingers, watermark, text'. An oversized negative eats guidance and flattens the image.

widthintegerdefault 832
heightintegerdefault 1216
seedintegerdefault 42
stepsintegerdefault 40
cfgfloatdefault 5
samplerstringdefault dpmpp_2m
schedulerstringdefault karras

Your install is the source of truth: GET /api/workflows returns these parameters as they are on your machine.

Same input, different job