Retro Diffusion Pixel Art
What this MCP does
Generates pixel-art sprites, animations, and tilesets.
Tools
Input schema
{'type': 'object', 'required': ['api_key'], 'properties': {'api_key': {'type': 'string', 'description': 'RetroDiffusion API key (rdpk-...), created free at https://retrodiffusion.ai/app/devtools.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['prompt', 'prompt_style', 'width', 'height'], 'properties': {'seed': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Seed for reproducible results; reuse the same seed to iterate on one composition.'}, 'width': {'type': 'integer', 'description': "Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. Genre-native sizes per item: Minecraft 16; items/icons/props 32-64; character sprites 16-48 retro or 96-128 showcase; tiles 16-32; portraits 96-128; full scenes 256 (RD Pro's max; 16:9 scenes = 256x144 â\x80\x94 pixel art integer-upscales losslessly)."}, 'height': {'type': 'integer', 'description': 'Output height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage.'}, 'prompt': {'type': 'string', 'description': "Describe the SUBJECT only, richly and concretely ('a squat round flask of glowing crimson liquid, cork stopper, bright highlight on the upper-left rim' beats 'a potion'). Never write 'pixel art' â\x80\x94 the selected style handles all rendering. For standalone assets, state a flat background color that contrasts the subject (default 'on a plain white background') and pair with remove_bg=true; never write 'transparent background' (that is remove_bg's job), and never leave the background unstated (it drifts to drab dark gray). Scenes instead describe their real environment. For rd_advanced_animation__rotate the prompt is only an optional hint describing the uploaded subject â\x80\x94 a few words or an empty string."}, 'tile_x': {'type': 'boolean', 'default': False, 'description': 'Make the result tile seamlessly on the horizontal axis.'}, 'tile_y': {'type': 'boolean', 'default': False, 'description': 'Make the result tile seamlessly on the vertical axis.'}, 'strength': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'How strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original.'}, 'remove_bg': {'type': 'boolean', 'default': False, 'description': "Remove the background for transparent output. Use true for standalone assets and pair it with a stated contrasting background in the prompt ('on a plain white background') â\x80\x94 removal works best on flat contrasting backdrops. Animations inherit the start frame's transparency automatically."}, 'num_images': {'type': 'integer', 'default': 1, 'description': 'How many images to generate in one batch; a batch produces varied takes of one prompt (the right way to get N distinct items as individually usable images â\x80\x94 never pack N items into a single sheet/grid image unless a sheet IS the deliverable). Style-specific maximums apply.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'input_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL. Send the NATIVE-resolution image: an upscaled display copy (e.g. a 96px sprite exported at 4x = 384px) exceeds style ranges and gets rejected â\x80\x94 downscale to the true pixel grid first. For advanced animations the frame's dimensions must equal width/height, and sprites whose opaque pixels touch the canvas edge animate badly (pad onto a larger transparent canvas first, e.g. 48x48 content onto 64x64)."}, 'extra_prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Secondary prompt for styles that use one (e.g. the transition texture in advanced tilesets).'}, 'prompt_style': {'type': 'string', 'description': "Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style)."}, 'input_palette': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Base64 image of a color palette; output colors are constrained to it.'}, 'upload_outputs': {'type': 'boolean', 'default': True, 'description': 'Host outputs and return URLs in output_urls (recommended for MCP clients) instead of only base64 payloads.'}, 'frames_duration': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16. Pick deliberately: 8 is the sweet spot for loops (walking, idle), 6 for a snappy single action, 10-12 for flowing ambient motion. Ignored by rd_advanced_animation__rotate (always 8 views).'}, 'timeout_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'Read-timeout override in seconds for this call; increase for animations or large batches.'}, 'reference_images': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Extra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles.'}, 'extra_input_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced).'}, 'return_pre_palette': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Also return the render from before palette constraints were applied.'}, 'return_spritesheet': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'For animation styles: return a PNG sprite sheet instead of a GIF (for rd_advanced_animation__rotate, the 3x3 direction sheet whose views face the center).'}, 'return_non_bg_removed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Also return the render from before background removal was applied.'}, 'upscale_output_factor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Integer upscale factor for the output image; 1 returns the native pixel size.'}, 'bypass_prompt_expansion': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Skip the automatic LLM prompt enrichment and use the prompt verbatim.'}, 'include_downloadable_data': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Include extra structured assets when available (e.g. tileset atlas JSON, animation frame data).'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Display name for the custom style.'}, 'min_width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Force a fixed width (96-256); must be provided together with min_height.'}, 'min_height': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Force a fixed height (96-256); must be provided together with min_width.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'style_icon': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Icon name for the style (e.g. 'sparkles')."}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Short description of the custom style.'}, 'force_palette': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Always apply palette constraining for this style.'}, 'force_bg_removal': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Always remove backgrounds for this style.'}, 'llm_instructions': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Instructions for the prompt-expansion LLM when this style is used.'}, 'reference_images': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Alias for style_reference_images on this tool; prefer style_reference_images and never provide both.'}, 'reference_caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Alias for style_reference_caption on this tool; prefer style_reference_caption and never provide both.'}, 'apply_prompt_fixer': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Let the API tidy prompts automatically for this style (default true).'}, 'user_prompt_template': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Prompt template for the style; must contain the {prompt} token.'}, 'style_reference_images': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Style-level reference image(s), base64, baked into the custom style (max 1 via the public API).'}, 'style_reference_caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Caption describing the style reference image(s).'}, 'expanded_llm_instructions': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Extended instructions for the prompt-expansion LLM.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['asset_id', 'version', 'animation'], 'properties': {'version': {'type': 'integer', 'description': 'The version the animation belongs to.'}, 'asset_id': {'type': 'string', 'description': 'asset_id returned by start_lowpoly_generate or get_lowpoly_job.'}, 'animation': {'type': 'string', 'description': "The animation's name, as listed on the version."}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['style_id'], 'properties': {'style_id': {'type': 'string', 'description': 'Style id â\x80\x94 the internal id or the prompt_style/public id (e.g. user__mystyle_ab12).'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['tool_id', 'input_image'], 'properties': {'width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'k_centroid_downscale: target width in pixels (required for that tool).'}, 'height': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'k_centroid_downscale: target height in pixels (required for that tool).'}, 'prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'What to generate or change (required by image_edit and inpainting; optional for outpainting).'}, 'tile_x': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'seam_tiling: repair the horizontal seam (tool default applies when omitted).'}, 'tile_y': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'seam_tiling: repair the vertical seam (tool default applies when omitted).'}, 'tool_id': {'type': 'string', 'description': 'Edit tool id. One of: image_edit, inpainting, outpainting, seam_tiling, background_remover, color_style_transfer, color_reducer, palette_converter, pixel_correction, k_centroid_downscale, rotate. Use list_edit_tools for authoritative fields, costs, and limits.'}, 'expand_top': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Outpainting: pixels to add on the top edge.'}, 'mask_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Base64 mask for inpainting: white pixels are regenerated, black pixels are kept.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'seam_width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'seam_tiling: width in pixels of the seam band to repair.'}, 'color_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'color_reducer: target number of colors.'}, 'dither_mode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'color_reducer/palette_converter: dithering mode.'}, 'expand_left': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Outpainting: pixels to add on the left edge.'}, 'input_image': {'type': 'string', 'description': 'Base64 PNG of the image to edit (raw base64 or a data URL). Required by every edit tool.'}, 'expand_right': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Outpainting: pixels to add on the right edge.'}, 'soft_inpaint': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Inpainting/outpainting: blend edits softly with the surrounding pixels.'}, 'expand_bottom': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Outpainting: pixels to add on the bottom edge.'}, 'input_palette': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Base64 image of a color palette; output colors are constrained to it.'}, 'dither_strength': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'color_reducer/palette_converter: dithering strength, 0-10 (0 disables, default 5).'}, 'timeout_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'Read-timeout override in seconds for this call; increase for animations or large batches.'}, 'rotation_degrees': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'rotate: rotation angle in degrees (clean-edge pixel rotation).'}, 'extra_input_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced).'}, 'force_solid_pixels': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'background_remover: force fully solid or fully transparent pixels (tool default applies when omitted).'}, 'repair_window_size': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'seam_tiling: size of the repair window.'}, 'transparency_threshold': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'background_remover: alpha threshold for treating pixels as transparent.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['prompt', 'prompt_style', 'width', 'height'], 'properties': {'width': {'type': 'integer', 'description': "Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. Genre-native sizes per item: Minecraft 16; items/icons/props 32-64; character sprites 16-48 retro or 96-128 showcase; tiles 16-32; portraits 96-128; full scenes 256 (RD Pro's max; 16:9 scenes = 256x144 â\x80\x94 pixel art integer-upscales losslessly)."}, 'height': {'type': 'integer', 'description': 'Output height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage.'}, 'prompt': {'type': 'string', 'description': "Describe the SUBJECT only, richly and concretely ('a squat round flask of glowing crimson liquid, cork stopper, bright highlight on the upper-left rim' beats 'a potion'). Never write 'pixel art' â\x80\x94 the selected style handles all rendering. For standalone assets, state a flat background color that contrasts the subject (default 'on a plain white background') and pair with remove_bg=true; never write 'transparent background' (that is remove_bg's job), and never leave the background unstated (it drifts to drab dark gray). Scenes instead describe their real environment. For rd_advanced_animation__rotate the prompt is only an optional hint describing the uploaded subject â\x80\x94 a few words or an empty string."}, 'strength': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'How strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original.'}, 'num_images': {'type': 'integer', 'default': 1, 'description': 'How many images to generate in one batch; a batch produces varied takes of one prompt (the right way to get N distinct items as individually usable images â\x80\x94 never pack N items into a single sheet/grid image unless a sheet IS the deliverable). Style-specific maximums apply.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'input_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL. Send the NATIVE-resolution image: an upscaled display copy (e.g. a 96px sprite exported at 4x = 384px) exceeds style ranges and gets rejected â\x80\x94 downscale to the true pixel grid first. For advanced animations the frame's dimensions must equal width/height, and sprites whose opaque pixels touch the canvas edge animate badly (pad onto a larger transparent canvas first, e.g. 48x48 content onto 64x64)."}, 'extra_prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Secondary prompt for styles that use one (e.g. the transition texture in advanced tilesets).'}, 'prompt_style': {'type': 'string', 'description': "Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style)."}, 'input_palette': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Base64 image of a color palette; output colors are constrained to it.'}, 'frames_duration': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16. Pick deliberately: 8 is the sweet spot for loops (walking, idle), 6 for a snappy single action, 10-12 for flowing ambient motion. Ignored by rd_advanced_animation__rotate (always 8 views).'}, 'timeout_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'Read-timeout override in seconds for this call; increase for animations or large batches.'}, 'reference_images': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Extra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles.'}, 'extra_input_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced).'}, 'return_pre_palette': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Also return the render from before palette constraints were applied.'}, 'return_spritesheet': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'For animation styles: return a PNG sprite sheet instead of a GIF (for rd_advanced_animation__rotate, the 3x3 direction sheet whose views face the center).'}, 'return_non_bg_removed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Also return the render from before background removal was applied.'}, 'upscale_output_factor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Integer upscale factor for the output image; 1 returns the native pixel size.'}, 'bypass_prompt_expansion': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Skip the automatic LLM prompt enrichment and use the prompt verbatim.'}, 'include_downloadable_data': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Include extra structured assets when available (e.g. tileset atlas JSON, animation frame data).'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'size': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Cube size in texels: "16", "32", "64", "128", "256", or "auto" (default). Auto reads the prompt; reference-image-only requests default to 64. Bigger sizes cost more (see get_lowpoly_pricing).'}, 'style': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Low-Poly style id: rd_lowpoly__detailed (default, free-form shapes), rd_lowpoly__blocky (boxes only, tilted where needed, Minecraft-like), their Lite versions rd_lowpoly__detailed_lite / rd_lowpoly__blocky_lite (a lighter model: simpler results for much less, and Lite prices for everything done to the model later), or another style listed by get_lowpoly_pricing (each style lists its prices).'}, 'prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'What to build or change, up to 250 characters.'}, 'asset_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Required for revise, animate, split and rerig.'}, 'operation': {'type': 'string', 'default': 'generate', 'description': 'generate, revise, animate, split or rerig.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['asset_id', 'target'], 'properties': {'target': {'type': 'string', 'description': 'godot, unity, unreal, web, blender (all .glb), blockbench (.bbmodel), obj (zip), minecraft (resource pack zip), atlas (png), turntable (png), axis_views (zip of 6 pixel-exact PNGs, one per axis direction), gif, sheet or mp4 (1024px video) (need an animation). The .glb and .bbmodel files include every animation.'}, 'version': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Version number to work on (default: the newest). Revisions create versions; animations do not.'}, 'asset_id': {'type': 'string', 'description': 'asset_id returned by start_lowpoly_generate or get_lowpoly_job.'}, 'animation': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Animation name for the gif, sheet and mp4 targets. Omit it for gif or sheet to get every animation in one zip.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'width': {'anyOf': [{'type': 'integer', 'exclusiveMinimum': 0}, {'type': 'null'}], 'default': None, 'description': "Optional neural target dimension in pixels. Accepted only with engine='neural'."}, 'engine': {'enum': ['standard', 'neural'], 'type': 'string', 'default': 'standard', 'description': 'Fixer engine. Standard uses the native Rust detector; neural uses the neural reconstruction engine.'}, 'height': {'anyOf': [{'type': 'integer', 'exclusiveMinimum': 0}, {'type': 'null'}], 'default': None, 'description': "Optional neural target dimension in pixels. Accepted only with engine='neural'."}, 'image_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Public HTTPS PNG or JPEG URL to reconstruct. Provide this or input_image, not both. URL downloads may contain up to 20 MB and bypass the API request-body limit.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'input_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Base64 PNG or JPEG to reconstruct at its native pixel grid. Raw base64 or a data URL; provide this or image_url, not both. Decoded input may contain up to 16 megapixels, and complete base64 request JSON must stay within 900,000 bytes.'}, 'timeout_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'Read-timeout override in seconds for this call; increase for animations or large batches.'}}}
Output schema
{'type': 'object', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['task_id'], 'properties': {'task_id': {'type': 'string', 'description': 'Async job id returned by start_inference_job.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['request_id'], 'properties': {'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'request_id': {'type': 'string', 'description': 'Inference request id returned by create_inference.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['task_id'], 'properties': {'task_id': {'type': 'string', 'description': 'Async job id returned by start_inference_job.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['asset_id'], 'properties': {'asset_id': {'type': 'string', 'description': 'asset_id returned by start_lowpoly_generate or get_lowpoly_job.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['prompt_style'], 'properties': {'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'prompt_style': {'type': 'string', 'description': "Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style)."}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'tab': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter styles by tab: tab:image, tab:animation, tab:advanced-animation, or tab:tileset.'}, 'model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter styles by model: rd_fast, rd_plus, rd_pro, or rd_mini.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of recent jobs to return (1-100, default 20).'}, 'status': {'anyOf': [{'enum': ['pending', 'running', 'succeeded', 'failed'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional: only return jobs with this status.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'How many models to return (newest first).'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['asset_id', 'tool'], 'properties': {'tool': {'type': 'string', 'description': "color_reducer (limit the colors), palette_converter (convert to a palette image) or color_style_transfer (take a reference image's color style)."}, 'version': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Version number to work on (default: the newest). Revisions create versions; animations do not.'}, 'asset_id': {'type': 'string', 'description': 'asset_id returned by start_lowpoly_generate or get_lowpoly_job.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'color_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'color_reducer: how many colors, 2-256 (omit for automatic).'}, 'dither_mode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'none | bayer_2x2 | bayer_4x4 | bayer_8x8 (color_reducer, palette_converter).'}, 'palette_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Base64 image of a color palette; output colors are constrained to it.'}, 'dither_strength': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'Dithering strength, 0-10 (default 5).'}, 'reference_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'color_style_transfer: base64 reference image.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['tool_id', 'input_image'], 'properties': {'seed': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Seed for reproducible results; reuse the same seed to iterate on one composition.'}, 'width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'k_centroid_downscale: target width in pixels (required for that tool).'}, 'height': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'k_centroid_downscale: target height in pixels (required for that tool).'}, 'prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'What to generate or change (required by image_edit and inpainting; optional for outpainting).'}, 'tile_x': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'seam_tiling: repair the horizontal seam (tool default applies when omitted).'}, 'tile_y': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'seam_tiling: repair the vertical seam (tool default applies when omitted).'}, 'tool_id': {'type': 'string', 'description': 'Edit tool id. One of: image_edit, inpainting, outpainting, seam_tiling, background_remover, color_style_transfer, color_reducer, palette_converter, pixel_correction, k_centroid_downscale, rotate. Use list_edit_tools for authoritative fields, costs, and limits.'}, 'expand_top': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Outpainting: pixels to add on the top edge.'}, 'mask_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Base64 mask for inpainting: white pixels are regenerated, black pixels are kept.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'seam_width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'seam_tiling: width in pixels of the seam band to repair.'}, 'color_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'color_reducer: target number of colors.'}, 'dither_mode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'color_reducer/palette_converter: dithering mode.'}, 'expand_left': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Outpainting: pixels to add on the left edge.'}, 'input_image': {'type': 'string', 'description': 'Base64 PNG of the image to edit (raw base64 or a data URL). Required by every edit tool.'}, 'expand_right': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Outpainting: pixels to add on the right edge.'}, 'soft_inpaint': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Inpainting/outpainting: blend edits softly with the surrounding pixels.'}, 'expand_bottom': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Outpainting: pixels to add on the bottom edge.'}, 'input_palette': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Base64 image of a color palette; output colors are constrained to it.'}, 'dither_strength': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'color_reducer/palette_converter: dithering strength, 0-10 (0 disables, default 5).'}, 'timeout_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'Read-timeout override in seconds for this call; increase for animations or large batches.'}, 'rotation_degrees': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'rotate: rotation angle in degrees (clean-edge pixel rotation).'}, 'extra_input_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced).'}, 'force_solid_pixels': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'background_remover: force fully solid or fully transparent pixels (tool default applies when omitted).'}, 'repair_window_size': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'seam_tiling: size of the repair window.'}, 'transparency_threshold': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'background_remover: alpha threshold for treating pixels as transparent.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['prompt', 'prompt_style', 'width', 'height'], 'properties': {'seed': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Seed for reproducible results; reuse the same seed to iterate on one composition.'}, 'width': {'type': 'integer', 'description': "Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. Genre-native sizes per item: Minecraft 16; items/icons/props 32-64; character sprites 16-48 retro or 96-128 showcase; tiles 16-32; portraits 96-128; full scenes 256 (RD Pro's max; 16:9 scenes = 256x144 â\x80\x94 pixel art integer-upscales losslessly)."}, 'height': {'type': 'integer', 'description': 'Output height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage.'}, 'prompt': {'type': 'string', 'description': "Describe the SUBJECT only, richly and concretely ('a squat round flask of glowing crimson liquid, cork stopper, bright highlight on the upper-left rim' beats 'a potion'). Never write 'pixel art' â\x80\x94 the selected style handles all rendering. For standalone assets, state a flat background color that contrasts the subject (default 'on a plain white background') and pair with remove_bg=true; never write 'transparent background' (that is remove_bg's job), and never leave the background unstated (it drifts to drab dark gray). Scenes instead describe their real environment. For rd_advanced_animation__rotate the prompt is only an optional hint describing the uploaded subject â\x80\x94 a few words or an empty string."}, 'tile_x': {'type': 'boolean', 'default': False, 'description': 'Make the result tile seamlessly on the horizontal axis.'}, 'tile_y': {'type': 'boolean', 'default': False, 'description': 'Make the result tile seamlessly on the vertical axis.'}, 'strength': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'How strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original.'}, 'remove_bg': {'type': 'boolean', 'default': False, 'description': "Remove the background for transparent output. Use true for standalone assets and pair it with a stated contrasting background in the prompt ('on a plain white background') â\x80\x94 removal works best on flat contrasting backdrops. Animations inherit the start frame's transparency automatically."}, 'num_images': {'type': 'integer', 'default': 1, 'description': 'How many images to generate in one batch; a batch produces varied takes of one prompt (the right way to get N distinct items as individually usable images â\x80\x94 never pack N items into a single sheet/grid image unless a sheet IS the deliverable). Style-specific maximums apply.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'input_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL. Send the NATIVE-resolution image: an upscaled display copy (e.g. a 96px sprite exported at 4x = 384px) exceeds style ranges and gets rejected â\x80\x94 downscale to the true pixel grid first. For advanced animations the frame's dimensions must equal width/height, and sprites whose opaque pixels touch the canvas edge animate badly (pad onto a larger transparent canvas first, e.g. 48x48 content onto 64x64)."}, 'extra_prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Secondary prompt for styles that use one (e.g. the transition texture in advanced tilesets).'}, 'prompt_style': {'type': 'string', 'description': "Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style)."}, 'input_palette': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Base64 image of a color palette; output colors are constrained to it.'}, 'upload_outputs': {'type': 'boolean', 'default': True, 'description': 'Host outputs and return URLs in output_urls (recommended for MCP clients) instead of only base64 payloads.'}, 'frames_duration': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16. Pick deliberately: 8 is the sweet spot for loops (walking, idle), 6 for a snappy single action, 10-12 for flowing ambient motion. Ignored by rd_advanced_animation__rotate (always 8 views).'}, 'timeout_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'Read-timeout override in seconds for this call; increase for animations or large batches.'}, 'reference_images': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Extra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles.'}, 'extra_input_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced).'}, 'return_pre_palette': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Also return the render from before palette constraints were applied.'}, 'return_spritesheet': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'For animation styles: return a PNG sprite sheet instead of a GIF (for rd_advanced_animation__rotate, the 3x3 direction sheet whose views face the center).'}, 'return_non_bg_removed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Also return the render from before background removal was applied.'}, 'upscale_output_factor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Integer upscale factor for the output image; 1 returns the native pixel size.'}, 'bypass_prompt_expansion': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Skip the automatic LLM prompt enrichment and use the prompt verbatim.'}, 'include_downloadable_data': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Include extra structured assets when available (e.g. tileset atlas JSON, animation frame data).'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['asset_id', 'prompt'], 'properties': {'mode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Omit (auto) to let the service pick: quality, or fast for simple requests. "quality" or "fast" to choose. Same price.'}, 'prompt': {'type': 'string', 'description': "The motion, e.g. 'a bouncy walk cycle' or 'swing the sword overhead'. With animation: what should change about it."}, 'version': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Version number to work on (default: the newest). Revisions create versions; animations do not.'}, 'asset_id': {'type': 'string', 'description': 'asset_id returned by start_lowpoly_generate or get_lowpoly_job.'}, 'animation': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Name of an existing animation on the version to change instead of adding a new one (it keeps its name). Omit to add a new animation.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'idempotency_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional retry key: repeating a start call with the same key returns the same job instead of charging again.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'mode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Omit (auto) to let the service pick: quality, or fast for simple requests. "quality" or "fast" to choose. Same price.'}, 'size': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Cube size in texels: "16", "32", "64", "128", "256", or "auto" (default). Auto reads the prompt; reference-image-only requests default to 64. Bigger sizes cost more (see get_lowpoly_pricing).'}, 'style': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Low-Poly style id: rd_lowpoly__detailed (default, free-form shapes), rd_lowpoly__blocky (boxes only, tilted where needed, Minecraft-like), their Lite versions rd_lowpoly__detailed_lite / rd_lowpoly__blocky_lite (a lighter model: simpler results for much less, and Lite prices for everything done to the model later), or another style listed by get_lowpoly_pricing (each style lists its prices).'}, 'prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'What to build or change, up to 250 characters.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'input_palette': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Base64 image of a color palette; output colors are constrained to it.'}, 'idempotency_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional retry key: repeating a start call with the same key returns the same job instead of charging again.'}, 'reference_images': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Up to 4 base64 reference images (PNG/JPEG/WEBP) of the object, e.g. front and side views.'}, 'reference_models': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'asset_ids of your own finished Low-Poly models to build in: each is placed exactly (same shapes and textures) where the prompt puts it, or adapted. Images and models together: at most 4.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['asset_id'], 'properties': {'prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "What to change about the rig, e.g. 'give the tail three bones' (up to 250 characters). Omit for a fresh rig."}, 'version': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Version number to work on (default: the newest). Revisions create versions; animations do not.'}, 'asset_id': {'type': 'string', 'description': 'asset_id returned by start_lowpoly_generate or get_lowpoly_job.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'idempotency_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional retry key: repeating a start call with the same key returns the same job instead of charging again.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['asset_id', 'prompt'], 'properties': {'mode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Omit (auto) to let the service pick: quality, or fast for simple requests. "quality" or "fast" to choose. Same price.'}, 'prompt': {'type': 'string', 'description': 'What should change, up to 250 characters.'}, 'version': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Version number to work on (default: the newest). Revisions create versions; animations do not.'}, 'asset_id': {'type': 'string', 'description': 'asset_id returned by start_lowpoly_generate or get_lowpoly_job.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'idempotency_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional retry key: repeating a start call with the same key returns the same job instead of charging again.'}, 'reference_images': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Up to 4 base64 reference images (PNG/JPEG/WEBP) of the object, e.g. front and side views.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['asset_id'], 'properties': {'prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "How to split, e.g. 'only the books' or 'each drawer too' (up to 250 characters). Omit to split off every separate object that makes sense."}, 'version': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Version number to work on (default: the newest). Revisions create versions; animations do not.'}, 'asset_id': {'type': 'string', 'description': 'asset_id returned by start_lowpoly_generate or get_lowpoly_job.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'idempotency_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional retry key: repeating a start call with the same key returns the same job instead of charging again.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['style_id'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'New display name for the custom style.'}, 'style_id': {'type': 'string', 'description': 'Style id â\x80\x94 the internal id or the prompt_style/public id (e.g. user__mystyle_ab12).'}, 'min_width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Force a fixed width (96-256); must be provided together with min_height.'}, 'min_height': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Force a fixed height (96-256); must be provided together with min_width.'}, 'rd_api_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.'}, 'style_icon': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Icon name for the style (e.g. 'sparkles')."}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Short description of the custom style.'}, 'force_palette': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Always apply palette constraining for this style.'}, 'force_bg_removal': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Always remove backgrounds for this style.'}, 'llm_instructions': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Instructions for the prompt-expansion LLM when this style is used.'}, 'reference_images': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Alias for style_reference_images on this tool; prefer style_reference_images and never provide both.'}, 'reference_caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Alias for style_reference_caption on this tool; prefer style_reference_caption and never provide both.'}, 'apply_prompt_fixer': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Let the API tidy prompts automatically for this style (default true).'}, 'user_prompt_template': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Prompt template for the style; must contain the {prompt} token.'}, 'style_reference_images': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Style-level reference image(s), base64, baked into the custom style (max 1 via the public API).'}, 'reset_forced_dimensions': {'type': 'boolean', 'default': False, 'description': 'Clear previously forced dimensions; do not combine with min_width/min_height.'}, 'style_reference_caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Caption describing the style reference image(s).'}, 'expanded_llm_instructions': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Extended instructions for the prompt-expansion LLM.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Recent tool changes
Similar MCP servers
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…
Ludo AI Game Assets
Generates game assets including sprites, 3D models, animations, sound effects, music, and voice content.
3DAssets.dev
Searches and delivers free CC0 GLB models and game asset packs, with licensing details, CDN links, scene layouts, and loader usag…
AXIS Avatar Foundry
Generates, repairs, rigs, validates, retargets, compares, and exports production-ready 3D avatars and meshes for game platforms.
Polyfork low-poly 3D assets
Searches, previews and composes low-poly 3D assets and kits for three.js and game engines, including terrain, variants, scene pre…
Spritesheet Forge
Converts, trims, splits, assembles, and animates PNG, GIF, and spritesheet assets for game development.
Portamora
Allows users to discover published atmospheric 3D worlds, inspect world metadata and guides, and obtain starter materials for bui…