{"record":{"id":"a0402294281dce88","repo":"Stability-AI/generative-models","slug":"unknown-discretization-params-discretization","errorCode":null,"errorMessage":"unknown discretization {params.discretization}","messagePattern":"unknown discretization (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"sgm/inference/api.py","lineNumber":299,"sourceCode":"    return guider_config\r\n\r\n\r\ndef get_discretization_config(params: SamplingParams):\r\n    if params.discretization == Discretization.LEGACY_DDPM:\r\n        discretization_config = {\r\n            \"target\": \"sgm.modules.diffusionmodules.discretizer.LegacyDDPMDiscretization\",\r\n        }\r\n    elif params.discretization == Discretization.EDM:\r\n        discretization_config = {\r\n            \"target\": \"sgm.modules.diffusionmodules.discretizer.EDMDiscretization\",\r\n            \"params\": {\r\n                \"sigma_min\": params.sigma_min,\r\n                \"sigma_max\": params.sigma_max,\r\n                \"rho\": params.rho,\r\n            },\r\n        }\r\n    else:\r\n        raise ValueError(f\"unknown discretization {params.discretization}\")\r\n    return discretization_config\r\n\r\n\r\ndef get_sampler_config(params: SamplingParams):\r\n    discretization_config = get_discretization_config(params)\r\n    guider_config = get_guider_config(params)\r\n    sampler = None\r\n    if params.sampler == Sampler.EULER_EDM:\r\n        return EulerEDMSampler(\r\n            num_steps=params.steps,\r\n            discretization_config=discretization_config,\r\n            guider_config=guider_config,\r\n            s_churn=params.s_churn,\r\n            s_tmin=params.s_tmin,\r\n            s_tmax=params.s_tmax,\r\n            s_noise=params.s_noise,\r\n            verbose=True,\r\n        )\r","sourceCodeStart":281,"sourceCodeEnd":317,"githubUrl":"https://github.com/Stability-AI/generative-models/blob/e8cd657656fa5d61688191730d0e03242bf4ed44/sgm/inference/api.py#L281-L317","documentation":"get_discretization_config maps the `discretization` field of SamplingParams to a known discretization config builder (DDPM, EDM, etc.). If the string is not one of the recognized values, it raises this ValueError. It is a config-validation failure inside sampler construction.","triggerScenarios":"Calling text_to_image/image_to_image with SamplingParams where discretization is set to an unrecognized string (e.g. \"ddim\", \"v\", typo like \"edm-2\"), or passing a raw SamplingParams object into get_sampler_config with a bogus discretization value.","commonSituations":"Renaming fields when copying examples from another diffusers/ldm codebase; typos like \"ddm\" vs \"ddpm\"; constructing SamplingParams programmatically with a variable that is None or misnamed.","solutions":["Set discretization to one of the supported strings in SamplingParams (see sgm/inference/api.py, e.g. \"ddpm\", \"edm\").","Check the if/elif chain in get_discretization_config for the exact accepted values and match one exactly.","If you need a new discretization, add an elif branch constructing the corresponding config object instead of inventing a string."],"exampleFix":"// before\nparams = SamplingParams(sampler=\"ddim\", discretization=\"ddim\")\n// after\nparams = SamplingParams(sampler=\"ddim\", discretization=\"ddpm\")  # accepted value","handlingStrategy":"validation","validationCode":"VALID_DISCRETIZATIONS = {\"ddpm\", \"edm\"}  # per sgm/inference/api.py\nassert params.discretization in VALID_DISCRETIZATIONS, \\\n    f\"{params.discretization!r} not in {VALID_DISCRETIZATIONS}\"","typeGuard":"Discretization = Literal[\"ddpm\", \"edm\"]\ndef is_valid_discretization(x: str) -> bool:\n    return x in get_args(Discretization)","tryCatchPattern":"try:\n    out = text_to_image(params=params)\nexcept ValueError as e:\n    if \"unknown discretization\" in str(e):\n        params.discretization = \"edm\"  # safe default\n        out = text_to_image(params=params)","preventionTips":["Define SamplingParams with Literal/enum-typed discretization fields.","Copy accepted values from the if/elif chain in get_discretization_config."],"tags":["configuration","sampler","enum-validation"],"backgroundTag":"invalid-config-value","analyzedSha":"e8cd657656fa5d61688191730d0e03242bf4ed44","analyzedAt":"2026-08-29T11:23:43.234Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}