GET

/v1/schemas/fal/image/fal-ai/flux-general/differential-diffusion

kind inputactivity imagehash f3e6575e…extracted Sep 9, 2026version currentsource upstream spec ↗
fieldrecorded source
schemaSource linked above.

upstream-spec

Source trace
e4b5b155d56ae3408edec47aad2e4629133a2caf22b3c2ed3b897faf2cba75c7
{
  "fetchedAt": 1788930053,
  "extractorVersion": "1",
  "verifiedAt": null
}

Request body

36 properties · 3 required · 9 $defs
propertytypedescriptionconstraints
image_url*stringURL of image to use as initial image.
change_map_image_url*stringURL of change map.
prompt*stringThe prompt to generate an image from.
enable_safety_checkerbooleanIf set to true, the safety checker will be enabled. Disabling it requires account authorization; unauthorized requests are always checked, and images flagged as unsafe are returned as black images.default: true
reference_image_urlstringURL of Image for Reference-Only
nag_taunumberThe tau for NAG. Controls the normalization of the hidden state. Higher values will result in a less aggressive normalization, but may also lead to unexpected changes with respect to the original image. Not recommended to change this value.n > 0 · default: 2.5
reference_endnumberThe percentage of the total timesteps when the reference guidance is to be ended.0 ≤ n ≤ 1 · default: 1
max_shiftnumberMax shift for the scheduled timesteps0.01 ≤ n ≤ 5 · default: 1.15
nag_endnumberThe proportion of steps to apply NAG. After the specified proportion of steps has been iterated, the remaining steps will use original attention processors in FLUX.0 < n ≤ 1 · default: 0.25
controlnet_unionsControlNetUnion[]The controlnet unions to use for the image generation. Only one controlnet is supported at the moment.default: []
use_real_cfgbooleanUses classical CFG as in SD1.5, SDXL, etc. Increases generation times and price when set to be true. If using XLabs IP-Adapter v1, this will be turned on!.default: false
nag_alphanumberThe alpha value for NAG. This value is used as a final weighting factor for steering the normalized guidance (positive and negative prompts) in the direction of the positive prompt. Higher values will result in less steering on the normalized guidance where lo…0 < n ≤ 1 · default: 0.25
ip_adaptersIPAdapter[]IP-Adapter to use for image generation.default: []
image_sizeImageSize | enumThe size of the generated image.
negative_promptstringNegative prompt to steer the image generation away from unwanted features. By default, we will be using NAG for processing the negative prompt.default: ""
num_imagesintegerThe number of images to generate. This is always set to 1 for streaming output.1 ≤ n ≤ 10 · default: 1
control_lorasControlLoraWeight[]The LoRAs to use for the image generation which use a control image. You can use any number of LoRAs and they will be merged together to generate the final image.default: []
use_beta_schedulebooleanSpecifies whether beta sigmas ought to be used.default: false
sigma_scheduleconstSigmas schedule for the denoising process."sgm_uniform" · nullable
output_formatenumThe format of the generated image.jpeg | png · default: "png"
use_cfg_zerobooleanUses CFG-zero init sampling as in https://arxiv.org/abs/2503.18886.default: false
real_cfg_scalenumberThe CFG (Classifier Free Guidance) scale is a measure of how close you want the model to stick to your prompt when looking for a related image to show you.0 ≤ n ≤ 5 · default: 3.5
sync_modebooleanIf `True`, the media will be returned as a data URI and the output data won't be available in the request history.default: false
fill_imageImageFillInputUse an image input to influence the generation. Can be used to fill images in masked areas.nullable
controlnetsControlNet[]The controlnets to use for the image generation. Only one controlnet is supported at the moment.default: []
num_inference_stepsintegerThe number of inference steps to perform.1 ≤ n ≤ 50 · default: 28
reference_strengthnumberStrength of reference_only generation. Only used if a reference image is provided.-3 ≤ n ≤ 3 · default: 0.65
base_shiftnumberBase shift for the scheduled timesteps0.01 ≤ n ≤ 5 · default: 0.5
nag_scalenumberThe scale for NAG. Higher values will result in a image that is more distant to the negative prompt.1 < n ≤ 10 · default: 3
strengthnumberThe strength to use for differential diffusion. 1.0 is completely remakes the image while 0.0 preserves the original.0.01 ≤ n ≤ 1 · default: 0.85
seedinteger The same seed and the same prompt given to the same version of the model will output the same image every time. nullable
guidance_scalenumberThe CFG (Classifier Free Guidance) scale is a measure of how close you want the model to stick to your prompt when looking for a related image to show you.0 ≤ n ≤ 20 · default: 3.5
schedulerenumScheduler for the denoising process.euler | dpmpp_2m · default: "euler"
easycontrolsEasyControlWeight[]EasyControl Inputs to use for image generation.default: []
reference_startnumberThe percentage of the total timesteps when the reference guidance is to bestarted.0 ≤ n ≤ 1 · default: 0
lorasLoraWeight[]The LoRAs to use for the image generation. You can use any number of LoRAs and they will be merged together to generate the final image.default: []

Types

9 $defs

ControlLoraWeightobject

scalePer-layer LoRA scales | numberThe scale of the LoRA weight. This is used to scale the LoRA weight before merging it with the base model. Providing a dictionary as {"layer_name":layer_scale} allows per-layer lora scale settings. Layers with no scale provided will have scale 1.0.default: 1
control_image_url*stringURL of the image to be used as the control image.
path*stringURL or the path to the LoRA weights.
preprocessenumType of preprocessing to apply to the input image.canny | depth | None · default: "None"

ControlNetobject

variantstringThe optional variant if a Hugging Face repo key is used.nullable
end_percentagenumberThe percentage of the image to end applying the controlnet in terms of the total timesteps.0 ≤ n ≤ 1 · default: 1
control_image_url*stringURL of the image to be used as the control image.
config_urlstringoptional URL to the controlnet config.json file.nullable
path*stringURL or the path to the control net weights.
conditioning_scalenumberThe scale of the control net weight. This is used to scale the control net weight before merging it with the base model.0 ≤ n ≤ 2 · default: 1
start_percentagenumberThe percentage of the image to start applying the controlnet in terms of the total timesteps.0 ≤ n ≤ 1 · default: 0
mask_image_urlstringURL of the mask for the control image.
mask_thresholdnumberThreshold for mask.0.01 ≤ n ≤ 0.99 · default: 0.5

ControlNetUnionobject

controls*ControlNetUnionInput[]The control images and modes to use for the control net.
path*stringURL or the path to the control net weights.
config_urlstringoptional URL to the controlnet config.json file.nullable
variantstringThe optional variant if a Hugging Face repo key is used.nullable

ControlNetUnionInputobject

mask_image_urlstringURL of the mask for the control image.
end_percentagenumberThe percentage of the image to end applying the controlnet in terms of the total timesteps.0 ≤ n ≤ 1 · default: 1
control_image_url*stringURL of the image to be used as the control image.
conditioning_scalenumberThe scale of the control net weight. This is used to scale the control net weight before merging it with the base model.0 ≤ n ≤ 2 · default: 1
control_mode*enumControl Mode for Flux Controlnet Union. Supported values are: - canny: Uses the edges for guided generation. - tile: Uses the tiles for guided generation. - depth: Utilizes a grayscale depth map for guided generation. - blur: Adds a blur to the image. - pose: …canny | tile | depth | blur | pose | gray · +1 more
start_percentagenumberThe percentage of the image to start applying the controlnet in terms of the total timesteps.0 ≤ n ≤ 1 · default: 0
mask_thresholdnumberThreshold for mask.0.01 ≤ n ≤ 0.99 · default: 0.5

EasyControlWeightobject

image_control_type*enumControl type of the image. Must be one of `spatial` or `subject`.subject | spatial
scalenumberScale for the control method.0 ≤ n ≤ 2 · default: 1
control_method_url*stringURL to safetensor weights of control method to be applied. Can also be one of `canny`, `depth`, `hedsketch`, `inpainting`, `pose`, `seg`, `subject`, `ghibli`
image_url*stringURL of an image to use as a control

ImageFillInputobject

fill_image_urlstring | string[]URLs of images to be filled for redux promptingdefault: []

ImageSizeobject

widthintegerThe width of the generated image.0 < n ≤ 14142 · default: 512
heightintegerThe height of the generated image.0 < n ≤ 14142 · default: 512

IPAdapterobject

subfolderstringSubfolder in which the ip_adapter weights existnullable
scale*numberScale for ip adapter.
path*stringHugging Face path to the IP-Adapter
image_encoder_path*stringPath to the Image Encoder for the IP-Adapter, for example 'openai/clip-vit-large-patch14'
image_encoder_subfolderstringSubfolder in which the image encoder weights exist.nullable
image_encoder_weight_namestringName of the image encoder.nullable
image_url*stringURL of Image for IP-Adapter conditioning.
mask_image_urlstringURL of the mask for the control image.nullable
weight_namestringName of the safetensors file containing the ip-adapter weightsnullable
mask_thresholdnumberThreshold for mask.0.01 ≤ n ≤ 0.99 · default: 0.5

LoraWeightobject

scalePer-layer LoRA scales | numberThe scale of the LoRA weight. This is used to scale the LoRA weight before merging it with the base model. Providing a dictionary as {"layer_name":layer_scale} allows per-layer lora scale settings. Layers with no scale provided will have scale 1.0.default: 1
path*stringURL or the path to the LoRA weights.

Validate a payload

before you spend tokens
shell
$ curl -X POST https://modelschemas.com/v1/validate \
    -d '{"provider":"fal","endpointId":"fal-ai/flux-general/differential-diffusion","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}