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.
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.
Installed
See discovered extensions, branch, version, date and update state. Disable, update, refresh, or apply changes here.
Available
Search an upstream AUTOMATIC1111 directory. A listing is discovery—not Forge compatibility or a security review.
Install from URL
Clone one Git repository, optionally selecting a branch and local directory name. The installer may execute code immediately.
Backup/Restore
Save or restore Git commit state for Forge and extensions. This is not a copy of models or every arbitrary file.
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.
What state are you in?
Select the job before touching the installation.
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 directoriesReview the repository, then install one commit
Confirm that the repository names Original Forge, a current Gradio generation, supported model families, install steps, and limitations. Record its URL, branch, and commit before the first test.
Run the controlled installUse the temporary list only to find candidates
The official discussion began as a searchable replacement index. Entries are dated community submissions; they are not a current compatibility certificate. Pick a candidate, recheck its own repository, then test it alone.
Open the dated candidate ledgerLeave installation and isolate the failure
Preserve the first console error. Compare --disable-extra-extensions and --disable-all-extensions, then reduce the active set. The troubleshooting guide owns this job.
Diagnose the extension failureInstall one extension and prove one user action
Keep every other variable still. The goal is a defensible yes/no result, not a large collection.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.
Showing all 38 built-in directories.
sd_forge_controlnet
Integrated ControlNet extension directory
sd_forge_controlllite
ControlLoRA / lightweight control integration directory
sd_forge_dynamic_thresholding
Dynamic thresholding controls
sd_forge_fooocus_inpaint
Fooocus inpaint integration
sd_forge_freeu
FreeU controls
sd_forge_ipadapter
IP-Adapter integration
sd_forge_kohya_hrfix
Kohya HRFix controls
sd_forge_latent_modifier
Latent modifier controls
sd_forge_lora
Forge LoRA integration
sd_forge_multidiffusion
MultiDiffusion integration
sd_forge_neveroom
NeverOOM integration directory
sd_forge_perturbed_attention
Perturbed Attention Guidance
sd_forge_sag
Self Attention Guidance
sd_forge_stylealign
StyleAlign controls
forge_legacy_preprocessors
Legacy preprocessor collection
forge_preprocessor_inpaint
Inpaint preprocessor
forge_preprocessor_marigold
Marigold preprocessor
forge_preprocessor_normalbae
NormalBae preprocessor
forge_preprocessor_recolor
Recolor preprocessor
forge_preprocessor_reference
Reference preprocessor
forge_preprocessor_revision
Revision preprocessor
forge_preprocessor_tile
Tile preprocessor
forge_space_animagine_xl_31
Animagine XL 3.1 Space wrapper
forge_space_birefnet
BiRefNet Space wrapper
forge_space_example
Example wrapper; disabled by default in inspected code
forge_space_florence_2
Florence-2 Space wrapper
forge_space_geowizard
GeoWizard Space wrapper
forge_space_iclight
IC-Light Space wrapper
forge_space_idm_vton
IDM-VTON Space wrapper
forge_space_illusion_diffusion
Illusion Diffusion Space wrapper
forge_space_photo_maker_v2
PhotoMaker V2 Space wrapper
forge_space_sapiens_normal
Sapiens normal-map Space wrapper
extra-options-section
Extra options placement
mobile
Mobile interface adjustments
prompt-bracket-checker
Prompt bracket checking
ScuNET
ScuNET upscaler integration
soft-inpainting
Soft inpainting integration
SwinIR
SwinIR upscaler integration
Try a shorter job such as control, inpaint, tile, or space. A missing result only means it was not found in this inspected built-in tree.
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.
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 ↗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 testedsd-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 testedSegment 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 testedforge2_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 testedsd-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 testedwildcard-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 testedasymmetric-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 testedPreserve the first-bad boundary
Backup/Restore records useful Git state. It is a return aid, not a full machine snapshot.
- 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.
- 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.
- 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.
- 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.
- 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.
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
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.
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- Code inspected
dfdcbab685e57677014f05a3309b48cc87383167- 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
Original Forge repository and README ↗
Defines the project boundary and links the temporary extension-list discussion.
Official Gradio 4 announcement ↗
Establishes the dated UI compatibility boundary.
Official temporary extension list ↗
Used only as a dated candidate index; individual claims remain community-reported.
SD Note Forge guide and built-ins overview ↗
Used to identify user vocabulary; current facts were checked against repository code.
TroubleChute Forge walkthrough ↗
The complete transcript was reviewed; its short February 2024 extension segment is historical workflow context only.
Collected extension failure reports ↗
Used to map user problems; no universal compatibility conclusion was taken from a report.
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.