BerriAI/litellm · error · ValueError
Error transforming inpainting params
Error message
Error transforming inpainting params: {e}. Got params: {inpainting_params}, Expected params: {AmazonNovaCanvasInpaintingParams.__annotations__} What it means
For INPAINTING via image generation (litellm.image with taskType='INPAINTING'), inpaintingParams gets 'text' injected and is constructed as AmazonNovaCanvasInpaintingParams(**params); unknown keys raise TypeError, wrapped in this ValueError with the raw dict and annotations. Annotated keys: text, maskImage, inputImage, negativeText.
Solutions
- Use annotated keys only: text, maskImage (base64), inputImage (base64), negativeText
- For mask-prompt driven inpainting use litellm.image_edit with maskPrompt=, which builds this structure for you
- Base64-encode mask and input images; never pass file objects or raw bytes here
- Check the 'Got params' dict in the message for the offending key
Example fix
# before
resp = litellm.image(
model="bedrock/amazon.nova-canvas-v1:0",
prompt="fill with foliage",
taskType="INPAINTING",
inpaintingParams={"mask_prompt": "the bench", "inputImage": img_b64},
)
# after
resp = litellm.image(
model="bedrock/amazon.nova-canvas-v1:0",
prompt="fill with foliage",
taskType="INPAINTING",
inpaintingParams={"maskImage": mask_b64, "inputImage": img_b64},
) Defensive patterns
Strategy: validation
Validate before calling
from litellm.types.llms.bedrock import AmazonNovaCanvasInpaintingParams
def validate_inpainting_generation_params(p: dict) -> None:
allowed = set(AmazonNovaCanvasInpaintingParams.__annotations__)
stray = set(p) - allowed
assert not stray, f"unknown inpaintingParams keys: {stray}; allowed: {sorted(allowed)}"
assert "maskImage" in p, "generation-path INPAINTING needs base64 maskImage"
validate_inpainting_generation_params(inpainting_params) Type guard
def is_valid_inpainting_generation_params(p: dict) -> bool:
"""True when keys match the TypedDict and a base64 maskImage is present."""
from litellm.types.llms.bedrock import AmazonNovaCanvasInpaintingParams
allowed = set(AmazonNovaCanvasInpaintingParams.__annotations__)
return set(p) <= allowed and isinstance(p.get("maskImage"), str) Try / catch
try:
resp = litellm.image(...)
except ValueError as e:
if "Error transforming inpainting params" in str(e):
raise UserInputError("inpaintingParams: use text/maskImage/inputImage/negativeText (base64)") from e
raise Prevention
- Prefer litellm.image_edit(mask=..., maskPrompt=...) so LiteLLM builds valid inpainting bodies
- Encode masks to base64 strings once and reuse
- Never forward raw file objects or multipart tuples into generation-path inpaintingParams
When it happens
Trigger: Passing 'mask_prompt' instead of a valid key, including an unknown key like 'mask' inside inpaintingParams, or a misspelled 'input_image' in a generation-path INPAINTING call — note this generation branch has no maskPrompt key (unlike the image-edit path).
Common situations: Confusing the image-edit API (which accepts mask=/maskPrompt) with the raw generation API (which wants base64 maskImage inside inpaintingParams); translating AWS SDK examples with renamed keys.
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
Related errors
- Error transforming color guided generation params
- Error transforming image generation config
- Error transforming text to image params
- Amazon Nova Canvas INPAINTING requires either maskPrompt or…
- Amazon Nova Canvas requires a text prompt. Pass a non-empty…
AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18).
Data as JSON: /api/errors/488b643399a8d613.
Report an issue: GitHub.
Appendix: source
Thrown at litellm/llms/bedrock/image_generation/amazon_nova_canvas_transformation.py:132
try:
image_generation_config_typed = AmazonNovaCanvasImageGenerationConfig(**image_generation_config)
except Exception as e:
raise ValueError(
f"Error transforming image generation config: {e}. Got params: {image_generation_config}, Expected params: {AmazonNovaCanvasImageGenerationConfig.__annotations__}"
)
return AmazonNovaCanvasColorGuidedRequest(
taskType=task_type,
colorGuidedGenerationParams=color_guided_generation_params_typed,
imageGenerationConfig=image_generation_config_typed,
)
if task_type == "INPAINTING":
inpainting_params: dict[str, Any] = image_generation_config.pop("inpaintingParams", {})
inpainting_params = {"text": text, **inpainting_params}
try:
inpainting_params_typed: Final = AmazonNovaCanvasInpaintingParams(**inpainting_params)
except Exception as e:
raise ValueError(
f"Error transforming inpainting params: {e}. Got params: {inpainting_params}, Expected params: {AmazonNovaCanvasInpaintingParams.__annotations__}"
)
try:
image_generation_config_typed = AmazonNovaCanvasImageGenerationConfig(**image_generation_config)
except Exception as e:
raise ValueError(
f"Error transforming image generation config: {e}. Got params: {image_generation_config}, Expected params: {AmazonNovaCanvasImageGenerationConfig.__annotations__}"
)
return AmazonNovaCanvasInpaintingRequest(
taskType=task_type,
inpaintingParams=inpainting_params_typed,
imageGenerationConfig=image_generation_config_typed,
)
raise NotImplementedError(f"Task type {task_type} is not supported")
@classmethodView on GitHub (pinned to 77b7c6c40c)