ControlNet Fun

Last edit 23 Aug 2026, 23:11 by CroissantAfterDarkHistory


title: "ControlNet Field Guide: SwarmUI & InvokeAI" description: "A practical 2026 field guide to ControlNet concepts and workflows in SwarmUI and InvokeAI." date: 2026-08-23

PRACTICAL FIELD GUIDE

ControlNet in SwarmUI & InvokeAI

Structure, pose, depth, edges, and multi-control workflows

Verified scope UI terminology checked against current project documentation, current source/release materials, and current repositories on 23 August 2026. Controls vary by app version, base-model family, and installed adapter.

For artists and operators who need repeatable results—not a theory lecture.

How to read this guide

VERIFIED CURRENT UI Exact labels and workflows directly supported by current first-party SwarmUI documentation or current InvokeAI project materials.

GENERAL / VERSION-SENSITIVE Sound ControlNet practice, but the label or location may differ. If a control is absent, treat the section as conceptual guidance rather than an instruction to find a hidden switch.

The 60-second mental model

  • A preprocessor converts an ordinary reference image into a control signal: edges, estimated depth, pose landmarks, linework, and so on.
  • A matching ControlNet (or related control adapter) tells the diffusion model how strongly to respect that signal.
  • Weight/strength controls influence; start/end or control range controls when during denoising the influence is active.
  • The ControlNet model must match both the signal type and the base-model family. An SD 1.5 ControlNet does not belong on an SDXL checkpoint.

Start here: a safe baseline

SettingBaselineAdjust when…
Weight / strength0.65–0.85Raise for tighter geometry; lower for more prompt freedom.
Control range0.0–0.8End earlier when fine detail looks stiff or “traced.”
Reference fitMatch output aspect ratioCrop deliberately; avoid accidental stretching.
First testOne control onlyAdd a second control only after the first is understood.
SeedLock itCompare one variable at a time.

Shared ControlNet concepts

Preprocessor vs. control model

  • Preprocessor: produces the map. Canny produces hard edges; Depth estimates relative distance; Pose/OpenPose extracts a skeleton; Lineart simplifies drawn contours.
  • Control model/adapter: interprets that map during generation. A depth model expects a depth-style map; a pose model expects pose landmarks.
  • Already have a correct map? Skip preprocessing. In SwarmUI this is explicitly documented as Preprocessor = None; the same principle applies elsewhere when the UI supports direct control images.

Weight / strength

RangeTypical effectUse
0.25–0.50Loose hintMoodful reinterpretation; secondary control.
0.55–0.85Useful default zoneMost edge, depth, pose, and line workflows.
0.90–1.20Strong lockExact pose/layout; watch for artifacts.
>1.20Aggressive / model-dependentDiagnostic or specialized use; often brittle.

Rule of thumb If the result ignores the map, raise weight in small steps. If it looks over-constrained, reduce weight before changing the prompt.

Start/end or control range

  • Early denoising establishes global composition. Starting at 0 applies control while the scene is being formed.
  • Late denoising refines texture and small details. Ending early can preserve the layout while allowing natural detail to emerge.
  • SwarmUI: Display Advanced exposes ControlNet Start and End. Current InvokeAI control-layer builds expose comparable adapter settings when supported, but naming and availability vary by adapter/model family.

Side-by-side workflow

PhaseSwarmUI (verified current)InvokeAI (verified/current with version note)
1. InstallPlace models in (Swarm)/Models/controlnet; refresh the ControlNets model list. Install preprocessors from the ControlNet parameter group when needed.Install compatible ControlNet/control-adapter models through the Models area or starter bundles. Availability is base-model-specific.
2. Add controlGenerate tab → ControlNets list → select a model → open ControlNet parameter group.Canvas → add a Control Layer. Current InvokeAI organizes spatial controls as layers rather than a legacy global ControlNet panel.
3. Supply imageDrop into Choose File, or leave disabled to fall back to Init Image.Place/import the control source on the Control Layer, or draw directly when appropriate.
4. ProcessChoose a preprocessor; some Canny/Depth models autodetect. Use Preview to inspect the detected map.Choose/configure the layer’s control adapter/model and processor when offered. Exact processor controls depend on build and adapter.
5. TuneSet strength; enable Display Advanced for ControlNet Start/End and ControlNet Two/Three.Tune layer weight and range controls exposed by that adapter. Multiple Control Layers can be stacked.
6. GenerateGenerate and compare against the Preview map.Set the bounding box/output region, prompt, and Generate. The active control layers condition that generation.

SwarmUI: practical procedure

  1. Match the architecture — Select the base checkpoint first; then choose a ControlNet trained for the same family (SD 1.5, SDXL, Flux/other only where supported).

  2. Select the control model — At the bottom of Generate, select from the ControlNets model list. If newly installed, use the list’s refresh icon—not browser refresh.

  3. Open the parameter group — Open ControlNet. Drop a reference into Choose File, or deliberately use Init Image fallback.

  4. Set or confirm the preprocessor — Autodetection is documented for some Canny and Depth models. For other controls, select manually. Click Preview and judge the map, not just the source photo.

  5. Establish a baseline — Start near 0.7–0.8 strength, Start 0.0, End 0.8–1.0. Lock the seed and generate.

  6. Add controls carefully — Display Advanced reveals ControlNet Two and Three. Add one at a time and reduce competing weights.

Verified SwarmUI detail A preprocessed OpenPose image can be used with Preprocessor = None and an OpenPose ControlNet. Preview errors point toward the preprocessor/input; generation-only errors point more toward model compatibility.

InvokeAI: practical procedure

  1. Work in Canvas — Set the generation model and bounding box/output area. Current InvokeAI uses Canvas Control Layers for ControlNet-style conditioning.

  2. Add a Control Layer — Use the layer controls (located at the bottom of the layers list in current releases) and create a Control Layer. Import, paste, or draw the source content.

  3. Choose a compatible adapter — Select the layer’s ControlNet/control-adapter model. Do not assume every model family supports every adapter; externally hosted models generally do not support ControlNets.

  4. Prepare the signal — Select a processor if the build offers one, or supply an already processed map. For drawn Scribble/Lineart-style control, make the signal clean and high contrast.

  5. Tune layer settings — Start with moderate weight. If begin/end or equivalent range controls are shown, use 0.0 to 0.8 as a flexible baseline; exact labels can vary by adapter and version.

  6. Stack as layers — Create additional Control Layers for pose + depth, canny + tile, etc. Disable layers to run controlled comparisons.

InvokeAI version note InvokeAI’s project materials confirm Control Layers and multiple current model-family adapters, but its documentation is being actively reorganized. Treat screenshots or older tutorials showing a standalone ControlNet panel as version-specific.

Preprocessors and model pairings

ControlWhat it preservesGood starting weightNotes / support
CannyHard edges and composition0.55–0.80Common in both ecosystems. Threshold/edge quality matters more than raw photo detail.
DepthLarge forms, camera layout, relative distance0.55–0.85Good for restyling interiors/people while retaining spatial structure.
OpenPose / PoseBody pose; sometimes hands/face landmarks0.65–1.00Use the pose model that matches the preprocessor output and base family.
LineartClean contours and illustration structure0.50–0.85Useful for anime/illustration, ink, product silhouettes.
ScribbleSparse user-drawn structure0.60–1.00Keep marks intentional; noisy scribbles create ambiguous constraints.
SoftEdge / HEDGentler boundaries than Canny0.45–0.75Often produces more organic detail; naming differs by preprocessor pack.
TileLocal detail/texture during upscale or restoration0.35–0.75Support is model- and workflow-dependent. Verify a compatible tile adapter exists; do not infer support from the presence of a “tile” preprocessor.

Sizing, cropping, and framing

  • Match the reference and output aspect ratio whenever structure matters. A 16:9 source forced into 1:1 either crops important structure or distorts it.
  • Prefer crop-to-fit over stretch. If the UI offers fit/fill behavior, inspect the resulting control map and confirm the subject remains where expected.
  • Size the generation for the base family’s normal operating range. Larger is not automatically better; preprocessing detail that exceeds model needs can add noise.
  • Pose and line controls are sensitive to thin features. Avoid tiny figures, clipped limbs, or lines that vanish after resizing.
  • On InvokeAI Canvas, align the control content with the generation bounding box. Off-box content should not be assumed to influence the generated region.

Fast check Overlay the imagined output crop on the control image. If the subject’s face, hands, horizon, or product edges land outside the crop, fix framing before tuning weight.

Using multiple ControlNets

Reliable combinations

CombinationStarting weightsWhy it works
Pose + Depth0.75 + 0.45Pose anchors anatomy; depth softly preserves volume/camera.
Canny + Depth0.50 + 0.45Edges hold silhouette; depth protects large spatial relationships.
Lineart + SoftEdge0.65 + 0.30Lineart leads; SoftEdge supports subtler boundaries.
Tile + Canny0.45 + 0.25Tile restores local texture; light Canny limits edge drift during upscale.

Avoid the “two bosses” problem

  • Two high-weight controls that disagree will produce artifacts, ignored controls, or a compromised composition.
  • Name a primary control. Give it the higher weight and/or longer range. Make every other control secondary.
  • Stage your test: primary only → add secondary at 0.25–0.40 → raise slowly. Keep seed, prompt, sampler, and dimensions fixed.
  • SwarmUI documents up to three standard UI groups under Display Advanced. InvokeAI stacks multiple Control Layers; practical limits depend on VRAM, graph/model support, and adapter rules.

Troubleshooting decision guide

SymptomLikely causeFix
Shape mismatch / matrix multiplication errorBase model and ControlNet architecture mismatchUse SD 1.5 control with SD 1.5, SDXL with SDXL, etc.
Preview failsPreprocessor, missing preprocessors, or bad inputInstall/choose processor; test a simple RGB image; inspect logs.
Preview works; generation failsControl model incompatibility or VRAMConfirm adapter family, model format, and memory headroom.
Control has little effectWrong map/model pairing, low weight, late startVerify signal type; raise weight; start earlier.
Image looks traced/plasticWeight too high or control runs too lateLower weight; end around 0.6–0.8; simplify map.
Subject is cut off/repositionedAspect ratio/crop mismatchReframe source or output; verify fit/crop behavior.
Pose is malformedMissing/ambiguous landmarks or tiny subjectUse a cleaner pose map; include hands/face only when processor/model supports them.
Multiple controls fightConflicting maps or summed influence too highPick a primary control; lower secondary weights and shorten ranges.
Tile option missing/ineffectiveNo compatible Tile adapter/workflowVerify model support. A preprocessor alone is not a ControlNet model.
Invoke layer is ignoredLayer disabled, outside bbox, or model family unsupportedEnable layer, align with bbox, confirm adapter compatibility.

Quick reference

GoalControlWeightRangeFirst adjustment
Preserve silhouetteCanny0.60–0.800.0–0.75Lower End if texture is stiff.
Preserve room/cameraDepth0.55–0.800.0–0.80Lower weight if objects feel locked.
Copy a body posePose/OpenPose0.70–1.000.0–0.85Clean landmarks before raising weight.
Restyle clean drawingLineart0.55–0.850.0–0.80Use compatible lineart model.
Guide from rough sketchScribble0.65–1.000.0–0.85Remove accidental marks.
Keep organic contoursSoftEdge/HED0.45–0.700.0–0.75Raise gently; avoid pairing with strong Canny.
Upscale/detailTile*0.35–0.700.0–1.0*Verify adapter/workflow support first.
  • Tile behavior and range are especially model/workflow-dependent.

Before you blame the prompt

  • Correct base-model family?
  • Correct map/model pairing?
  • Preview map clean and correctly cropped?
  • Only one variable changed?
  • Seed locked?
  • Secondary controls below the primary weight?

Verified sources and version notes

Verification boundary SwarmUI’s exact labels in this guide are directly documented. InvokeAI’s Control Layer terminology and current model-family support are verified from current project materials; individual adapter-setting labels are marked version-sensitive because the UI and documentation are evolving.

Official Sexter creator documentation. Older Unity / SmGF folder-mod docs remain at docs.unzipped.games. Creator Corner is for community models and production workflows.