← Back to blog

Why ComfyUI Instead of the Built-in Image Extension

Running Stable Diffusion inside SillyTavern through ComfyUI is the most direct way to generate character card art that matches your persona's tags instead…

Published
  • comfyui
  • local-image-generation
  • character-card-art
  • sillytavern
  • stable-diffusion

SillyTavern ships with several image generation backends. ComfyUI is the one worth the setup cost when you care about consistency.

  • Node-level control. ControlNet, IPAdapter, regional prompting, and LoRA stacking are all just nodes. You are not limited to whatever parameters an extension author exposed.
  • Reusable workflows. Save a character card workflow once, swap the prompt text per card, keep the same seed, sampler, and upscaler.
  • Local and offline. No API keys, no per-image cost, no rate limits. Your card art stays on your machine.
  • Batch-friendly. Queue a folder of card prompts and walk away.

The tradeoff is real: ComfyUI is a graph editor, not a chat UI. Expect an afternoon of setup and occasional breakage after updates.

Prerequisites

ComponentNotes
SillyTavernRecent release; the ComfyUI backend has been stable since the 1.12.x line
ComfyUIRunning locally, API enabled, reachable at 127.0.0.1:8188
CheckpointAn SDXL or SD 1.5-derived model; SDXL handles card portraits better at 1024px
OptionalControlNet, IPAdapter, a face-fix workflow, upscaler (4x-UltraSharp or similar)
VRAM8 GB is workable for SDXL at 1024x1024; 12 GB+ is comfortable

If ComfyUI and SillyTavern run on different machines, expose ComfyUI on your LAN. Do not port-forward it to the open internet.

Step 1: Enable the ComfyUI Backend in SillyTavern

  1. Open SillyTavern and go to Extensions (the plug icon).
  2. Find Image Generation and expand it.
  3. Set Source to ComfyUI.
  4. Enter the ComfyUI URL, e.g. http://127.0.0.1:8188.
  5. Leave the workflow field empty for now — you will paste a JSON workflow next.

SillyTavern talks to ComfyUI’s /prompt API endpoint. If the connection test fails, ComfyUI is either not running or not listening on the expected interface.

Step 2: Export a Workflow from ComfyUI in API Format

This is the step most tutorials get wrong. SillyTavern does not consume the standard workflow JSON you save from the ComfyUI canvas — it needs the API format.

  1. Build your workflow in ComfyUI: checkpoint loader, CLIP text encode (positive and negative), KSampler, VAE decode, Save Image.
  2. Enable Dev mode in ComfyUI settings if the API export option is hidden.
  3. Use Save (API Format) — not the regular save.
  4. Open the resulting JSON and confirm it contains a prompt object with numeric node keys.

Paste that JSON into SillyTavern’s workflow field.

Step 3: Map Prompt Fields

SillyTavern needs to know which nodes receive the prompt text. In the Image Generation panel, you will see fields for positive prompt, negative prompt, and seed.

  • Find the node ID of your positive CLIP text encode node in the API JSON.
  • Enter that ID in the positive prompt field.
  • Repeat for the negative node.
  • Point the seed field at your KSampler node.

If your workflow uses a single combined prompt node, map both fields to the same ID and let SillyTavern concatenate.

Step 4: Build a Character Card Workflow

A workflow tuned for card art differs from a general-purpose one.

  • Resolution: 832x1216 or 1024x1024 for SDXL. Card thumbnails are usually square or portrait; generate at the aspect ratio you actually display.
  • Sampler: DPM++ 2M Karras or Euler a as a baseline. Do not chase exotic samplers before your prompt structure is solid.
  • Steps: 25-35. Beyond that returns diminish fast.
  • CFG: 5-7 for SDXL. Higher values flatten detail and oversaturate.
  • Face detail: Add a face-detailer or a second low-denoise pass. Card art lives or dies on the face.
  • Upscale: A 1.5x-2x upscale pass keeps the card sharp when users open it full-size.

Using the Card’s Own Metadata

SillyTavern can inject the character’s name, description, and personality into the prompt. Combined with a fixed style block — artist tags, lighting, framing — this gives you a consistent look across a card set without hand-writing every prompt.

Keep a style prefix string in a text file and paste it into the positive prompt template. Something like:

portrait, upper body, soft rim lighting, detailed eyes, neutral background, (style tokens here)

Then let SillyTavern append the character description. The result is reproducible card art per persona.

Step 5: Test with a Card

Create or open a character card, open the image generation panel, and generate. Watch the ComfyUI console — it logs every request and every node error.

Common failures:

  • Prompt ignored. Wrong node ID, or you pasted the non-API workflow.
  • Connection refused. ComfyUI bound to 127.0.0.1 while SillyTavern resolves localhost differently, or a firewall rule.
  • Black images. VAE mismatch. Load the VAE explicitly instead of relying on the checkpoint’s baked one.
  • OOM on 8 GB. Drop to 768x768, enable --lowvram, or use an SD 1.5 model.

Where Local Generation Fits in a Card Workflow

Local ComfyUI generation is best for:

  • Iterating on a card’s visual identity before publishing.
  • Producing a consistent set of variants for one character.
  • Avoiding content filters that block legitimate card art.

It is not the right tool for one-off images. If you need a single portrait and do not already have a ComfyUI install, a hosted backend is faster.

Practical Notes for Card Authors

  • Keep your workflow JSON in version control alongside the card. When you revisit a character months later, you can reproduce the exact art.
  • Store the seed in the card’s notes. Card art without a seed is unreproducible.
  • If you publish cards, generate at the highest resolution you can afford and downscale. Upscaling after the fact is worse than generating large.

Conclusion

ComfyUI plus SillyTavern gives you a reproducible, local pipeline for character card art with full control over style, consistency, and content. The setup cost is front-loaded: once the API workflow is mapped, generating art for a new card is a prompt edit and a click.

If you would rather skip the node graph entirely, the MiniTavern character card market hosts ready-made cards with finished art, and the MiniTavern iOS and Android apps plus the Chrome extension let you run SillyTavern-compatible chats without maintaining a local ComfyUI instance. Use local generation when you need control; use the market when you need a card now.

More guides you might like