ORIGINAL FORGE · EXTENSION OPERATIONS · COMMIT-BOUND

Add one capability without losing a working Forge

Choose the smallest extension that solves the job, inspect the code boundary, install one repository, and prove its exact action before you trust it or add another.

VERIFIED Core behavior and 38 built-in directories inspected at Original Forge commit dfdcbab.

01 · DIRECT ANSWER

Forge can install extensions; it cannot certify them for you

At the inspected commit, Original Forge provides four extension-management tabs. The install flow clones third-party Git code and may run its install.py. That code shares the Forge process and Python environment.

01

Installed

See discovered extensions, branch, version, date and update state. Disable, update, refresh, or apply changes here.

02

Available

Search an upstream AUTOMATIC1111 directory. A listing is discovery—not Forge compatibility or a security review.

03

Install from URL

Clone one Git repository, optionally selecting a branch and local directory name. The installer may execute code immediately.

04

Backup/Restore

Save or restore Git commit state for Forge and extensions. This is not a copy of models or every arbitrary file.

UNKNOWN

Available is not Approved. Its default source is the upstream AUTOMATIC1111 extension index. Stars, dates, and a successful clone do not prove compatibility, safety, or the promised result in your environment.

02 · ROUTE

What state are you in?

Select the job before touching the installation.

VERIFIED

Check the built-ins before adding code

Search the inspected built-in inventory below. If Forge already supplies the function, prove that path first and avoid installing an older extension with an overlapping canonical name.

Search 38 built-in directories
03 · INSTALL

Install one extension and prove one user action

Keep every other variable still. The goal is a defensible yes/no result, not a large collection.

  1. 01

    Prove a clean baseline

    Start the same Original Forge commit with no third-party extensions and complete one small, fixed-seed core generation. Save its image, settings, console, and timing as the control.

  2. 02

    Inspect the repository

    Read its README, license, latest commits, open issues, install.py, requirements files, and any shell or JavaScript it adds. Extension code runs inside the Forge environment.

  3. 03

    Record identity before install

    Write down the remote URL, intended branch, current commit, Forge commit, Python/Torch/Gradio versions, OS, GPU, and enabled built-ins. Do not rely on a repository name alone.

  4. 04

    Use Install from URL

    Paste the Git repository URL. Fill Specific branch name only when the publisher names one; use Local directory name only to avoid a known collision. Install one extension—not a bundle.

  5. 05

    Read the installer output

    Forge clones the repository and can run install.py immediately. Stop on the first dependency or command error; do not “repair” it with random package upgrades.

  6. 06

    Restart the full UI

    Open Installed, confirm the discovered remote and branch, then choose Apply and restart UI. A browser refresh does not rerun preload, imports, callbacks, or UI construction.

  7. 07

    Prove the exact user action

    Repeat the clean control, then test the extension’s promised action with one supported model and minimal settings. “The tab appears” proves registration, not the feature.

  8. 08

    Accept or restore

    Keep the extension only when the control and target action pass and the result is recorded. Otherwise disable it and restore the clean state before trying a different candidate.

Stop when: the installer prints its first error, a dependency change is unexplained, the repository targets a different project, or the target action fails alone. Preserve the evidence and diagnose the failure.
04 · BUILT-IN INVENTORY

Search before you add overlapping code

Exact directory names at commit dfdcbab. A directory may add an accordion, script, setting, model hook, or wrapper—not necessarily a top-level tab.

INSPECTED TOTAL38directories

Showing all 38 built-in directories.

Generation & guidance

sd_forge_controlnet

Integrated ControlNet extension directory

Generation & guidance

sd_forge_controlllite

ControlLoRA / lightweight control integration directory

Generation & guidance

sd_forge_dynamic_thresholding

Dynamic thresholding controls

Generation & guidance

sd_forge_fooocus_inpaint

Fooocus inpaint integration

Generation & guidance

sd_forge_freeu

FreeU controls

Generation & guidance

sd_forge_ipadapter

IP-Adapter integration

Generation & guidance

sd_forge_kohya_hrfix

Kohya HRFix controls

Generation & guidance

sd_forge_latent_modifier

Latent modifier controls

Generation & guidance

sd_forge_lora

Forge LoRA integration

Generation & guidance

sd_forge_multidiffusion

MultiDiffusion integration

Generation & guidance

sd_forge_neveroom

NeverOOM integration directory

Generation & guidance

sd_forge_perturbed_attention

Perturbed Attention Guidance

Generation & guidance

sd_forge_sag

Self Attention Guidance

Generation & guidance

sd_forge_stylealign

StyleAlign controls

Preprocessors

forge_legacy_preprocessors

Legacy preprocessor collection

Preprocessors

forge_preprocessor_inpaint

Inpaint preprocessor

Preprocessors

forge_preprocessor_marigold

Marigold preprocessor

Preprocessors

forge_preprocessor_normalbae

NormalBae preprocessor

Preprocessors

forge_preprocessor_recolor

Recolor preprocessor

Preprocessors

forge_preprocessor_reference

Reference preprocessor

Preprocessors

forge_preprocessor_revision

Revision preprocessor

Preprocessors

forge_preprocessor_tile

Tile preprocessor

Spaces

forge_space_animagine_xl_31

Animagine XL 3.1 Space wrapper

Spaces

forge_space_birefnet

BiRefNet Space wrapper

Spaces

forge_space_example

Example wrapper; disabled by default in inspected code

Spaces

forge_space_florence_2

Florence-2 Space wrapper

Spaces

forge_space_geowizard

GeoWizard Space wrapper

Spaces

forge_space_iclight

IC-Light Space wrapper

Spaces

forge_space_idm_vton

IDM-VTON Space wrapper

Spaces

forge_space_illusion_diffusion

Illusion Diffusion Space wrapper

Spaces

forge_space_photo_maker_v2

PhotoMaker V2 Space wrapper

Spaces

forge_space_sapiens_normal

Sapiens normal-map Space wrapper

Utilities & upscalers

extra-options-section

Extra options placement

Utilities & upscalers

mobile

Mobile interface adjustments

Utilities & upscalers

prompt-bracket-checker

Prompt bracket checking

Utilities & upscalers

ScuNET

ScuNET upscaler integration

Utilities & upscalers

soft-inpainting

Soft inpainting integration

Utilities & upscalers

SwinIR

SwinIR upscaler integration

VERIFIED sd-webui-controlnet and multidiffusion-upscaler-for-automatic1111 appear in the inspected loader’s always-disabled names. Do not install duplicate upstream copies over Forge’s integrated counterparts.

05 · REPLACEMENTS

A dated candidate ledger—not a “works” list

These entries appeared in official discussion #1754. We have not runtime-certified them. Follow the repository link, inspect the current default branch, then run the same acceptance test as any other third-party code.

Open the complete temporary discussion ↗
Regional promptingCOMMUNITY-REPORTED

sd-forge-regional-prompter

The submitter said key functionality seemed present while some parts remained broken.

Discussion entry: 15 Oct 2024 · Current result: UNKNOWN until locally tested
AnimationSTALE SNAPSHOT

sd-forge-deforum

The Forge maintainer wrote “not sure” when pointing to this candidate. Treat that uncertainty literally.

Discussion entry: 9 Sep 2024 · Current result: UNKNOWN until locally tested
SegmentationCOMMUNITY-REPORTED

Segment Anything · work_in_forge branch

Later replies in the same thread reported unanswered usage failures. Branch selection is part of the identity.

Discussion entry: 11 Sep 2024 · Current result: UNKNOWN until locally tested
CleanupCOMMUNITY-REPORTED

forge2_cleaner

Submitted as a Gradio 4 modification. Recheck current repository activity and exact supported actions.

Discussion entry: 18 Sep 2024 · Current result: UNKNOWN until locally tested
InpaintingCOMMUNITY-REPORTED

sd-webui-inpaint-anything-forge

Submitted by a community member as a Forge-focused fork; this guide has not runtime-tested it.

Discussion entry: 21 Aug 2025 · Current result: UNKNOWN until locally tested
Wildcard browsingCOMMUNITY-REPORTED

wildcard-gallery

The submitter later said changes were merged into the original project. Verify the current default branch and issues.

Discussion entry: 30 Mar 2026 · Current result: UNKNOWN until locally tested
Seamless tilingCOMMUNITY-REPORTED

asymmetric-tiling-sd-webui

The author described a Forge-compatible rewrite and a specific tested setup. That claim still needs reproduction on your build.

Discussion entry: 2 Apr 2026 · Current result: UNKNOWN until locally tested
06 · UPDATE & RESTORE

Preserve the first-bad boundary

Backup/Restore records useful Git state. It is a return aid, not a full machine snapshot.

  1. 01

    Save a named state

    Open Backup/Restore and create a configuration state before updating. Forge records its own Git state and Git-managed extension remotes, branches, commits, dates and enabled state.

  2. 02

    Update one boundary

    In Installed, check one extension for update and apply it. The current UI saves a pre-update state, but one-at-a-time changes preserve a readable first-good/first-bad boundary.

  3. 03

    Restart and rerun both proofs

    Repeat the clean control and the extension’s target action. Keep the old and new extension commits in the same receipt.

  4. 04

    Disable before removal

    If it fails, disable the extension and restart. Preserve the folder and console until the cause is understood; deletion removes useful evidence.

  5. 05

    Restore with the right expectation

    A saved state can reset Git-managed repositories to recorded commits and enabled states. It does not back up models, arbitrary non-Git files, every downloaded dependency, or an entire Python environment.

07 · ACCEPTANCE RECEIPT

A compatible extension is a recorded result

Check each field only after you have evidence. The checklist is local to this page and is not sent anywhere.

0 / 10 complete

08 · QUESTIONS

Forge extension questions, answered

If your extension is already failing, the linked diagnostic guide continues from the first observable error.

01How do I install an extension in Stable Diffusion WebUI Forge?

Open Extensions → Install from URL, paste the Git repository URL, add a branch only when the publisher specifies one, install it, inspect the console, then use Installed → Apply and restart UI. Install one extension at a time and prove its exact action.

02Where is the Forge extensions folder?

By default, user extensions live under the active data path in extensions/. If --data-dir changes the data path, the extension root moves with it. Use the paths reference to resolve the active location.

Resolve the active extensions path →
03Does every AUTOMATIC1111 extension work in Forge?

No. Original Forge changed backend behavior and uses Gradio 4 at the inspected commit. An A1111 directory entry or an old tutorial is not a current compatibility guarantee.

04Is the Available tab a list of Forge-compatible extensions?

No. At the inspected commit, its default index URL points to the AUTOMATIC1111 extension directory. On 2 September 2026 that JSON exposed 353 entries, but the count and entries are volatile and neither proves Forge compatibility nor safety.

05What is the difference between built-in and third-party Forge extensions?

Built-ins ship inside the inspected Original Forge repository under extensions-builtin/. Third-party extensions are separate repositories installed under extensions/. Both can execute Python and add interface behavior, but only the built-in files belong to the inspected Forge commit.

06Are Forge Spaces extensions?

Spaces are bundled wrapper directories, but their optional mini-app lifecycle and downloads are distinct from a normal user extension. Use the Spaces guide for install, launch, stop, remove, and network boundaries.

Open the Spaces lifecycle →
07Does Forge run extension install.py files?

Yes. The Install from URL flow can run install.py immediately after cloning, and active third-party installers are also considered during launch setup. Review repository code and requirements before installation.

08Do I need to restart Forge after installing an extension?

Yes. A reliable test requires Apply and restart UI or a full process restart. Refreshing the browser alone does not repeat installer, preload, import, callback, and UI construction stages.

09What should I enter in Specific branch name?

Leave it empty to use the repository default. Enter a branch only when the extension publisher or a dated compatibility record names that exact branch; record it because a different branch is a different test subject.

10What does Local directory name do?

It overrides the folder name under extensions/. Use it only when you need an explicit non-colliding local name. It does not change the repository identity or make incompatible code compatible.

11Why does Forge say the extension is already installed?

The installer rejects duplicate repository URLs and existing target directories. Inspect Installed and the extensions/ directory before choosing another name; a second copy can create duplicate callbacks or canonical-name conflicts.

12How can I tell whether a Forge extension is compatible?

Record exact Forge and extension commits, prove a clean baseline, install the extension alone, restart, verify its control, run its exact promised action, and rerun the core control. Compatibility is that recorded result—not the presence of a folder or tab.

Open extension diagnostics →
13Can I copy my AUTOMATIC1111 extensions folder into Forge?

Do not treat a bulk copy as migration. It removes the one-change boundary and can introduce obsolete Gradio calls, shared dependency changes, duplicate identities, and overlapping built-ins. Start clean and evaluate one repository at a time.

14How do I find a Forge replacement for an old extension?

Search the official temporary discussion by user job, then recheck the candidate repository’s current code, commits, issues, branch and supported Forge build. The discussion is discovery evidence, not certification.

15Is the official Forge extension replacement list current?

It is an ongoing discussion opened on 9 September 2024, with community submissions over time. Each entry keeps its own date and confidence. Treat every candidate as needing a fresh repository review and local test.

16How do I update a Forge extension safely?

Save a named state, update one extension, restart, repeat the clean core control and target action, then record old and new commits. Avoid updating the whole set at once because it erases the first-bad boundary.

17Does Check for updates install every update?

No. It fetches update information and exposes the update state. Apply selected changes deliberately, one extension at a time, after saving a receipt and return point.

18Can Backup/Restore recover a broken extension update?

It can restore recorded Git-managed Forge and extension commits and enabled states when those repositories remain reachable and resettable. It is not a full installation, model, dependency, or arbitrary-file backup.

19How do I disable an extension without deleting it?

Use Extensions → Installed, clear or disable the extension, then Apply and restart UI. For a broken startup, launch temporarily with --disable-extra-extensions and follow the troubleshooting guide.

Open extension diagnostics →
20Why is extension management unavailable when Forge is remote?

Current code restricts extension access when share, listen, ngrok, or a server name makes the instance non-local, unless an explicitly insecure override is used. Do not weaken that boundary as a generic fix.

21Should I use --enable-insecure-extension-access?

Not as a normal install step. The flag is explicitly named insecure. Evaluate it only if you control and understand the complete network boundary; never expose extension administration casually.

22Why is an installed extension tab missing?

Installation proves discovery only. The installer, preload, import, callback, visibility setting, browser script, or target action can still fail. Preserve the first console error and use the extension troubleshooting guide.

Open extension diagnostics →
23What should I record before reporting an extension bug?

Include both repository URLs and full commits, branch, local directory, install route, launch arguments, OS, GPU, Python, Torch, Gradio, enabled extensions, exact action, first Python error, browser error, clean baseline, and disabled-extension results.

Open extension diagnostics →
24How many built-in extension directories does Original Forge include?

The inspected commit contains 38 directories under extensions-builtin/: 14 generation and guidance integrations, 8 preprocessors, 10 Space wrappers, and 6 utility or upscaler integrations. Directory presence does not guarantee a top-level tab.

09 · EVIDENCE

What we checked—and what we did not

Product claims stay tied to the original repository. Community sources map user language and dated reports only.

Product
lllyasviel/stable-diffusion-webui-forge
Fresh check
2 Sep 2026
Runtime scope
Source and static browser QA; no extension, GPU, or generation runtime certification
Author
Forge Field Guide editorial team
Reviewer
Forge Field Guide technical review

Fresh first-party verification: extension UI, loader, state restore, installer startup, paths, remote-access policy, pinned requirements, copied-extension error #327, and asset-path report #1220.