Forge Command-Line Arguments
Search every argument registered by the inspected clean Original Forge core. Parser acceptance proves a name exists—not that it is safe, useful, or still controls the path its inherited help describes.
Start with no flags. Add one explained change.
At commit dfdcbab, the base WebUI parser registers 126 arguments, the Forge backend registers 35, and built-in preload hooks add 6 more. That produces 167 unique core arguments in a clean checkout.
A third-party extension can add more before the final parse. Eleven core entries explicitly say they do nothing. Several inherited A1111 flags remain parseable while current Forge uses separate backend controls.
Put the flag where the running launcher reads it.
The file name alone is not proof. Use a harmless theme argument as a wiring test, restart completely, and confirm the console prints it.
[PROGRAM]\webui-user.batset COMMANDLINE_ARGS=--theme darkProof: Start webui-user.bat and read “Launching Web UI with arguments”.
[PACKAGE]\webui\webui-user.batset COMMANDLINE_ARGS=--theme darkProof: First open the outer run.bat and confirm that it calls this inner launcher in your dated archive.
[PROGRAM]/webui-user.shexport COMMANDLINE_ARGS="--theme dark"Proof: Start with webui.sh and read the printed launch arguments.
--exit is a special pre-parser token.launch_utils.py checks it directly and exits after environment work, but the main parser never registers it. It is therefore documented but not counted among the 167 normal core arguments.
Make the result attributable.
Flags become unmanageable when copied as a bundle. A seven-step receipt keeps one failure connected to one change.
- 01
Save the clean line
Copy the current COMMANDLINE_ARGS and the printed launch line before editing.
- 02
Name one job
Example: move checkpoints, expose an authenticated API, or isolate third-party extensions.
- 03
Choose one flag
Read its value type, owning code, boundary, and risk below.
- 04
Quote the value
Wrap a path or credential value containing spaces; never quote the flag name itself.
- 05
Restart completely
A browser refresh cannot apply a process-start argument.
- 06
Read the launch line
Confirm the exact flag and one complete value reached the process.
- 07
Repeat one baseline
Same model, inputs, seed, dimensions, extensions, and environment; then remove or keep deliberately.
The parser is not a recommendation engine.
Risk labels describe what a flag can disturb. They are editorial operating boundaries based on inspected code and cited owner warnings—not claims that every lower-impact flag is harmless.
Usually diagnostic or presentation-focused, but still record and remove after the test.
Changes files, inventories, downloads, or persistent state.
Changes device, precision, memory, installation, or request behavior.
Can make the service reachable beyond the default local session.
Changes authentication, served files, code execution, safety checks, or process control.
Parsed for compatibility; current Forge effect can be partial, separate, or explicitly absent.
Hidden or development-facing surface, not a normal user optimization.
Search all 167 parsed arguments.
Every flag is present in the initial HTML. Grouped records keep mutually exclusive families together while exact flag chips remain individually searchable and countable.
Showing all 167 arguments in 100 grouped records
-f- Takes
- switch
- Code-defined role
- Hidden compatibility switch whose source comment says it allows running as root.
- Boundary
- Suppressed from parser help and implemented outside the WebUI. Do not use it to bypass the Unix launcher root check.
--update-all-extensions- Takes
- switch
- Code-defined role
- Pull every extension during startup.
- Boundary
- Changes multiple executable codebases in one launch. Record extension commits and do not combine it with a Forge update during diagnosis.
--skip-python-version-check- Takes
- switch
- Code-defined role
- Skips the launcher Python-version gate.
- Boundary
- It does not make an unsupported interpreter compatible; it only removes an early diagnostic.
--skip-torch-cuda-test- Takes
- switch
- Code-defined role
- Skips the launcher test that checks whether Torch can use CUDA.
- Boundary
- It cannot repair a mismatched Torch, driver, CUDA runtime, or unsupported GPU. Continue only when the failed check itself is understood.
--reinstall-xformers--reinstall-torch- Takes
- switches
- Code-defined role
- Forces launcher-managed reinstallation of the named package family.
- Boundary
- Environment mutation, not a harmless retry. Preserve the working package receipt and change one family at a time.
--update-check- Takes
- switch
- Code-defined role
- Runs the inherited update check during startup.
- Boundary
- A check is not an update or a maintenance guarantee. Bind conclusions to the inspected repository state.
--test-server- Takes
- switch
- Code-defined role
- Configures the launcher for its test-server path.
- Boundary
- Development/testing surface, not a normal performance or connection fix.
--log-startup--loglevel- Takes
- switch; CRITICAL | ERROR | WARNING | INFO | DEBUG
- Code-defined role
- Adds detailed startup timing or selects the application log level.
- Boundary
- Useful for evidence capture. Logs can contain local paths and environment details; review before publishing.
--skip-prepare-environment- Takes
- switch
- Code-defined role
- Skips the complete launcher environment-preparation phase.
- Boundary
- Assumes the environment is already complete. Missing packages or repositories will fail later and less clearly.
--skip-install- Takes
- switch
- Code-defined role
- Skips package installation while retaining the rest of launcher preparation.
- Boundary
- Diagnostic/developer control. It does not prove installed dependencies match the recorded commit.
--skip-google-blockly- Takes
- switch
- Code-defined role
- Skips initialization of Google Blockly modules.
- Boundary
- Use only when that component is the isolated subject; it is unrelated to model loading and generation speed.
--dump-sysinfo- Takes
- switch
- Code-defined role
- Writes the limited sysinfo report and exits.
- Boundary
- The parser help explicitly says the limited dump omits extensions and options. It is not a complete reproduction receipt.
--do-not-download-clip- Takes
- switch
- Code-defined role
- Prevents automatic CLIP download when the checkpoint does not include it.
- Boundary
- Can leave a model layout incomplete. Supply the documented encoder files instead of treating the missing component as optional.
--skip-version-check- Takes
- switch
- Code-defined role
- Skips inherited Torch/xformers version checks.
- Boundary
- Suppresses a compatibility diagnostic; it does not change the installed versions.
--no-download-sd-model- Takes
- switch
- Code-defined role
- Prevents the fallback SD 1.5 download when no model is found.
- Boundary
- Useful for intentional empty or externally managed inventories. The UI still needs a compatible model before generation.
--data-dir- Takes
- directory
- Code-defined role
- Replaces the base directory for most user data.
- Boundary
- Moves more than models: settings, outputs, styles, user extensions, cache, and other defaults follow the data root.
--models-dir- Takes
- directory
- Code-defined role
- Replaces the base models directory derived from the data root.
- Boundary
- Does not move embeddings, outputs, configuration, extensions, or the Python environment.
--config- Takes
- file
- Code-defined role
- Selects the model-construction configuration file.
- Boundary
- Advanced model-loading control. A mismatched config can make a valid checkpoint fail or load incorrectly.
--ckpt- Takes
- file
- Code-defined role
- Adds a named checkpoint to the inventory and requests it for loading.
- Boundary
- File discovery is not format or architecture compatibility.
--ckpt-dir- Takes
- directory
- Code-defined role
- Adds or replaces the checkpoint inventory directory.
- Boundary
- Quote paths containing spaces and prove the effective value in the launch line.
--vae-dir- Takes
- directory
- Code-defined role
- Adds the directory scanned for separate VAE files.
- Boundary
- Does not select a VAE or prove that a file matches the active model.
--text-encoder-dir- Takes
- directory
- Code-defined role
- Adds the inventory directory for separate text encoders.
- Boundary
- Keep CLIP/T5 model files separate from textual-inversion embeddings.
--embeddings-dir- Takes
- directory
- Code-defined role
- Changes the textual-inversion embeddings directory.
- Boundary
- This path is based on the data root by default, not the models root.
--textual-inversion-templates-dir- Takes
- directory
- Code-defined role
- Changes the directory containing textual-inversion training templates.
- Boundary
- Training templates are not learned embeddings or prompt styles.
--hypernetwork-dir- Takes
- directory
- Code-defined role
- Changes the hypernetwork inventory directory.
- Boundary
- Legacy inventory control; path acceptance does not establish current workflow compatibility.
--localizations-dir- Takes
- directory
- Code-defined role
- Changes the localization-files directory.
- Boundary
- Localization code can be version-sensitive and does not change model behavior.
--gfpgan-dir--gfpgan-model- Takes
- directory; file name
- Code-defined role
- Selects the GFPGAN source directory or one model filename.
- Boundary
- Separate from the GFPGAN model-inventory path below; confirm which consumer produced the error.
--codeformer-models-path--gfpgan-models-path--esrgan-models-path--bsrgan-models-path--realesrgan-models-path--dat-models-path--clip-models-path- Takes
- directories
- Code-defined role
- Changes the model inventories for restoration, upscaler, and interrogate components.
- Boundary
- Each flag owns only its named family. Do not point every family at one undifferentiated directory.
--scunet-models-path--swinir-models-path- Takes
- directories
- Code-defined role
- Built-in preload arguments for ScuNET and SwinIR model directories.
- Boundary
- Added by built-in preload hooks, so they disappear if that built-in is removed from the installed source.
--lora-dir--lyco-dir-backcompat- Takes
- directories
- Code-defined role
- Built-in preload paths for LoRA and backward-compatible LyCORIS inventory.
- Boundary
- The LyCORIS name is explicitly a compatibility surface. Do not infer support for every current LyCORIS variant.
--controlnet-dir--controlnet-preprocessor-models-dir- Takes
- directories
- Code-defined role
- Changes integrated ControlNet weight and preprocessor model directories.
- Boundary
- Weights and preprocessors are separate inventories and cannot substitute for one another.
--forge-ref-a1111-home- Takes
- A1111 checkout directory
- Code-defined role
- Maps supported model inventories from an existing A1111 checkout.
- Boundary
- The helper expects A1111-shaped subdirectories. It is not a generic root for Fooocus, ComfyUI, or arbitrary folders.
--ui-config-file--ui-settings-file- Takes
- files
- Code-defined role
- Changes the UI component-default file or Settings state file.
- Boundary
- These files have different roles. Back up both before a reset or migration.
--styles-file- Takes
- file or wildcard; repeatable
- Code-defined role
- Adds one or more prompt-style file paths or wildcard patterns.
- Boundary
- Preserve valid CSV structure. A matching wildcard can load more files than intended.
--vae-path- Takes
- file
- Code-defined role
- Pins one VAE file and disables VAE-related Settings selection.
- Boundary
- A global pin can silently override per-model expectations; record it in every reproduction receipt.
--gpu-device-id- Takes
- integer
- Code-defined role
- Selects the backend GPU device index.
- Boundary
- Backend device selector. Do not confuse it with the inherited string-valued --device-id.
--all-in-fp32--all-in-fp16- Takes
- mutually exclusive switches
- Code-defined role
- Forces a broad FP32 or FP16 backend precision preference.
- Boundary
- Mutually exclusive global overrides. They change memory, compatibility, output, and sometimes speed.
--unet-in-bf16--unet-in-fp16--unet-in-fp8-e4m3fn--unet-in-fp8-e5m2- Takes
- mutually exclusive switches
- Code-defined role
- Forces the UNet/diffusion-model storage or execution dtype family.
- Boundary
- Hardware and model support are not guaranteed by parser acceptance. Compare a fixed-seed baseline and inspect for invalid output.
--vae-in-fp16--vae-in-fp32--vae-in-bf16- Takes
- mutually exclusive switches
- Code-defined role
- Forces the VAE dtype preference.
- Boundary
- Can change memory use and decoding reliability. Black output requires diagnosis, not another blind precision stack.
--vae-in-cpu- Takes
- switch
- Code-defined role
- Keeps VAE processing on CPU through the backend memory manager.
- Boundary
- Trades device use and transfer time; not a universal OOM fix.
--clip-in-fp8-e4m3fn--clip-in-fp8-e5m2--clip-in-fp16--clip-in-fp32- Takes
- mutually exclusive switches
- Code-defined role
- Forces text-encoder precision preferences.
- Boundary
- Encoder support varies by model package and device. A successful launch does not prove conditioning is correct.
--attention-split--attention-quad--attention-pytorch- Takes
- mutually exclusive switches
- Code-defined role
- Selects one current backend attention implementation.
- Boundary
- These are the backend selectors. Do not stack them with one another or assume inherited A1111 attention flags control the same code.
--force-upcast-attention--disable-attention-upcast- Takes
- mutually exclusive switches
- Code-defined role
- Forces or disables backend attention upcasting.
- Boundary
- Changes numerical behavior. Use only for an identified precision problem and compare the exact same job.
--disable-xformers- Takes
- switch
- Code-defined role
- Prevents selection of the backend xformers attention implementation.
- Boundary
- Current backend control; distinct from inherited --xformers and --force-enable-xformers parser entries.
--directml- Takes
- optional device integer
- Code-defined role
- Requests the DirectML backend, optionally with a device index.
- Boundary
- Code presence is not a current hardware support matrix. Follow the separate AMD/DirectML boundary and test the exact stack.
--disable-ipex-hijack- Takes
- switch
- Code-defined role
- Disables the backend Intel Extension for PyTorch hijack path.
- Boundary
- Diagnostic backend control, not proof that Intel hardware is supported by the remaining environment.
--always-gpu--always-high-vram--always-normal-vram--always-low-vram--always-no-vram--always-cpu- Takes
- mutually exclusive switches
- Code-defined role
- Forces one backend VRAM/CPU state instead of automatic selection.
- Boundary
- Global override. Current Forge also exposes runtime memory controls in the UI; do not tune both surfaces at once.
--always-offload-from-vram- Takes
- switch
- Code-defined role
- Always offloads model memory from VRAM when possible.
- Boundary
- The maintainer’s dated note calls it slower but less risky. It is not a free memory increase.
--pytorch-deterministic- Takes
- switch
- Code-defined role
- Requests deterministic PyTorch behavior in the backend.
- Boundary
- Does not guarantee cross-device, cross-version, or extension-level reproducibility.
--cuda-malloc- Takes
- switch
- Code-defined role
- Requests the cudaMallocAsync allocator path when supported.
- Boundary
- The 2024 maintainer note reports small or unnoticed gains on many devices and crashes for some users. Measure and retain a rollback.
--cuda-stream- Takes
- switch
- Code-defined role
- Uses a CUDA stream path to overlap model movement and computation.
- Boundary
- Dated owner tests report both speed gains and higher black-image/OOM risk on some GPUs. Never combine it with other tuning flags in the first test.
--pin-shared-memory- Takes
- switch
- Code-defined role
- Pins shared GPU memory for the backend offload path.
- Boundary
- The owner says it is effective with --cuda-stream and warns that shared-memory OOM can crash the whole process.
--disable-gpu-warning- Takes
- switch
- Code-defined role
- Suppresses the backend low-free-GPU-memory warning.
- Boundary
- Removes a diagnostic only. It creates no headroom and should never be presented as an OOM repair.
--no-half--no-half-vae- Takes
- switches
- Code-defined role
- Inherited precision controls used by some remaining upscaler/restoration paths.
- Boundary
- Current Forge backend owns primary model precision. These inherited flags have partial consumers and are not universal model fixes.
--medvram--medvram-sdxl--lowvram- Takes
- switches
- Code-defined role
- Inherited A1111 low-memory parser surface.
- Boundary
- The inspected Forge backend uses its own memory manager and UI controls. Parser presence does not prove the old A1111 behavior applies end to end.
--lowram- Takes
- switch
- Code-defined role
- Changes the inherited checkpoint weight-load location away from the normal CPU staging path.
- Boundary
- Name and help text are easy to misread. Treat it as a legacy compatibility control and verify the actual load trace.
--precision--upcast-sampling- Takes
- full | half | autocast; switch
- Code-defined role
- Inherited evaluation/upcast controls with limited remaining consumers.
- Boundary
- Do not substitute them for the current backend UNet, VAE, CLIP, and attention precision flags.
--xformers--force-enable-xformers--xformers-flash-attention- Takes
- switches
- Code-defined role
- Inherited xformers installation/selection arguments.
- Boundary
- The inspected A1111 optimization-selection block is commented out while current backend attention has separate controls. --force-enable-xformers explicitly rejects bug reports when forced support fails.
--opt-split-attention--opt-sub-quad-attention--opt-split-attention-invokeai--opt-split-attention-v1- Takes
- switches
- Code-defined role
- Inherited A1111 attention preference arguments.
- Boundary
- Parsed at this commit, but current backend attention selection is separate. Do not infer active end-to-end behavior from the old help text.
--sub-quad-q-chunk-size--sub-quad-kv-chunk-size--sub-quad-chunk-threshold- Takes
- integers
- Code-defined role
- Inherited sub-quadratic attention chunk controls.
- Boundary
- Only meaningful if the owning implementation consumes them. Changing numbers without proving that route is active adds noise.
--opt-sdp-attention--opt-sdp-no-mem-attention--disable-opt-split-attention- Takes
- switches
- Code-defined role
- Inherited scaled-dot-product or optimization-disable preferences.
- Boundary
- Do not mix with current mutually exclusive backend attention flags in a baseline test.
--disable-nan-check- Takes
- switch
- Code-defined role
- Inherited switch intended to skip non-finite-value checks.
- Boundary
- At the inspected commit, test_for_nans returns immediately before consulting this flag. It cannot repair a black or invalid image.
--use-cpu- Takes
- one or more module names
- Code-defined role
- Inherited request to use CPU for named modules.
- Boundary
- Current Forge device routing is backend-managed and some inherited module names are compatibility surfaces. Verify each consumer.
--use-ipex- Takes
- switch
- Code-defined role
- Inherited request to use Intel XPU as the Torch device.
- Boundary
- Distinct from backend --disable-ipex-hijack. Parser presence is not a current Intel support guarantee.
--disable-model-loading-ram-optimization- Takes
- switch
- Code-defined role
- Disables an inherited optimization intended to reduce RAM use during model loading.
- Boundary
- Increases the diagnostic surface and may increase memory demand. Use only to isolate that exact loading optimization.
--opt-channelslast- Takes
- switch
- Code-defined role
- Requests channels-last memory format for inherited Stable Diffusion paths.
- Boundary
- Measure the exact model and device; parser acceptance does not guarantee a speed benefit.
--device-id- Takes
- string
- Code-defined role
- Inherited CUDA device selector that can work with CUDA_VISIBLE_DEVICES.
- Boundary
- Do not confuse it with backend --gpu-device-id. Record both the environment variable and effective device line.
--share- Takes
- switch
- Code-defined role
- Requests a Gradio public sharing route.
- Boundary
- Expands access beyond localhost. It is not a fix for a crashed process or wrong local port.
--ngrok--ngrok-options- Takes
- auth token; JSON
- Code-defined role
- Starts the inherited ngrok tunnel path and passes JSON options.
- Boundary
- Treat tokens as secrets. A tunnel exposes a service and needs authentication, network, and data review.
--listen--port- Takes
- switch; integer
- Code-defined role
- Binds for network requests and optionally selects the server port.
- Boundary
- 0.0.0.0 is a bind address, not the normal browser destination. Firewall and authentication remain separate responsibilities.
--gradio-auth--gradio-auth-path- Takes
- credentials; credential file
- Code-defined role
- Adds Gradio username/password authentication inline or from a file.
- Boundary
- Command lines and files can leak credentials. Authentication does not make an unsafe public deployment production-ready.
--gradio-allowed-path- Takes
- directory; repeatable
- Code-defined role
- Adds filesystem locations Gradio may serve.
- Boundary
- Broadens file exposure. Allow the narrowest required directory and never use it as a general disk-sharing shortcut.
--api--nowebui- Takes
- switches
- Code-defined role
- Enables the API with the WebUI or starts API-only mode.
- Boundary
- --nowebui changes the primary interface and implies API mode. Network binding, authentication, and input-URL policy remain separate.
--api-auth--api-log- Takes
- credentials; switch
- Code-defined role
- Adds API credentials or logs API requests.
- Boundary
- Logs and process arguments may expose sensitive material. Review retention and access before enabling.
--cors-allow-origins--cors-allow-origins-regex- Takes
- comma list; regex
- Code-defined role
- Configures allowed browser origins for API requests.
- Boundary
- CORS is a browser policy, not authentication or a firewall. A broad regex can expose more origins than intended.
--tls-keyfile--tls-certfile--disable-tls-verify- Takes
- key file; certificate file; switch
- Code-defined role
- Configures Gradio TLS and optionally permits a self-signed certificate.
- Boundary
- Key and certificate must be supplied together. The negatively named verify flag changes certificate trust and needs an explicit threat model.
--server-name--subpath- Takes
- hostname; path segment
- Code-defined role
- Changes the bind hostname or reverse-proxy root path.
- Boundary
- Proxy headers, authentication, TLS, websocket behavior, and public routing are outside what these two flags alone solve.
--api-server-stop--timeout-keep-alive- Takes
- switch; seconds
- Code-defined role
- Enables API stop/restart/kill routes or changes the Uvicorn keep-alive timeout.
- Boundary
- Remote process-control routes are high impact. Do not expose them without strong access controls and an intentional deployment design.
--allow-code- Takes
- switch
- Code-defined role
- Allows custom script execution from the WebUI.
- Boundary
- Directly expands code-execution capability. Never enable for untrusted users or content.
--enable-insecure-extension-access- Takes
- switch
- Code-defined role
- Keeps the Extensions tab available even when Forge detects a non-local launch.
- Boundary
- Overrides a deliberate protection applied to share/listen/ngrok/server-name sessions.
--disable-safe-unpickle- Takes
- switch
- Code-defined role
- Disables the PyTorch model malicious-code safety check.
- Boundary
- Security control, not a compatibility tweak. Do not recommend it as a generic way to load an unknown checkpoint.
--disable-all-extensions--disable-extra-extensions- Takes
- switches
- Code-defined role
- Prevents every extension, or only non-built-in extensions, from running.
- Boundary
- Use extra first to isolate third-party code; use all only to test built-ins too. Remove the flag after diagnosis.
--no-progressbar-hiding- Takes
- switch
- Code-defined role
- Keeps the Gradio progress bar visible instead of hiding it.
- Boundary
- The parser help warns that browser hardware acceleration can make the visible progress bar slow ML work.
--hide-ui-dir-config--freeze-settings--freeze-settings-in-sections--freeze-specific-settings- Takes
- switches; comma lists
- Code-defined role
- Hides path configuration or freezes all, sectional, or named Settings controls.
- Boundary
- Useful for controlled deployments. Record the locked keys so a missing control is not misdiagnosed as a version regression.
--gradio-debug- Takes
- switch
- Code-defined role
- Launches Gradio with its debug option.
- Boundary
- Debug output may disclose internal details. Use locally and remove after evidence capture.
--autolaunch--theme- Takes
- switch; theme name
- Code-defined role
- Opens the browser automatically or selects the initial light/dark theme.
- Boundary
- Presentation controls; they do not repair a server that failed before printing a URL.
--use-textbox-seed- Takes
- switch
- Code-defined role
- Uses a plain text box for seed input so long integers can be entered directly.
- Boundary
- Changes the control type, not seed semantics or reproducibility requirements.
--disable-console-progressbars- Takes
- switch
- Code-defined role
- Suppresses console progress bars.
- Boundary
- Reduces live console detail and does not improve model execution by itself.
--ui-debug-mode- Takes
- switch
- Code-defined role
- Starts the interface without loading a model for faster UI inspection.
- Boundary
- A passing UI-debug launch does not prove model loading or generation works.
--administrator- Takes
- switch
- Code-defined role
- Sets the inherited administrator-rights option consumed by the WebUI surface.
- Boundary
- Does not grant operating-system administrator privileges. Treat it as an inherited application flag.
--no-gradio-queue- Takes
- switch
- Code-defined role
- Disables the Gradio queue and uses HTTP requests instead of websockets.
- Boundary
- Changes request transport and extension assumptions. Do not use it as a generic connection repair.
--skip-load-model-at-start- Takes
- switch
- Code-defined role
- Skips initial model loading when running API-only mode.
- Boundary
- Parser help limits the effect to --nowebui. It does not speed a normal WebUI launch.
--unix-filenames-sanitization--filenames-max-length- Takes
- switch; integer
- Code-defined role
- Changes filename character sanitization or maximum saved filename length.
- Boundary
- Can conflict with the browser, filesystem, sync tools, or destination limits. Existing names are not retroactively repaired.
--no-prompt-history- Takes
- switch
- Code-defined role
- Disables the last-prompt read/write feature and prevents params.txt creation.
- Boundary
- Removes only that small history artifact; it is not a complete privacy or offline mode.
--no-hashing- Takes
- switch
- Code-defined role
- Disables SHA-256 checkpoint hashing to reduce loading work.
- Boundary
- Removes a useful identity signal. Filename alone is not enough to reproduce or verify a model.
--controlnet-loglevel--controlnet-tracemalloc- Takes
- level; switch
- Code-defined role
- Built-in ControlNet preload controls for logging level and memory tracing.
- Boundary
- Diagnostic overhead and output belong to integrated ControlNet only, not every Forge subsystem.
--max-batch-count--always-batch-cond-uncond--show-negative-prompt- Takes
- integer; switches
- Code-defined role
- Retained parser compatibility entries whose own help says they do nothing.
- Boundary
- Do not recommend, benchmark, or troubleshoot with them. Acceptance by the parser is their only verified behavior here.
--unload-gfpgan--deepdanbooru- Takes
- switches
- Code-defined role
- Retained GFPGAN/DeepDanbooru compatibility entries whose help says they do nothing.
- Boundary
- They cannot unload a current restoration path or enable a tagger at this commit.
--gradio-img2img-tool--gradio-inpaint-tool--gradio-queue- Takes
- values; switch
- Code-defined role
- Retained Gradio compatibility entries explicitly described as no-op.
- Boundary
- Use the current UI and --no-gradio-queue behavior; these names do not restore older tool selectors.
--ngrok-region--enable-console-prompts--add-stop-route- Takes
- value; switches
- Code-defined role
- Retained parser entries explicitly described as no-op or legacy compatibility.
- Boundary
- Do not mistake --add-stop-route for the active --api-server-stop control.
Check spelling, remove a value, or switch back to All. The name may belong to a third-party extension or another Forge fork.
Do not import another project’s launch recipe.
Similar names are especially dangerous in command-line documentation because the parser can change silently between repositories and extensions.
Clean Original Forge core
The 167 names on this page come from commit dfdcbab: two core parser files plus built-in preload hooks.
User extension arguments
Enabled third-party extensions can register more names before the final parse. Their behavior belongs to that extension and commit.
Fork and manager arguments
reForge, Forge Neo, Forge Classic, containers, and launch managers can wrap or replace this parser. Their flags are not Original Forge facts.
Answers before you edit the launcher.
These questions were derived from the catalogued installation material, full transcripts, current discussions, and the exact parser audit.
Where do I put Forge command-line arguments on Windows?
For the source/Git route, edit COMMANDLINE_ARGS in the active webui-user.bat and launch that file. The official Windows archive has an outer package layer; inspect its run.bat first and confirm which inner launcher it calls before editing a similarly named file.
Where do I put Forge flags on Linux or macOS?
Set export COMMANDLINE_ARGS="..." in webui-user.sh, then start Forge through webui.sh so that user file is sourced. Do not edit webui.sh for a normal persistent argument.
How do I add more than one argument?
Put the flags on the same COMMANDLINE_ARGS value separated by spaces. Quote each value that contains spaces. Add one new flag per test so the result still identifies a cause.
How do I quote a Windows path with spaces?
Quote the value, not the flag: --ckpt-dir "D:\AI Models\Stable-diffusion". Then confirm the complete path appears as one value in the launch line and no “unrecognized arguments” fragment remains.
How can I confirm which arguments Forge actually received?
Read the console line beginning “Launching Web UI with arguments”. Save that line with the commit and environment receipt. A value written in a dormant launcher file is not evidence that the running process received it.
Why does Forge say unrecognized arguments?
The flag may be misspelled, copied from reForge/Neo/Classic, supplied by a missing third-party extension, or broken into extra tokens by incorrect quoting. Compare it with this commit-bound core inventory and the active extension preloads.
Does being accepted by the parser mean a flag works?
No. It proves only that the current parser recognizes the name. Eleven entries explicitly say they do nothing, and several inherited A1111 controls have partial or separate consumers in current Forge.
What is the difference between --listen, --share, and --api?
--listen changes network binding, --share requests a Gradio public tunnel, and --api enables API routes. They solve different jobs, can be combined, and each changes the security boundary beyond a default localhost-only UI.
Is --listen safe for LAN access?
It makes Forge respond to network requests but does not supply a complete deployment security design. Review firewall scope, authentication, allowed paths, API settings, sensitive outputs, and every extension before exposing it.
Should I use --disable-safe-unpickle when a model will not load?
Not as a generic fix. It disables a malicious-code safety check for PyTorch model loading. Verify the model format and source instead of weakening the control for an unknown file.
Does --disable-nan-check fix black images?
No. A flag cannot turn non-finite tensors into a valid image. At the inspected commit the relevant test function returns before using this inherited flag, so it is retained as a stale compatibility surface.
Should I use --skip-torch-cuda-test after a GPU error?
Only when you already understand why the test is wrong for that exact environment. Skipping it does not repair Torch, the driver, CUDA runtime, or an unsupported GPU; it can merely defer the failure.
Should I enable --cuda-malloc, --cuda-stream, and --pin-shared-memory together?
Do not begin with all three. The dated maintainer note describes potential gains and specific crash, black-output, and OOM risks. Add one change to a recorded baseline, repeat the same job, and retain a rollback.
Should I still use --medvram or --lowvram in Forge?
They remain in the inherited parser, but current Forge has its own backend memory manager and runtime memory controls. Do not assume an old A1111 recipe controls the complete Forge path; use the dedicated memory guide and verify the actual device trace.
What is the difference between --disable-extra-extensions and --disable-all-extensions?
--disable-extra-extensions keeps built-ins while blocking third-party extensions. --disable-all-extensions blocks both. Start with extra for extension isolation, then use all only when a built-in must also be tested.
What is the difference between --data-dir and --models-dir?
--data-dir moves the broad user-data base, including default settings, outputs, user extensions, cache, and models. --models-dir replaces only the models base. Use the paths reference before moving either.
Which Forge command-line arguments do nothing?
At this commit the parser help explicitly calls eleven entries no-op or legacy: max-batch-count, always-batch-cond-uncond, unload-gfpgan, ngrok-region, deepdanbooru, show-negative-prompt, both old Gradio tool flags, enable-console-prompts, gradio-queue, and add-stop-route.
Can an extension add its own command-line flags?
Yes. Forge preloads enabled user extensions and built-ins before its final parse. This page inventories the clean Original Forge core and its built-ins; extension-specific flags belong to the exact extension and commit that defines them.
Why is --exit not included in the 167 parsed arguments?
launch_utils checks the literal token before the final parser, but the inspected core parser does not register it with add_argument. It is documented here as a special internal token, not counted as a normal core argument.
Can I copy a command-line list from reForge or Forge Neo?
No. Those are separate repositories with different parsers and behavior. Copy only a flag verified in the exact Original Forge commit you run, then add it to a clean baseline one at a time.
Names came from code. Intent came from users.
The inventory was extracted from a local checkout of Original Forge commit dfdcbab and compared with current repository pages on 31 Aug 2026. Secondary sources never added a flag or extended an SEO rule.
Primary / direct evidence
126 inherited and Forge-added argument names, help text, defaults, and explicit no-op labels.
↗ORIGINAL FORGEForge backend parser35 device, dtype, attention, VRAM, CUDA, and warning arguments.
↗ORIGINAL FORGEFinal parser assemblyLoads enabled user-extension and built-in preload hooks before strict parsing.
↗ORIGINAL FORGEExtension preload loaderDefines how preload.py files add arguments dynamically.
↗ORIGINAL FORGELauncher behaviorEnvironment flags, printed launch arguments, A1111 mapping, and special --exit token.
↗ORIGINAL FORGEServer launch consumerShare, TLS, allowed paths, root path, API, and WebUI launch behavior.
↗ORIGINAL FORGEWindows user launcherPersistent COMMANDLINE_ARGS location for the source/Git route.
↗ORIGINAL FORGEUnix user launcherPersistent exported COMMANDLINE_ARGS for Linux/macOS source installs.
↗ORIGINAL FORGEBackend memory managerCurrent consumers for forced VRAM states, CUDA allocator, offload, shared memory, and device behavior.
↗ORIGINAL FORGEBackend attentionCurrent split, quad, PyTorch, and xformers selection logic.
↗ORIGINAL FORGEBuilt-in LoRA preloadAdds LoRA and backward-compatible LyCORIS paths.
↗ORIGINAL FORGEBuilt-in ControlNet preloadAdds ControlNet log-level and tracemalloc arguments.
↗Local research reviewed: 8 records, including 2 full video transcripts
Original repository and README
Product boundary, source launchers, current package links, and owner identity.
NeverOOM / performance flags announcement
Dated owner explanations and explicit risk boundaries for offload, CUDA streams, allocator, and shared memory.
Forge UI construction code
Shows current UI memory controls that must not be conflated with inherited launch flags.
DeepWiki installation and setup
Secondary CLI/API taxonomy; every technical claim rechecked in source.
HammerAI Forge API guide
Integration vocabulary and API/CORS user intent; deployment advice not treated as core authority.
Installing the Forge WebUI
Windows launcher and configuration questions from a dated package guide.
Install Forge UI and FLUX Models
Full captions: edits webui-user, adds theme/path arguments, restarts, and checks the printed launch line.
Install Stable Diffusion in 2025 Forge
Full captions: package/run workflow and beginner configuration language; fixed hardware claims rejected.
Exact parser names, clean-core count, grouping source, explicit no-op help, and inspected consumers.
Owner performance warnings and package examples remain dated evidence, not permanent device outcomes.
Third-party extension flags, manager wrappers, every hardware result, and flags from forks.