Fooocus is built to hide settings, which is exactly why people pick it over Automatic1111 or ComfyUI. The part that gets overlooked is that all of those hidden settings live in a plain JSON file you can read, edit and share. Learn the preset format and you get a one-command way to switch the whole application between a photorealistic setup, an illustration setup and a fast-draft setup, without touching a slider.
What a preset is
Fooocus keeps a presets folder in its install directory. Each file in it is a JSON document describing a complete starting configuration: which base checkpoint to load, which LoRAs to apply and at what weight, which style templates to enable, the default aspect ratio, the sampler and scheduler, the guidance scale, and the performance mode.
You select one at launch:
python entry_with_update.py --preset realistic
The argument is the filename without the .json extension. Recent versions also expose a preset selector in the interface itself; older ones need a restart. A stock install ships with several, including a realistic and an anime preset, and later releases added more targeting particular model families. Rather than trusting any list, open your own presets folder and read what is there. That folder is also the fastest way to learn the format, because every shipped preset is a worked example.
The fields that matter
| Field | What it controls |
|---|---|
default_model |
The base checkpoint filename to load |
default_refiner and default_refiner_switch
|
Optional refiner model and the point in the schedule it takes over |
default_loras |
A list of LoRA filenames with their weights |
default_styles |
Which style templates are pre-selected |
default_cfg_scale |
Guidance strength |
default_sampler and default_scheduler
|
The sampling method and noise schedule |
default_aspect_ratio |
Starting output dimensions |
default_prompt_negative |
A negative prompt applied by default |
checkpoint_downloads and lora_downloads
|
URLs Fooocus fetches automatically if the files are missing |
That last row is the one that catches people out. Launching an unfamiliar preset can trigger a multi-gigabyte download before the interface appears. If your connection or your disk is limited, read the download entries before you run it.
Why this beats adjusting the interface
Three reasons, in order of how much time they save.
Reproducibility. Settings you clicked into the UI six weeks ago are gone. A preset file is a record you can diff, comment on and roll back. When output quality drops, you can see what changed instead of guessing.
Context switching. Product shots and comic panels want different checkpoints, different guidance and different styles. Restarting with a different preset flag takes seconds; rebuilding that configuration by hand every time does not.
Sharing. A preset is a few kilobytes of text. Sent to a colleague along with a prompt, it reproduces your setup on their machine, including pulling the models it needs.
Writing your own
- Copy an existing preset in the
presetsfolder and rename the copy, for exampleproduct.json. Never edit the default in place; you will want something to fall back to. - Set
default_modelto the exact filename of a checkpoint already inmodels/checkpoints. Exact means exact, including case and extension. A typo here means the preset silently falls back or errors on launch. - Add LoRAs to
default_loraswith sensible weights. Around 0.6 to 0.8 is a reasonable starting band for most style LoRAs; higher tends to dominate the prompt. - Choose the styles you want pre-enabled. Keep this short. Stacking many style templates produces an averaged look that fights whatever your checkpoint was fine-tuned for.
- Set the aspect ratio you use most for this kind of work, so you stop re-selecting it.
- Launch with
--preset yourfilename, generate one image, and check the settings panel actually reflects the file. If a field did not apply, it is almost always a name mismatch.
Keep presets narrow. One preset per job produces files you can reason about; a single preset trying to cover everything ends up as a worse version of the default.
Presets and styles are different things
Styles in Fooocus are prompt-side templates: they wrap your text in additional descriptive language before it reaches the model. Presets are configuration-side: they decide which model that text reaches in the first place, and how it is sampled.
This matters when output is wrong. If the subject and composition are right but the look is off, that is a style or prompt problem. If the model is producing the wrong kind of image entirely, or generation is much slower or faster than expected, that is the preset.
A prompt for testing a preset
When you build a new preset, run the same prompt through it every time. A prompt with explicit lighting, camera angle and mood gives you a lot of signal about how a configuration behaves:
Princess Leia from Star Wars as a femme fatale in a 1930s black and white noir style reminiscent of German expressionist film, dramatic rim lighting to convey a menacing feeling, short lighting technique accentuating shadows, Dutch angle from a low angle framing her upper body, gloomy industrial dark alley setting, spooky atmosphere
Two things to watch. First, named characters depend entirely on what the checkpoint knows; a heavily fine-tuned style model may have no idea who this is, in which case describe the wardrobe and hair instead. Second, the photographic terms carry real weight here. Rim lighting, short lighting and the Dutch angle are all well represented in training data, and swapping one out changes the image far more than adding another quality adjective would.
Takeaways
- Presets are editable JSON in the
presetsfolder, selected with--preset nameat launch. - Read the shipped presets first; they document the format better than any description of it.
- Check the download fields before running an unfamiliar preset, or you may pull several gigabytes unexpectedly.
- Filenames in a preset must match your local model files exactly, and a mismatch fails quietly.
- Keep one narrow preset per type of work, and test each with a single fixed prompt so differences are attributable.



Top comments (0)