Your complete reference for Stable Diffusion: prompt knowledge, settings, extensions and multi-character guides.
What the dials and building blocks actually do — not just which value to set.
| Term | What it is | In practice |
|---|---|---|
| Checkpoint | The model file itself, 2–7 GB. Contains everything: image knowledge, text understanding and the decoder. It decides what the model knows at all and how it draws. | A Pony checkpoint understands booru tags, a photoreal one understands sentences. The prompt has to match the checkpoint, not the other way round. |
| VAE | The translator between the internal computation space and the finished image. Without it you would get numeric noise instead of pixels. | A missing or mismatched VAE makes images washed out, grey or purple-tinted. Most checkpoints ship with one. |
| Latent Space | SD does not compute in pixels but in a representation compressed to one eighth. A 512x512 image is 64x64 internally. | That is why resolutions in steps of 64 make sense, and why size is expensive: doubling the edge length quadruples compute. |
| Seed | The starting number for the noise the image grows from. It decides which of infinitely many possible images you get. | Same seed, same prompt, same settings gives the same image. To vary deliberately, fix the seed and change a single tag. |
| Steps | How often the model removes noise step by step. Each step brings the image closer to the target. | 20–30 is almost always enough. Beyond about 40 barely anything changes while time keeps rising linearly. |
| Sampler | The algorithm that performs the steps. Different samplers take different routes and produce slightly different images. | DPM++ 2M Karras is the reliable default. Euler a changes with every step count, which makes it poor for comparisons. |
| Scheduler | Defines how much noise disappears per step — evenly, or a lot early and little at the end. | Karras shifts the work into the earlier steps and gives cleaner results at low step counts. That is why it is usually part of the sampler name. |
| Term | What it is | In practice |
|---|---|---|
| CFG Scale | How strongly the model is forced to follow your prompt instead of drawing freely. Technically: the gap between the prediction with and without the prompt is amplified. | 7 is balanced. Below 5 it turns soft and ignores details, above 12 colours look burnt and edges harsh. Higher helps with multiple people but also amplifies flaws in the prompt. |
| Clip Skip | How many of the final text-understanding layers are skipped. 1 uses all of them, 2 drops the last one. | Not a creativity dial. Anime and Pony models were trained with clip skip 2 and need it; photoreal SD 1.5 models want 1. The wrong value means the model reads your prompt differently than it was trained to. |
| Token und 75er-Grenze | The prompt is split into tokens, roughly word fragments. CLIP processes 75 tokens at a time; longer prompts are cut into blocks. | Within a block, early tokens carry more weight. A 300-word prompt dilutes everything — shortening often does more than weighting. |
| Gewichtung | The notation (tag:1.3) increases attention on that tag, (tag:0.7) reduces it. | Above 1.5 it usually gets ugly: the model exaggerates the feature instead of hitting it better. If the same thing appears several times, the effect adds up unintentionally. |
| BREAK | A keyword that ends the current 75-token block immediately. Everything after it starts a fresh block. | Useful to separate two people or two areas of the image so their features do not bleed into each other. |
| Negativ-Prompt | A second prompt whose direction is subtracted from the result. It describes what the image should move away from. | Only has an effect at CFG above 1. Negations in the positive prompt such as 'no shoes' barely work — what you do not want belongs here. |
| Term | What it is | In practice |
|---|---|---|
| LoRA | A small add-on file, 10–200 MB, that adjusts the checkpoint in a targeted way — for a specific character, style or concept. | A LoRA does not replace a model, it bends it. It must match the model family: an SD 1.5 LoRA will not work on SDXL or Pony. |
| LoRA-Gewicht | The number in <lora:name:0.8> decides how strongly the LoRA intervenes. | 0.6 to 0.9 is the usable range. From 1.0 the LoRA takes over and often wrecks anatomy and composition. Multiple LoRAs add up. |
| Embedding / Textual Inversion | A tiny file of a few kilobytes. It does not change the model, it teaches it a new word pointing at knowledge it already has. | Typical for negative bundles such as EasyNegative: one word replaces a long list. Here too the model family must match. |
| Hypernetwork | Older technique with the same goal as LoRA: steering the model in a direction after the fact. | Practically obsolete. Given the choice, take a LoRA — better quality, better support. |
| ControlNet | A second network that dictates the structure of the image: pose, depth, edges or outlines taken from a reference. | The prompt still decides the look, ControlNet the arrangement. Strength controls how strictly the reference is followed — 1.0 is exact, 0.5 only a hint. |
| Refiner | A second model that takes over only the final steps and sharpens detail. Comes from the SDXL concept. | Costs twice the memory and rarely adds much with good community models. When in doubt, skip it. |
| Term | What it is | In practice |
|---|---|---|
| Hires Fix | Generates the image small, enlarges it and lets the model work over it once more. | The reason: SD models were trained at 512 or 1024 pixels. Generating at double size directly produces two heads or four legs. Hires Fix avoids that. |
| Denoise Strength | How much of the source image is discarded. 0 changes nothing, 1 creates a completely new image. | For Hires Fix use 0.3 to 0.5 — above that the model invents new content instead of refining. In img2img this value decides everything. |
| Upscaler | The method used for enlarging. Purely computational such as Lanczos, or with a small dedicated model such as ESRGAN. | 4x-UltraSharp for detail, R-ESRGAN Anime6B for drawings. An upscaler does not invent detail, it guesses plausibly. |
| img2img | Instead of pure noise the model starts from your image and changes it according to the prompt. | How much is governed by denoise strength. Below 0.4 the source stays clearly recognisable, above 0.7 it is only a rough suggestion. |
| Inpainting | Only an area you mask is recomputed, the rest stays untouched. | The remedy for broken hands and crooked eyes. Use a soft mask edge, otherwise the seam shows. |
| ADetailer | Automatically finds faces, hands or people, crops them, regenerates them at full resolution and pastes them back. | The biggest quality jump for full-body shots where the face would otherwise be only a few pixels. Veyra generates a dedicated face prompt for it. |
| Term | What it is | In practice |
|---|---|---|
| Node | A single work step shown as a box — load model, encode text, sample, save. Each has inputs on the left and outputs on the right. | What is a form field in A1111 is a separate building block here. Everything is visible, but everything must be wired up yourself. |
| Workflow | The complete wiring of all nodes. Saved as JSON and additionally embedded in every generated PNG. | Dropping someone else's image into ComfyUI loads their entire workflow. The fastest way to learn from others. |
| KSampler | The node that does the actual work. Seed, steps, CFG, sampler and scheduler all sit here in one place. | When an image does not turn out right, this is the first place to look. |
| Conditioning | The prompt translated into numbers. Positive and negative are two separate strands, both feeding into the KSampler. | ControlNet and regional tools hook in here, not at the text. That is why they sit between text encoding and sampler. |
| Latent Image | The empty computation canvas the image grows on. Width, height and batch size are set here. | In img2img the latent comes from an image passed through the VAE encoder instead. |
| VAE Decode | Turns the finished latent into a visible image. The final step before saving. | If this node is missing or the wrong VAE is attached you get colour-shifted or entirely unrecognisable output. |
| Custom Nodes | Third-party extensions adding new building blocks — ControlNet preprocessing, image editing, automation. | Install via the ComfyUI Manager, not by hand. If a node is missing when loading someone's workflow, the manager names it. |
| Term | What it is | In practice |
|---|---|---|
| Backend Diffusers vs Original | SD.Next can use two different engines. Diffusers is the modern Hugging Face library, Original is the old A1111 code. | Diffusers is the default and supports more model types. Only use Original when an old extension insists on it. |
| FP16 und BF16 | Computation precision. FP32 is full, FP16 halves memory and time, BF16 is a more robust variant of it. | FP16 is practically always right. On older cards it can produce black images — switch to BF16 or FP32 then. |
| xformers und SDPA | Two methods that run the most memory-hungry computation step more efficiently. | SDPA is built into PyTorch and needs no installation. xformers is sometimes faster but an extra dependency. Both save considerable memory. |
| Model Offload | Parts of the model are moved between video memory and system memory instead of keeping everything on the card at once. | Enables SDXL on 6 GB of video memory but costs time. Only enable it when nothing runs without it. |
ADetailer (After Detailer) is an SD extension that automatically detects faces and hands in generated images and improves them via inpainting. Without ADetailer, anime faces often look blurry or distorted, especially at lower resolutions.
| Model | Detects | Best Use |
|---|---|---|
| face_yolov8n.pt | Anime faces | Default for all anime/hentai images. Small and fast. |
| face_yolov8s.pt | Faces (more accurate) | For semi-realistic and ultra-realistic. Detects more details. |
| hand_yolov8s.pt | Hands | Fixes wrong finger count and distorted hands. |
| person_yolov8n-seg.pt | Full body | Refines anatomy and proportions. Use lower denoise. |
| Setting | Recommended | Explanation |
|---|---|---|
| Denoising Strength | 0.25 – 0.35 | 0.25 = slight improvement, 0.35 = strong correction. Too high = face is completely regenerated. |
| Inpaint Area | Only Masked (Face) | Only the detected face is redrawn, the rest stays. |
| Mask Erosion | 4 | How far the mask extends around the face. 4 is a good default. |
Weighting lets you control how strongly SD pays attention to specific tags. This is one of the most important tools to control your results.
| Syntax | Effect | Example |
|---|---|---|
(tag:1.2) |
Emphasize tag more (20% more) | (blue eyes:1.2) = more vivid blue eyes |
(tag:0.8) |
Weaken tag (20% less) | (blush:0.8) = subtler blushing |
((tag)) |
1.21x boost (1.1 x 1.1) | ((detailed eyes)) |
[tag] |
0.9x reduction | [smile] |
Lighting has a huge impact on the mood and quality of your images. Here are the most important lighting tags and what they do:
| Tag | Effect | Best Use |
|---|---|---|
rim lighting |
Glowing edge around the figure, separates it from background | Dramatic scenes, night settings, silhouettes |
volumetric lighting |
Visible light rays through dust or fog | Mystical atmosphere, dungeon, forest, church |
godrays |
Dramatic sunbeams from above | Epic moments, outdoor scenes, divine atmosphere |
soft lighting |
Soft, flattering lighting without harsh shadows | Portraits, romance, soft skin textures |
backlighting |
Light from behind, figure is backlit | Silhouettes, translucent fabrics, hair shine |
cinematic lighting |
Cinematic lighting with strong contrast | Action scenes, dramatic portraits, dark mood |
neon lighting |
Colorful neon colors, cyberpunk look | Cyberpunk, nightclub, urban scenes |
rim lighting, volumetric lighting, dark background creates an extremely atmospheric look. For NSFW: soft lighting, warm tones creates flattering skin textures.Camera perspective determines how the viewer perceives the scene. Every angle tells a different story.
| Tag | Effect | Impact |
|---|---|---|
low angle |
Camera from below | Figure looks powerful, heroic, dominant. Good for action and power poses. |
high angle |
Camera from above | Figure looks small, cute, vulnerable. Good for cute/moe scenes. |
dutch angle |
Tilted camera | Creates dynamism and tension. Perfect for action and fight scenes. |
wide shot |
Wide view, full body + environment | Shows the complete scene. Good for landscapes and group shots. |
close-up |
Close-up (face/upper body) | Focus on emotions and details. Best face quality. |
extreme close-up |
Extremely close (only eyes/mouth) | Intense emotions, dramatic moments. |
from behind |
Rear view | Shows back, hair, outfit from behind. Also popular for NSFW. |
from above, pov |
POV from above | Viewer's perspective. Immersive for interactions. |
Hands, poses and motion are the hardest aspects for SD. Here are the most important tags and tricks:
hand_yolov8s.pt (Denoise 0.38–0.45) fixes hands automatically after generation. This is more reliable than tags alone.| Tag | Effect |
|---|---|
dynamic angle | SD chooses an interesting angle instead of stiff frontal view |
leaning forward | Figure leans forward — looks curious or inviting |
sitting, crossed legs | Elegant sitting pose |
action shot, motion blur | Motion and dynamism — good for fight scenes |
hair flow, wind | Flowing hair — creates liveliness |
contrapposto | Classic weight shift to one leg — looks natural and elegant |
The right material tags create realistic or stylized fabric textures. Especially for clothing and accessories, these tags make the difference:
| Category | Tags | Effect |
|---|---|---|
| Shiny | (latex, pvc, oil sheen:1.2) |
High-gloss surface, reflects light. For lacquer, leather, wet skin. |
| Soft | (silk, satin, velvet:1.1) |
Flowing, soft fabric with sheen. For elegant clothing. |
| Translucent | (sheer, translucent fabric) |
Transparent fabric, skin shows through. For veils, negligees. |
| Detailed | (knit, embroidery, lace trim) |
Visible texture and patterns. For knitwear, lace, embroidered clothing. |
| Metallic | (metallic, chrome, armor) |
Metallic reflections. For armor, jewelry, sci-fi outfits. |
Depth of field and focus effects create a professional, photographic look and direct the viewer's gaze.
| Tag | Effect | Use |
|---|---|---|
depth of field, bokeh |
Blurred background, figure sharp | Portraits, focus on one person, professional look |
foreground object |
Blurred object in foreground | Creates depth and "looking through something" feeling |
lens flare |
Light reflections in the lens | Sunny scenes, romantic mood, anime aesthetics |
scenery, background detail |
Detailed background | When the environment matters (cities, nature, interiors) |
extreme close-up vs. wide shot |
Zoom level determines depth automatically | Close-up = shallow depth, Wide Shot = deep depth |
The most common misconception: Pony is not separate software. Stable Diffusion has versions like an operating system, and almost every model you download is a checkpoint — someone took a base version and trained it further.
That is why Pony, Illustrious and NoobAI all belong to the SDXL family, while Counterfeit, AnythingV5 or Realistic Vision belong to the 1.5 family.
| Generation | Resolution | Size | Known checkpoints |
|---|---|---|---|
| SD 1.5 (2022) | 512 × 768 | 2–4 GB | Counterfeit, AnythingV5, Realistic Vision, DreamShaper 8 |
| SDXL (2023) | 832 × 1216 | 6–7 GB | Pony V6, Illustrious, NoobAI, Juggernaut |
| Flux (2024) | 1024 × 1024 | 12–24 GB | Flux.1 dev, Flux.1 schnell |
Every program — A1111, Forge, SD.Next, ComfyUI — loads any checkpoint. The software does not care about the generation. The add-ons very much do: LoRAs, ControlNet models, VAEs and embeddings are tied to their generation. An SDXL LoRA will not run on SD 1.5 and vice versa. Downloads always state which base they are made for.
Wrong resolution. SD 1.5 at 832×1216 produces double heads and stretched bodies — the model has never seen such image sizes. 512×768 is correct. Conversely SDXL turns mushy at 512×512.
Foreign vocabulary. score_9, score_8_up is understood only by Pony. On Counterfeit or Illustrious those are dead tokens right at the front of the prompt, where they take up the most room. That is why Veyra sets them per model profile and never inside a style entry.
Forgetting clip skip. Anime models of the 1.5 generation were trained with clip skip 2. In ComfyUI that is a CLIPSetLastLayer node set to −2 between checkpoint and text encoder; it is already wired into Veyra's SD 1.5 workflow template.
A second living creature in the picture — cat, horse, dragon, Pokémon — behaves differently from an object. Two things are worth knowing, otherwise you get images you cannot explain.
On Danbooru solo is applied when exactly one character is in the image. A cat is not a character — 1girl, solo, cat is the normal spelling and perfectly fine. A Pokémon is a character: images with Pikachu carry no solo. With both tags in the prompt they pull against each other, and the model either drops the Pokémon or adds a second person. Veyra therefore removes solo automatically as soon as you pick a named creature; for a plain animal it stays.
animal focus is the tag for an image where the animal is the subject. With a person next to it the animal features migrate onto her — measured on a sleeping cat: the girl got cat ears, a tail and a collar. The tag belongs only in images without a figure, so in background mode. For the same reason an animal entry must not carry an eye colour: green eyes cannot be bound to the cat and ends up on the person.
horseback riding is the strongest riding tag — and it puts a horse in your image even when you are sitting on a dragon. For anything else riding animal is the right one. The same trap as doggy style, which written as two words produces a dog: a tag that is too specific or ambiguous, at a high weight, beats any description standing next to it.
In the studio you switch between With character and Background only at the top. In the second mode every category that describes a body disappears and a dedicated scene camera appears instead. The reason for a separate mode is not convenience: simply leaving the character out is not enough, as the next section shows.
The Danbooru tag no humans is the clean way to request an empty scene. It belongs near the front of the prompt because early tokens carry more weight, and the person belongs in the negative as well. Important: no humans is a booru tag. It works on Pony, Illustrious, NoobAI and anything trained on booru data. On pure photo checkpoints and on Flux it does not exist in training — there the wording carries it, so empty room, deserted, no people as a sentence. Veyra handles this automatically and writes a full sentence instead of the tag for Flux.
This is where most attempts fail. Location and lighting alone do not put a person in the image — that is measurable. But many style prompts carry body vocabulary: beautiful face, glossy skin, detailed eyes, skin pores. Those tokens bring back exactly the figure that no humans is keeping out. In a test of four runs of the same bedroom, the raw anime style produced a person in all four images — without the style tokens, in none of them. In background mode Veyra strips these tokens from every tag automatically, including style and sharpness. If you prompt by hand, go through your style block and remove anything that describes a body.
An empty image is rarely the final product. The real value lies in what you do with it afterwards.
| Use case | How it works |
|---|---|
| The same scene across many images | The strongest case. Build the room once, run it through a depth or lineart preprocessor and feed the result as ControlNet into every further generation. Result: identical room, identical furniture placement, across ten different characters and poses. Without it SD rolls a different room every time — for comic pages or image series that is the difference between coherent and random. |
| Render separately, then composite | Two passes: background from this mode, character separately with LayerDiffuse (which outputs PNG with an alpha channel directly) or normally and cut out with rembg. Then layer them. The advantage: you can move, scale or repeat the figure while the background stays exactly the same. In a single-pass image everything is baked together. |
| Regional prompting | Background prompt into one region, character prompt into the other — see regional prompting. That way the tags stop competing with each other. The prompt from this mode is ideal input for it because it is guaranteed to contain no body vocabulary that could bleed into the character region. |
| Inpainting | Generate the background, mask an area, let the figure be painted in. Just as useful in reverse: you have a character image with a bad background — mask the figure and regenerate the rest with the background prompt. The figure stays untouched. |
| Outpainting | Extend an existing image to 16:9. The background prompt describes what goes into the new margin — and the person negative stops SD from placing a second figure in the empty space. That is exactly what it is there for. |
| Upscale without risk | Backgrounds tolerate aggressive hires fix and Ultimate SD Upscale at denoise 0.4 to 0.5. With figures, faces and hands fall apart at those values. Without a person you get more detail instead of more errors. |
| Video and camera moves | A static background plate with an animated figure in front of it is the classic anime setup. Useful on its own too: generate a background at high resolution and pan across it Ken Burns style — considerably more stable than letting AnimateDiff animate the whole scene. |
Pony is not the best choice for pure scenery. Its score_ tags come from a dataset that is almost entirely character art — the model is tuned for figures, not for rooms. Illustrious, NoobAI or a landscape checkpoint deliver visibly more detail here. This is the one place where switching models in the studio genuinely pays off.
The most important Stable Diffusion settings at a glance. These parameters directly affect the quality and style of your image.
| Parameter | Recommended | Explanation |
|---|---|---|
| Sampler | Euler a / DPM++ 2M Karras | Euler a = fast and creative. DPM++ 2M Karras = sharp and detailed. Perfect for most cases. |
| Steps | 20 – 28 | 20–28 = ideal. Below 15 = unfinished/mushy. Above 40 = rarely better, just costs time. |
| CFG Scale | 7 (Default) | 7 = balanced. Below 5 = soft/dreamy. Above 12 = oversaturated/burned. |
| Clip Skip | 2 (Anime/Pony) | 1 = SD 1.5 realistic. 2 = Anime/Pony/SDXL default. Higher = experimental. |
| Hires Fix | 1.5x – 2.0x Upscale | Only useful from 768px base resolution. Too high (>2.5x) = artifacts and duplications. |
| Resolution | 768x1024 / 832x1216 | SDXL/Pony: 1024x1024 or 832x1216. SD 1.5: 512x768. Not square for portraits. |
score_9, masterpiece come first, then character, then scene/pose, then details. Veyra does this automatically.For NSFW content, SD needs special attention for anatomy and censorship removal. Here are the most important tags and settings:
| Tag | Effect |
|---|---|
anatomy focus, physical contact | SD pays more attention to correct body proportions and contact |
detailed skin, sweat, texture | Realistic skin textures instead of plastic look |
realistic proportions | Prevents exaggerated proportions |
hand focus, perfect hands | Better hands for touch and interactions |
These tags must go into the negative prompt, otherwise SD may generate mosaic-like censorship blocks or black bars — especially with Japanese models trained on censored material.
rating_explicit at the start of the prompt (before score_9). Veyra does this automatically when NSFW mode is active. Without this tag, Pony often generates washed-out or partially censored NSFW content.| Problem | Solution (Positive) | Solution (Negative) |
|---|---|---|
| Distorted anatomy | (highly detailed anatomy:1.1) |
bad anatomy, deformed, extra limbs |
| Plastic skin | detailed skin, skin texture, pores |
plastic skin, bad shading, low quality skin |
| Wrong breasts | realistic breasts, natural shape |
distorted nipples, asymmetrical breasts |
| Deformed genitalia | detailed, anatomically correct |
deformed pussy, bad anatomy |
Flux is a fundamentally different model than Pony or Illustrious. Instead of comma-separated Booru tags, Flux understands natural language — complete sentences describing a scene.
| Property | Pony / Illustrious / WAI / NoobAI | Flux |
|---|---|---|
| Prompt format | Comma-separated tags | Full sentences |
| Score tags | score_9, score_8_up |
Not needed / ignored |
| Weighting | (tag:1.3) works |
No bracket syntax — repeat or emphasize words instead |
| Negative prompt | Very important | Little effect / use minimally |
| Anatomy | Often needs ADetailer help | Excellent — much better at hands and faces |
When you select the Flux profile in Veyra, it automatically converts all Booru tags into natural sentences. Score and rating tags are removed since Flux doesn't understand them. You don't need to manually rewrite anything.
There are two popular web UIs for Stable Diffusion: the original Automatic1111 (A1111) and the newer Stable Diffusion WebUI Forge. Both look almost identical but have different strengths.
| Property | A1111 | Forge |
|---|---|---|
| Speed | Standard | 30–75% faster |
| VRAM usage | High | 700 MB – 1.3 GB less |
| Extensions | Full ecosystem | ~80% compatible |
| ControlNet | All features | Built-in, but fewer batch options |
| Beginner friendly | Well documented | Same interface, faster out of the box |
Stable Diffusion doesn't understand prompts like a human. It reads all tags as a single chain and mixes them in the so-called "Latent Space". For example, if you write:
...SD doesn't think "Person 1 = brown hair, Person 2 = white hair". Instead, it sees only a mix of all tags and creates a single concept. This leads to typical problems:
Both characters suddenly share features: Asuna gets green eyes from Frieren, or a third face appears. SD cannot assign which tags belong to which person.
For interactions like Face Sitting or 69, SD must understand: Person A is on top, Person B is below. Without help, SD often places both people side by side or in a weird mixed position, because it has no spatial logic.
Instead of generating two separate bodies, images appear with fused limbs, too many arms/legs, or a "Siamese twin" effect.
When you select 2 or more characters in Veyra, a lot happens behind the scenes to maximize quality:
Veyra automatically adds strong negative tags that prevent SD from fusing the characters:
Tags like two distinct girls, separate bodies are added to the prompt itself, giving SD a stronger hint to generate two separate people.
When you select two female characters, Veyra automatically replaces all male tags: penis becomes strap-on dildo, fellatio becomes cunnilingus, 1boy 1girl is removed and yuri, girl on girl is added.
With 2+ characters, Veyra disables the ADetailer face prompt because ADetailer doesn't know which face belongs to which character and would otherwise mix up eye colors.
Default emotions from the character profile (e.g. "unsettling smile") are automatically removed when you select an act type — so nobody smiles inappropriately during an NSFW scene.
Multi-character images need different settings than solo images. Here are the most important adjustments:
| Setting | Solo | Multi-Charakter | Why |
|---|---|---|---|
| Resolution | 512x768 / 768x512 | 768x768 or 1024x768 | More space for two people. At too low resolution they tend to merge. |
| CFG Scale | 5 – 7 | 7 – 9 | Higher CFG forces SD more strongly to follow the prompt. Helps with character separation. |
| Steps | 20 – 28 | 28 – 40 | More steps = more detail and correction. Important for complex compositions. |
| Sampler | Euler a / DPM++ 2M | DPM++ 2M Karras / DPM++ SDE Karras | Karras Scheduler delivers better anatomy with multiple people. |
| Clip Skip | 1 – 2 | 2 | Clip Skip 2 gives the model more creative freedom for compositions. |
| Batch Size | 1 – 4 | 4 – 8 | You need more attempts. Generate multiple images and pick the best. |
The most important extension for multi-character. It divides the image into zones and assigns each zone its own prompt area. This way SD knows exactly: "left = Character A, right = Character B".
https://github.com/hako-mikan/sd-webui-regional-prompterhttps://github.com/Haoming02/sd-forge-coupleBREAK:ControlNet gives SD a skeleton template that shows where each body belongs. This way the model knows exactly: "here stands one body, there lies another".
https://github.com/Mikubill/sd-webui-controlnetcontrol_v11p_sd15_openpose (or the SDXL/Pony variant) and place it in the models/ControlNet/ foldercontrolnet_openpose_sdxl or models from https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0You need a pose template that shows where the bodies are. Three options:
openpose_full).https://webapp.magicposer.com/ to position 3D figures in the desired pose and export as an image.| Setting | Recommended | Explanation |
|---|---|---|
| Preprocessor | openpose_full | Detects body, hands and face. "openpose" alone doesn't detect hands. |
| Control Weight | 0.7 – 0.9 | How strongly the pose affects the result. Too high = stiff, too low = ignored. |
| Starting Step | 0 | From which step ControlNet takes effect. 0 = from the start. |
| Ending Step | 0.8 – 1.0 | Up to which step. 0.8 gives some room for more natural details at the end. |
| Control Mode | Balanced / ControlNet is more important | "ControlNet is more important" when the pose should be strictly followed. |
Latent Couple is an older extension that works similarly to Regional Prompter, but on a different technical level (Latent Space instead of Attention).
| Feature | Regional Prompter | Latent Couple |
|---|---|---|
| Quality | Very good | Good |
| Simplicity | Easy (BREAK syntax) | Complex (coordinates) |
| Compatibility | Sometimes conflicts | Very stable |
| SDXL / Pony | Yes | Limited |
| Forge Support | Forge Couple built-in | Not supported |
This is how to achieve the best multi-character result:
| Model | Multi-Character | Anatomy | Details |
|---|---|---|---|
| Pony Diffusion V6 XL | Gut | Sehr gut | Understands Booru tags best. Score tags help a lot with quality. Best choice for Anime + NSFW. |
| Illustrious XL | Gut | Sehr gut | Clean aesthetics, strong tag comprehension. Base for many community merges like NoobAI. Illustrious v3.6 supports ControlNet + IP-Adapter. |
| NoobAI XL | Gut | Sehr gut | Fine-tune of Illustrious XL. More style variety and better composition. Very popular for anime with a more natural look. |
| Flux | Mittel | Exzellent | Uses natural language instead of Booru tags. Very good for anatomy and realism. Veyra automatically converts to Flux format. |
| SDXL (allgemein) | Mittel | Gut | General SDXL base. Good for non-anime styles and photorealistic. Less community support than Pony/Illustrious. |
| SD 1.5 (Anime Merges) | Schlecht | Mittel | Legacy. Older architecture, struggles a lot with multi-character. Only usable with ControlNet. Barely recommended in 2026. |
LoRA stands for Low-Rank Adaptation. It is a small add-on model (10–200 MB) that is placed on top of a base model (checkpoint). Think of it this way: the checkpoint is the brain, and the LoRA is a specialized lens that teaches the model to correctly render a specific character, art style, or concept. A LoRA does not modify the base model — it only extends its knowledge.
Whenever the base model doesn't know something or can't render it well enough:
Download the .safetensors file from CivitAI and place it in the correct folder. In the prompt, activate the LoRA with a special tag:
The number after the filename determines how strongly the LoRA takes effect. Too low = barely any effect, too high = artifacts and exaggerated features.
| Strength | Effect |
|---|---|
0.3 – 0.5 | Subtle influence — good for mixing with other LoRAs |
0.6 – 0.8 | Optimal range for most LoRAs |
0.9 – 1.0 | Strong effect — character/style dominates the image |
> 1.0 | Often too strong — can produce artifacts and distorted faces |
| Type | Description | Example |
|---|---|---|
| Character LoRA | Teaches the model a specific character — face, hair, body type | <lora:emma_pokemon:0.7> |
| Style LoRA | Changes the overall drawing style — e.g. Pokémon, Ghibli, retro anime | <lora:pokemon_style:0.6> |
| Concept LoRA | Adds concepts the model doesn't know — armor, weapons, outfits | <lora:mecha_armor:0.5> |
| Pose LoRA | Trained on specific body positions and compositions | <lora:dynamic_pose:0.6> |
You can use multiple LoRAs simultaneously — e.g. a character LoRA + a style LoRA. Reduce the strength of both LoRAs slightly (e.g. 0.5–0.7 each) so they don't interfere with each other.
The largest collection can be found on CivitAI. There you can search by character, style, or concept and directly download the .safetensors file. Pay attention to ratings, sample images, and the compatible base model specification (SDXL, Pony, Illustrious, Flux).
Cause: SD mixes the features of both characters together.
Solution: Use Regional Prompter to separate tags spatially. Ensure same face, cloned face, identical faces is in the negative prompt (Veyra does this automatically).
Cause: Too low resolution or too generic tags.
Solution: Use at least 768x768 resolution. In negative: extra faces, extra head, third person. Fewer tags = less confusion for SD.
Cause: SD doesn't know where one body ends and another begins.
Solution: Use ControlNet with OpenPose. The skeleton template defines exactly which limbs are where. In negative: extra limbs, fused limbs, conjoined.
Cause: SD doesn't follow the pose description strongly enough.
Solution: Increase CFG Scale (8–10). Give position tags higher weight: (face sitting:1.4). Best to use ControlNet with a matching pose template.
Cause: Without Regional Prompter, SD has no mechanism to assign tags.
Solution: Regional Prompter / Forge Couple is the only reliable solution here. Optional: Use Inpainting to correct the wrong hair color.
Cause: Tags like side by side or split screen can make SD split the image into panels.
Solution: Veyra removes side by side automatically when an act type is selected. In negative prompt: split screen, comic panels, manga panels, border, frame.
wrong eye color, mismatched hair.Step-by-step guide for Windows, macOS, and Linux. Stable Diffusion runs locally on your PC — no cloud, no subscription costs, no censorship.
| Windows | macOS | Linux (Ubuntu/Debian) | |
|---|---|---|---|
| Python 3.10 | Download from python.org → check "Add to PATH" during installation |
brew install python@3.10 |
sudo apt install python3.10 python3.10-venv python3-pip |
| Git | Download from git-scm.com → install with default settings |
brew install git |
sudo apt install git |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Forge is a fork of A1111 with better memory optimization, faster generation, and native Flux support. The best choice for most users.
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge
cd stable-diffusion-webui-forge
webui-user.bat
macOS (Apple Silicon M1/M2/M3/M4):
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge
cd stable-diffusion-webui-forge
./webui.sh --skip-torch-cuda-test --no-half --use-cpu interrogate
Linux:
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge
cd stable-diffusion-webui-forge
bash webui.sh
After starting, open http://localhost:7860 in your browser. On first launch, all dependencies are installed automatically (may take 10–20 min).
The original frontend for Stable Diffusion. Largest extension ecosystem, most tutorials available. Slightly slower than Forge, but very stable.
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
webui-user.bat
macOS:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
./webui.sh --skip-torch-cuda-test --no-half --use-cpu interrogate
Linux:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
bash webui.sh
Node-based interface for advanced users. Maximum control over every step of the pipeline. Steep learning curve, but extremely powerful.
git clone https://github.com/comfyanonymous/ComfyUI
cd ComfyUI
pip install -r requirements.txt
python main.py
macOS (Apple Silicon):
git clone https://github.com/comfyanonymous/ComfyUI
cd ComfyUI
pip install -r requirements.txt
python main.py --force-fp16
Without a checkpoint model, SD cannot generate images. Find the best anime models on CivitAI. Recommended: Pony Diffusion V6 XL, Illustrious XL, NoobAI XL.
# Forge / A1111:
models/Stable-diffusion/ ← Checkpoints (.safetensors)
models/Lora/ ← LoRA Modelle
models/VAE/ ← VAE Dateien
# ComfyUI:
models/checkpoints/ ← Checkpoints
models/loras/ ← LoRA Modelle
models/vae/ ← VAE Dateien
.safetensors variant (safer than .ckpt). Veyra generates prompts specifically optimized for Pony Diffusion and Illustrious XL — best to start with one of these.
--skip-torch-cuda-test — Skips CUDA check (no NVIDIA present)--no-half — Disables FP16 (more stable on MPS)--use-cpu interrogate — CLIP Interrogate on CPU (MPS bug)| Problem | Solution |
|---|---|
| CUDA out of memory | Add --medvram or --lowvram flag at startup |
| Black images | Set VAE to vae-ft-mse-840000-ema-pruned (Settings → VAE) |
| Extremely slow generation | Install xformers: pip install xformers and use --xformers flag |
| Python/Pip not found | Reinstall Python with "Add to PATH" option enabled |
| macOS: MPS Backend Error | Set PYTORCH_ENABLE_MPS_FALLBACK=1 before starting |
ComfyUI is a node-based interface for Stable Diffusion. Instead of a classic form, you see the entire image generation pipeline as a graph of connected nodes — loading the model, text encoding, sampling, VAE decode, saving. Every step is visible and adjustable.
The advantage: full control over the workflow, reproducible setups (shareable as JSON), very efficient VRAM usage, and native support for all current models (SDXL, Flux, SD3, video models). The downside: steeper learning curve than A1111/Forge.
The critical component is video memory (VRAM). It determines which models you can even load and how fast generation runs.
| VRAM | GPU Examples | What is possible | Recommended parameter |
|---|---|---|---|
| ≤ 6 GB | GTX 1660, RTX 2060 | SD 1.5 possible, SDXL/Flux only with heavy restrictions and very slow. | --lowvram |
| 8 GB | RTX 3060 Ti, RTX 4060, M1/M2 | SDXL feasible, but VRAM management critical. Flux slow. | --lowvram |
| 12 GB | RTX 3060, RTX 4070 | SDXL runs smoothly. Flux possible, ADetailer works. | — |
| 16 GB | RTX 4080, M1/M2 Pro/Max | Nearly everything runs smoothly. Flux without restrictions. | --highvram |
| 24 GB+ | RTX 3090, RTX 4090 | Everything including video generation and multiple generations in parallel. | --highvram |
Additionally: at least 16 GB RAM (32 GB recommended for SDXL/Flux), an NVMe SSD for fast model loading, and a PSU that handles GPU load (for RTX 4090: 850W+ Gold).
ComfyUI runs on Python and is downloaded via Git. First install Python 3.10 or 3.11 and Git for your operating system.
| Windows | macOS | Linux (Ubuntu/Debian) | |
|---|---|---|---|
| Python 3.10/3.11 | python.org | brew install python@3.11 |
sudo apt install python3.11 python3.11-venv python3-pip |
| Git | git-scm.com | brew install git |
sudo apt install git |
| NVIDIA-Treiber | nvidia.com | — | NVIDIA drivers per distro docs |
brew yet, install Homebrew from brew.sh. Then install Python and Git in one go.
Two paths are available: a prepackaged portable version for Windows (no setup required) or manual installation from source (works on all systems and is better maintainable).
A single 7z archive with prebuilt Python and all dependencies. Extract, drop in models, double-click run_nvidia_gpu.bat. No Python knowledge needed.
Download Portable Version from GitHub Releases
Clones the repository, sets up an isolated Python environment (venv) and installs PyTorch with the matching GPU backend. Advantage: easier to update with git pull, no 15 GB duplicated on disk.
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python -m venv venv
.\venv\Scripts\activate
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
python main.py
macOS (Apple Silicon M1/M2/M3/M4):
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
source venv/bin/activate
pip install torch torchvision torchaudio
pip install -r requirements.txt
python main.py --force-fp16
Linux (NVIDIA):
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
source venv/bin/activate
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
python main.py
Linux (AMD ROCm):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0
After launching, the UI runs at http://127.0.0.1:8188. Open the address in your browser.
These parameters are appended to python main.py. They control VRAM usage, precision, network access, and multi-GPU behavior.
| Parameter | When to use |
|---|---|
--fast | Enables various speed optimizations. Recommended as default flag. |
--lowvram | Required with ≤ 8 GB VRAM (for SDXL/Flux). Splits UNET calculations. |
--medvram | Medium VRAM-saving mode. Between --lowvram and normal. |
--highvram | Keeps models permanently in GPU memory. Recommended from 16 GB VRAM. |
--cpu | Forces CPU calculation. Extremely slow — for debugging only when GPU is not detected. |
--force-fp16 | Forces half-precision (FP16). Saves VRAM, mandatory on Apple Silicon. |
--force-fp32 | Forces full precision (FP32). Fixes black images on old GPUs. Slower. |
--cpu-vae | Offloads VAE decode to CPU. Saves VRAM, useful on systems with tight VRAM. |
--listen | Allows access from the local network. Without this, only reachable from localhost. |
--port 8189 | Sets a custom port. Useful to run multiple instances in parallel. |
--cuda-device 0 | Selects a specific card on multi-GPU systems (0 = first GPU, 1 = second). |
--disable-metadata | Does not save workflow metadata in the image. For privacy or smaller files. |
--dont-print-server | Suppresses server log output in terminal. For automated scripts. |
Instead of typing the command line every time, put your parameters into a startup script. It activates the venv, starts ComfyUI with your parameters, and can be launched by double-click or terminal.
start_comfy.bat:
@echo off
call .\venv\Scripts\activate
python main.py --fast --highvram --port 8188
pause
macOS / Linux — start_comfy.sh:
#!/bin/bash
cd "$(dirname "$0")"
source venv/bin/activate
python main.py --fast --highvram --port 8188
On macOS/Linux, make executable before first run: chmod +x start_comfy.sh
ComfyUI is minimal out of the box. The real power comes from custom nodes — extensions that add new capabilities (ControlNet, face-fix, video, upscalers, IP-Adapter, LoRA loaders, and many more).
The ComfyUI Manager is the central hub for these: it shows available custom nodes, installs them with one click, updates existing ones, and disables broken ones. Install manually via Git clone into the custom_nodes folder:
cd ComfyUI\custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
macOS / Linux:
cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
Restart ComfyUI. A new Manager button appears in the top right — there you'll find "Install Custom Nodes" for easy click-installation.
If you already have an A1111 or Forge installation with many models, you don't want them duplicated on disk. ComfyUI can read external model paths via extra_model_paths.yaml and use existing models directly.
# Windows / macOS / Linux — im ComfyUI-Ordner:
cp extra_model_paths.yaml.example extra_model_paths.yaml
2. In extra_model_paths.yaml, remove the comment characters (#) and adjust paths (example for A1111 on drive D:):
a111:
base_path: D:/AI/stable-diffusion-webui
checkpoints: models/Stable-diffusion
vae: models/VAE
loras: models/Lora
controlnet: models/ControlNet
embeddings: embeddings
upscale_models: models/ESRGAN
A Veyra prompt consists of multiple components (model profile, positive prompt, negative prompt, LoRA). This table shows which component goes into which ComfyUI node.
| Veyra Component | ComfyUI Node | What the node does |
|---|---|---|
| Model profile (e.g. Illustrious, Pony, Flux) | Load Checkpoint | Loads the checkpoint including CLIP encoder and VAE. |
| Positive prompt (character, style, categories) | CLIP Text Encode (Positive) | Converts text into a CLIP embedding vector. Paste the complete Veyra prompt here. |
| Negative prompt (from model profile) | CLIP Text Encode (Negative) | Defines what should NOT appear in the image. Veyra generates the matching negative prompt automatically. |
| LoRA (from Veyra Pro) | Load LoRA | Placed between Load Checkpoint and KSampler. Takes filename and strength from Veyra. |
| Sampler & Steps (Veyra recommended) | KSampler | Runs the denoising iterations. For Pony/Illustrious/SDXL: DPM++ 2M Karras, 25-30 steps, CFG 7. For WAI Illustrious and NoobAI XL: Euler a, 24-30 steps, CFG 5-7. For SD 1.5: DPM++ 2M Karras, 25 steps. For Flux: Euler, 20 steps, CFG 1-3.5. |
| Image size (resolution) | Empty Latent Image | Defines the base resolution. For SDXL: 1024×1024 or 832×1216. For SD 1.5: 512×768. |
| Save result | VAE Decode → Save Image | Converts latent space back to a pixel image and saves it (including workflow metadata). |
Veyra can generate a ready-made ComfyUI template with your prompt already filled in. Download it, drop it into ComfyUI and hit run — no retyping, no wiring nodes together.
In the studio click Workflow, next to the copy button above the positive prompt. You get a JSON file such as veyra_bild_2026-09-06.json. Pro and Lifetime users get it with the prompt filled in, everyone else gets the empty template.
Three ways, all equivalent — the first is the fastest.
Workflow → Open (older builds: Load) and pick the file.Ctrl+O, or Cmd+O on a Mac.Top left, in the node 1 — Modell wählen, you will see HIER_DEIN_MODELL.safetensors. Click it and pick your checkpoint. Veyra cannot know what your model files are called — this is the only step left to you. Make sure the model matches the prompt family: a Pony prompt needs a Pony model.
Press Run or Queue Prompt. The result lands in ComfyUI/output/veyra/.
| Node | Purpose | Change it? |
|---|---|---|
Load Checkpoint | Loads your model and provides image knowledge, text understanding and the decoder. | Yes — the only required field |
CLIP Text Encode (positiv) | Your Veyra prompt, already filled in. | Only if you want to tweak it |
CLIP Text Encode (negativ) | The negative prompt, matching the selected model profile. | Rarely needed |
Empty Latent Image | Image size. Preset to 832×1216 for SDXL, Pony and Illustrious. The studio swaps the template along with the model profile: SD 1.5 gets 512×768 with clip skip 2, WAI Illustrious and NoobAI XL get 1024×1344 with their own sampler values. | For SD 1.5 set 512×768 |
KSampler | Seed, steps, CFG, sampler and scheduler — every dial in one place. | For experimenting |
VAE Decode | Converts the result into a visible image. | No |
Save Image | Saves to output/veyra/. | Only the file name |
In the studio the download sits behind the Workflow button. Every template runs on a stock ComfyUI — no custom nodes to install.
| Template | What for | What you supply |
|---|---|---|
| Image (standard) | One pass. The everyday case. | Just set your model. |
| Image + hires fix | Two passes: native first, then upscaled and re-sampled. Creates real detail instead of just scaling. | Just your model. Takes about twice as long. |
| Background + inpainting | The figure is generated inside a finished background and picks up its lighting. | A finished background image and a mask you paint yourself. |
| Two prompts (regional) | Background and figure each get their own prompt, in a single pass. | You paste the background prompt yourself — Veyra fills in only the character prompt. |
| Compositing | Two finished images stacked, then blended in one light pass. | A background image and the character as a PNG with a transparent background. |
| Image + Upscale | The finished image is enlarged with a small dedicated model. Fast, but it invents no new detail. | An upscale model file — see the box below. |
Five of the six templates run in a freshly installed ComfyUI. The sixth does not: UpscaleModelLoader and ImageUpscaleWithModel are core nodes, but ComfyUI does not ship the model file. Put it into ComfyUI/models/upscale_models/ and restart ComfyUI. For anime pick RealESRGAN_x4plus_anime_6B (about 18 MB), for hard detail and photos 4x-UltraSharp (about 67 MB). The template upscales 4x and then scales back to half — 2x net, with cleaner edges than going straight to 2x. For the full 4x, delete the downscale node. Both are saved, the original and the enlarged version.
This is the one step no template can do for you. Load the background in the Load Image node, then right-click it and choose Open in MaskEditor. Paint the area where the figure should stand, then save.
grow_mask_by expands the mask outwards. Below 8 the seam often shows.The denoise value in the KSampler is the key slider in every multi-stage template. It says how much of the existing image gets overwritten.
0.20 – 0.30 | Blending. Edges and colour are pulled together, the composition stays. For compositing. |
0.40 – 0.50 | Creating detail. For the second hires pass. Above 0.60 faces start to change. |
1.00 | From scratch. Only for the masked area when inpainting. |
The templates for Pony, Illustrious and SDXL are set up for anime: clip skip 2, CFG 7.0, dpmpp_2m, 28 steps. The WAI Illustrious and NoobAI XL profiles get their own template — 1024×1344, euler_ancestral, CFG 5.5, 24 steps, hires fix already built in. Those values come from the model cards, so do not change them there. For photorealism set clip skip to 1, CFG to 5.5, the sampler to dpmpp_2m_sde and steps to 32 — those four values are also written on each template's note. The checkpoint itself matters far more though: CFG 5.5 will not turn an anime model photorealistic.
NoobAI XL comes in two flavours, and they need different settings. The eps-pred version runs with the template as it is. The v-pred version (also WAI-SHUFFLE-NOOB) additionally needs a ModelSamplingDiscrete node set to v_prediction, placed between checkpoint and KSampler, plus a much lower CFG of 3 to 5. Without that node v-pred produces washed out or blown out images. The file name or the model page tells you which one you have.
| Red frame around a node, message about a missing node type | The image workflow uses only stock nodes and should never show this. If it does, your ComfyUI is outdated — update it with git pull. |
| Error saying the model could not be found | You skipped step 3. The checkpoint is still set to the placeholder. |
| The image looks nothing like expected | Check that the model family and the prompt match. A Pony prompt with score_9 has no effect on an Illustrious model — and vice versa. Select the same model in Veyra that you use in ComfyUI. |
| Two heads or four legs in the image | The resolution does not match the model. SD 1.5 cannot do 832×1216 — set it back to 512×768. |
| Problem | Solution |
|---|---|
| CUDA out of memory (OOM) during generation | Add --lowvram or --medvram at startup, or reduce resolution. |
| Image is completely black | Start with --force-fp32. Often occurs on old NVIDIA cards (GTX 10xx) or with faulty VAE. |
| GPU not detected | Update NVIDIA drivers. Reinstall PyTorch with CUDA backend (see install command with --extra-index-url). |
| Models in folder are not shown | Only .safetensors and .ckpt are recognized. After copying, ComfyUI must be restarted (refresh button doesn't always suffice). |
| Custom node won't install | Manually via git clone in the custom_nodes folder. Then install any Python dependencies with pip install -r requirements.txt in the node folder. |
| Very long load times on first startup | On first startup, models are loaded into GPU memory — can take minutes. Much faster afterward. Store models on NVMe SSD instead of HDD. |
SD.Next (vladmandic/sdnext) is a modernized fork of AUTOMATIC1111. It keeps the familiar Gradio interface but brings significantly faster backend, more current model support (SDXL, Flux, SD3, Cascade), and an optional "Modern UI".
The advantage over A1111: aggressive development, native Diffusers pipeline (better Flux performance), modern optimizations. The advantage over ComfyUI: classic form UI, no node wiring needed, faster onboarding.
System requirements: identical to ComfyUI (see the VRAM table in the ComfyUI section above).
SD.Next largely installs itself: clone the repository, run the startup script — everything else (venv, PyTorch, requirements) is handled by the script on first launch.
Prerequisites: Python 3.10 or 3.11 and Git (see the prerequisites table in the ComfyUI section above — identical for both UIs).
git clone https://github.com/vladmandic/sdnext.git
cd sdnext
webui.bat
macOS (Apple Silicon):
git clone https://github.com/vladmandic/sdnext.git
cd sdnext
./webui.sh --use-mps
Linux:
git clone https://github.com/vladmandic/sdnext.git
cd sdnext
./webui.sh
First launch takes 5–15 minutes (PyTorch download, requirements installation). Afterward the UI runs at http://127.0.0.1:7860.
Unlike ComfyUI, you set parameters via the COMMANDLINE_ARGS environment variable in webui-user.bat (Windows) or webui-user.sh (macOS/Linux).
webui-user.bat:
set COMMANDLINE_ARGS=--medvram --xformers --port 7860
macOS / Linux — webui-user.sh:
export COMMANDLINE_ARGS="--medvram --port 7860"
| Parameter | When to use |
|---|---|
--lowvram | Aggressive VRAM-saving mode. Required with ≤ 6 GB VRAM. |
--medvram | Balanced VRAM-saving mode. Recommended for 8–12 GB VRAM. |
--xformers | Enables xformers acceleration. Useful on older NVIDIA cards (Turing/Pascal). |
--no-half | Completely disables FP16 calculation. Required for very old GPUs (GTX 10xx series). |
--precision full | Forces full precision (FP32). Fix for black images on old GPUs. Slower. |
--use-mps | Required on Apple Silicon (M1/M2/M3/M4). Enables Metal acceleration. |
--listen | Allows access from local network. Without this only via localhost. |
--port 7860 | Custom port. Needed if A1111/Forge run in parallel (they occupy 7860 by default). |
--api | Enables the REST API. For automation and Veyra prompt transfer via script. |
--device-id 0 | Multi-GPU: selects the card to use (0 = first GPU). |
--disable-nan-check | Disables NaN check. Can speed up generation but may hide faulty images. For diagnosis only. |
These three concepts determine how SD.Next calculates the numbers in the neural network. Wrongly chosen means: slow generation, high VRAM usage, or black images.
16 bits per number. Halves memory usage and is usually faster on modern GPUs (RTX 20xx and newer). Default for most setups. Mandatory on Apple Silicon.
32 bits per number. Doubled VRAM usage, slower, but mathematically more stable. Needed on very old NVIDIA cards (GTX 10xx and older) that don't cleanly support FP16. Enabled with --no-half or --precision full.
Library that optimizes the attention mechanism (the most VRAM-hungry part). Enabled with --xformers. Almost always useful on older GPUs (RTX 20xx/30xx, GTX 16xx). On RTX 40xx often slower than PyTorch's native SDPA optimization — test.
--xformers. Very old NVIDIA (GTX 10xx) → --no-half --precision full.
Extensions add features to SD.Next (ADetailer for face-fix, ControlNet for pose/depth control, Regional Prompter for multi-character, upscalers, and many more). Two paths available: via UI or directly via terminal.
In the tab Extensions → Available, load the list, click desired extension, press "Install", then tab Installed → "Apply and restart UI".
cd sdnext\extensions
git clone https://github.com/Bing-su/adetailer.git
git clone https://github.com/Mikubill/sd-webui-controlnet.git
macOS / Linux:
cd sdnext/extensions
git clone https://github.com/Bing-su/adetailer.git
git clone https://github.com/Mikubill/sd-webui-controlnet.git
After cloning, restart SD.Next. The extension appears automatically in the Installed tab.
A Veyra-generated prompt can be used directly in SD.Next. Here's the workflow:
| Problem | Solution |
|---|---|
| First launch hangs at "Installing requirements" | Just wait — on first run, several GB of PyTorch are downloaded. Slow internet can take 30+ minutes. Check terminal window for progress. |
| CUDA out of memory during generation | Set --medvram in COMMANDLINE_ARGS. With extremely tight VRAM add --lowvram. Alternatively reduce resolution. |
| Image is completely black | Set --no-half and --precision full in COMMANDLINE_ARGS. Or load matching VAE in Settings → VAE (vae-ft-mse-840000-ema-pruned). |
| Model doesn't appear in dropdown | Copy model to models/Stable-diffusion/, then click the refresh button next to the model dropdown in the UI. Otherwise restart SD.Next. |
| macOS: MPS backend error | Set before launching: export PYTORCH_ENABLE_MPS_FALLBACK=1. For persistent problems launch with --use-mps --precision full. |
| Extension doesn't appear after install | Restart SD.Next completely (not just "Reload UI"). For manual git-clone installation, run pip install -r requirements.txt in the extension folder if needed. |