Skip to content

/upscale#

/upscale takes an image you attach and makes it bigger. It works on anything you can upload, not only on Eimi's own output, and it offers three very different methods: a fast pure-upscaler pass, a tiled diffusion pass that invents new detail, and a single low-denoise refine pass.

/upscale image: <attach> scale: 2

If you want to enlarge an image Eimi just generated, the ⬆️ button on the result card does the same job with fewer decisions. See Buttons.


All 11 parameters#

Only image is required.

Parameter Type Default What it does
image attachment (required) -- The image to upscale
method choice your saved upscale method, else model Which of the three pipelines runs
upscaler text (autocomplete) 8x-ESRGAN.pth at scale 8, otherwise 4x-AnimeSharp.pth The upscaler model that does the pixel enlargement
scale number (autocomplete) 2 Scale factor: 2, 4 or 8
prompt text none Description of the image, used by usdu and refine
model text (autocomplete) the source image's model, if Eimi generated it Checkpoint override for the diffusion pass (usdu and refine)
denoise number usdu 0.2, refine 0.35 Diffusion strength for the usdu and refine passes
steps number inherited from the source job or the model Sampler steps for the diffusion pass
cfg number inherited from the source job or the model CFG scale for the diffusion pass
sampler text (autocomplete) inherited from the source job or the model Sampler for the diffusion pass
scheduler text (autocomplete) inherited from the source job or the model Scheduler for the diffusion pass

prompt, model, denoise, steps, cfg, sampler and scheduler do nothing at all on the model method, which runs no diffusion.

/upscale ignores the upscaler you saved in /settings

Unlike /imagine, this command does not read your saved upscaler preference. If you do not pass upscaler, you get 8x-ESRGAN.pth when scale is 8, and the bot-wide default 4x-AnimeSharp.pth otherwise. Pass upscaler explicitly if you care which one runs.

The one user setting /upscale does read is your saved upscale method, which fills in method when you leave it empty. Its default is model.


Choosing a method#

model usdu refine
Shown as Model-based (fast) USDU (tiled diffusion) Refine (img2img low-denoise)
Runs diffusion No Yes, per tile Yes, once over the whole image
Invents new detail No Yes, the most of the three Some
Speed Fastest Slowest In between
Needs a prompt No Yes, and will find one for you Optional
Faithful to the original Completely Least Mostly
Practical size ceiling The upscaler's own limit 4 MP input About 4 MP output

Method: model (fast)#

A straight pass through an upscaler model, then a resize to your exact scale factor. No diffusion, no prompt, no model loading. This is what the ⬆️ upgrade button uses too.

When to pick it

  • You want the image bigger, not different.
  • The source is already clean and detailed.
  • You want the result in seconds rather than minutes.
  • The source came from an API model or an unusual pipeline, where the diffusion methods have nothing to inherit.

Parameters it uses

upscaler and scale. Everything else is ignored.

Limits

It cannot add detail that is not in the source. A soft or low-resolution original comes back as a larger soft image, sharper at the edges but no more detailed.


Method: usdu (tiled diffusion)#

Ultimate SD Upscale. The image is cut into overlapping tiles and each tile is re-diffused at high resolution, then the tiles are stitched back together. This is the method that genuinely adds detail: skin texture, fabric weave, foliage, individual hairs.

When to pick it

  • You want a real quality jump, not just more pixels.
  • The source is one of Eimi's own SDXL-family generations, where the original prompt and settings can be inherited.
  • You are willing to wait, and to accept that fine details will change.

Parameters it uses

prompt, model, denoise (default 0.2), steps, cfg, sampler, scheduler, plus upscaler and scale.

Where the sampling settings come from, in order: what you typed on the command, then the settings of the job that produced the image (if Eimi generated it and can still find the record), then the chosen model's own preset, and finally a generic fallback of 20 steps at CFG 5 with the deis sampler and beta scheduler.

Limits

USDU refuses some model families

Z-Image, Neta-Lumina and Ideogram 4 models cannot drive a USDU pass. You get a message reading USDU upscale is not compatible with {family} models. Try the regular upscale.... Use the model or refine method for images from those families, or pass a different model.

  • The input image is resized down to 4 megapixels before tiling, so feeding it something enormous does not make the result better.
  • Tiles are half the input size, clamped to between 256 and 1024 pixels per side.
  • Your prompt is only used tile by tile on SDXL-family models. On every other architecture the tile prompt is replaced with a fixed generic one (highly detailed, sharp focus, high quality, intricate details, clean, against a negative of blurry, low quality, low resolution, artifacts, jpeg artifacts), because prompt-obedient models otherwise paint a whole miniature scene into each tile.
  • Higher denoise means more invention and more risk of tile seams or repeated detail. Around 0.2 is the sweet spot; past about 0.35 tiles start disagreeing with each other.

When Eimi cannot find the source job#

USDU wants a prompt and a model. If you upscale an image Eimi generated and can still identify, it inherits both silently. Otherwise:

  • You gave no prompt: Eimi quietly describes the image itself with a vision model, in the description style that suits the default model, and gets on with the job. You see nothing extra.
  • You gave a prompt (or the automatic description failed): an ephemeral "USDU Upscale Setup" panel appears, because a model still has to be chosen.

The setup panel has a dropdown labelled Select a model for USDU and three buttons:

Button What it does
⚡ Use Generic Prompts Runs with high quality, detailed against blurry, low quality, artifacts, noise
✏️ Set Custom Prompts Opens a USDU Prompts (Optional) modal with Positive and Negative fields
✖️ Cancel Aborts, replying ❌ USDU upscale cancelled.

The panel times out after 120 seconds with ⏰ USDU setup timed out.


Method: refine (img2img low-denoise)#

A pixel upscale followed by one low-denoise img2img pass over the whole image. No tiling, so no seams, and the composition is preserved almost exactly. This is the same engine as the Hi-Res Fix, driven from the command line.

When to pick it

  • You want a cleaner, sharper version of the same image rather than a reinterpretation.
  • The source is from a family USDU refuses.
  • Tile seams from a previous USDU run annoyed you.

Parameters it uses

prompt, model, denoise, steps, cfg, sampler, scheduler, upscaler and scale.

Useful ranges:

Parameter Range Notes
denoise 0.1 - 0.7 Default 0.35. Below 0.2 barely changes anything, above 0.5 starts redrawing content
steps 1 - 50 Inherited from the source job (about three quarters of its step count) when you leave it empty
cfg 0.5 - 20.0 Falls back to the source job's CFG, then the model's, so a distilled CFG-1 model is not refined at CFG 7

Limits

Refine is capped at roughly 4 megapixels of output

The whole image is diffused in one pass, so the requested scale is reduced if it would push the output past about 4 MP, which is where the sampler runs out of VRAM on the card the bot runs on. The effective factor is clamped between 1.25x and 8x. Asking for 8x on an already-large image will quietly give you less than 8x.


Scale and upscalers#

scale accepts 2, 4 or 8. Anything else is rejected with Scale must be 2x, 4x, or 8x. The autocomplete only offers the factors the chosen upscaler supports.

The seven upscalers loaded at the moment are AnimeSharp (4x), UltraSharp (4x), NMKD-Siax_200k (4x), Remacri (4x), ESRGAN (8x), PureScale 4x (SAFMN) and R-ESRGAN 4x+ Anime6B. Which one to pick for which kind of image is covered on the Upscalers page.

Note

Passing seedvr2 as the upscaler runs a separate restoration-style upscaler. It supports a maximum of 4x, and asking for more gives seedvr2 only supports up to 4x scale. It is memory-hungry, so the bot clears VRAM before running it.


Error messages#

Message Why
Please provide an image file. The attachment was not an image
Image must be smaller than 25MB. Attachment over the 25MB limit
Scale must be 2x, 4x, or 8x. Invalid scale
{upscaler} only supports up to {max}x scale. The chosen upscaler cannot reach that factor
USDU upscale is not compatible with {family} models. Try the regular upscale... Z-Image, Neta-Lumina or Ideogram 4 on the usdu method
⏰ USDU setup timed out. The setup panel sat unanswered for 120 seconds
"Job Limit Reached" You already have 15 jobs queued

denoise, steps and cfg are clamped rather than rejected: denoise to 0-1, steps to 1-100 and cfg to 0-30, before each method applies its own tighter range.


Worked examples#

Fast 2x, no diffusion:

/upscale image: <attach>

Fast 4x with a specific upscaler:

/upscale image: <attach> scale: 4 upscaler: UltraSharp (4x)

Tiled diffusion with a description of the picture:

/upscale image: <attach> method: usdu prompt: a red fox sitting in deep snow, overcast light denoise: 0.2

Tiled diffusion driven by a chosen checkpoint and stronger sampling:

/upscale image: <attach> method: usdu model: WAI (v16.0) steps: 24 cfg: 5 denoise: 0.25

Gentle single-pass cleanup at 2x:

/upscale image: <attach> method: refine denoise: 0.25

Harder refine that redraws surface detail:

/upscale image: <attach> method: refine scale: 2 denoise: 0.45 steps: 20

See also#

  • Upscalers -- what each upscaler model is good at
  • Hi-Res Fix -- the same refine engine, run as part of a generation
  • /imagine -- note that its upscaler parameter only seeds the ⬆️ button
  • /turbo -- whose MrFlow backend upscales as part of the pipeline
  • Buttons -- the ⬆️ upgrade button, which is the one-click version of this command
Categories: Commands | Upscalers | Hi-Res Fix | Buttons