---
title: "Converts an image to pixel art at about its own size, synchronously. Free (Roles: user)"
method: POST
path: "/images/pixel-art-conversion"
tags: ["Misc"]
---

# Converts an image to pixel art at about its own size, synchronously. Free (Roles: user)

`POST /images/pixel-art-conversion`

## Request

- Base URL: `https://api.ludo.ai/api`
- URL: `https://api.ludo.ai/api/images/pixel-art-conversion`
- Auth: API key in header `Authorization`

## Request body

- PixelArtConversionPayload
  - `image` GameImage, required
    - `tags` string[]
    - `id` string
    - `image_id` string
    - `url` string
    - `type` string
    - `final_score` number, float
    - `nsfw_prob` number, float
    - `similarity` number, float
    - `width` integer
    - `height` integer
    - `game_id` string
    - `hosted_filename` string
    - `icon` boolean
    - `targetSize` integer
    - `seed` integer
    - `embedded` boolean
    - `analysed` boolean
    - `image` string
    - `image_type` string
    - `prompt` string
    - `motion_prompt` string
    - `request_id` string
    - `hints` string[]
    - `selected_genres` string[]
    - `selected_colors` string[]
    - `selected_style` string
    - `selected_perspective` string
    - `is_safe` boolean
    - `platform` string
    - `loading` boolean
    - `original_hints` string[]
    - `genres` string[]
    - `edit_mask` string
    - `edit_mode` string
    - `camera_rotation` integer
    - `camera_elevation` integer
    - `edit_mask_pil_image` PILImage
      - `format` string
      - `format_description` string
    - `pil_image` PILImage
      - `format` string
      - `format_description` string
    - `nsfw` number, float
    - `pose` SpritePose
      - `animation_prompt` string: Animation description for the sprite pose
      - `margin_ratio` number, float: Margin ratio for the sprite animation
      - `margin_ratio_mode` string
      - `name` string: Name of the sprite pose
      - `prompt` string: Prompt description for the sprite pose
    - `render_3d` Sprite3DRender
      - `style_id` string
      - `style_version` integer
      - `style_params` object: Every setting of the style as rendered, by name.
      - `params` object: The renderer's own parameters (e.g. renderer, version).
      - `perspective` string
      - `direction` string
      - `animation_name` string
      - `fps` number, float
      - `keep_horizontal_travel` boolean
      - `keep_vertical_travel` boolean
      - `pixel_block` integer
      - `generated_model` object: The model that was rendered (its id, file urls and, from render, history_id - the three_d_asset history entry it came from).
    - `pixel_grid` integer[], nullable: Pixel-art grid dimensions [width, height] the ML detected in (or gave) the image, as on GeneratedVideo. The ML reports it on every image generation; absent when no grid was found and on images saved before it was recorded.
    - `pixel_size` number, float: Pixel art conversion only: the size of one pixel-art pixel, in the source image's pixels (the caller's, or the detected one).
    - `model` string: Id of the model the ML reports for the image (klimt, frida, ...). Absent on images saved before it was kept.
  - `pixel_size` number, float: Size of one pixel-art pixel, in the input's pixels. Absent: the image's own pixel size, which must be detectable.
  - `palette_size` integer: At most this many colours. Absent: no colour reduction.

## Response `200`

Success

- GameImage
  - `tags` string[]
  - `id` string
  - `image_id` string
  - `url` string
  - `type` string
  - `final_score` number, float
  - `nsfw_prob` number, float
  - `similarity` number, float
  - `width` integer
  - `height` integer
  - `game_id` string
  - `hosted_filename` string
  - `icon` boolean
  - `targetSize` integer
  - `seed` integer
  - `embedded` boolean
  - `analysed` boolean
  - `image` string
  - `image_type` string
  - `prompt` string
  - `motion_prompt` string
  - `request_id` string
  - `hints` string[]
  - `selected_genres` string[]
  - `selected_colors` string[]
  - `selected_style` string
  - `selected_perspective` string
  - `is_safe` boolean
  - `platform` string
  - `loading` boolean
  - `original_hints` string[]
  - `genres` string[]
  - `edit_mask` string
  - `edit_mode` string
  - `camera_rotation` integer
  - `camera_elevation` integer
  - `edit_mask_pil_image` PILImage
    - `format` string
    - `format_description` string
  - `pil_image` PILImage
    - `format` string
    - `format_description` string
  - `nsfw` number, float
  - `pose` SpritePose
    - `animation_prompt` string: Animation description for the sprite pose
    - `margin_ratio` number, float: Margin ratio for the sprite animation
    - `margin_ratio_mode` string
    - `name` string: Name of the sprite pose
    - `prompt` string: Prompt description for the sprite pose
  - `render_3d` Sprite3DRender
    - `style_id` string
    - `style_version` integer
    - `style_params` object: Every setting of the style as rendered, by name.
    - `params` object: The renderer's own parameters (e.g. renderer, version).
    - `perspective` string
    - `direction` string
    - `animation_name` string
    - `fps` number, float
    - `keep_horizontal_travel` boolean
    - `keep_vertical_travel` boolean
    - `pixel_block` integer
    - `generated_model` object: The model that was rendered (its id, file urls and, from render, history_id - the three_d_asset history entry it came from).
  - `pixel_grid` integer[], nullable: Pixel-art grid dimensions [width, height] the ML detected in (or gave) the image, as on GeneratedVideo. The ML reports it on every image generation; absent when no grid was found and on images saved before it was recorded.
  - `pixel_size` number, float: Pixel art conversion only: the size of one pixel-art pixel, in the source image's pixels (the caller's, or the detected one).
  - `model` string: Id of the model the ML reports for the image (klimt, frida, ...). Absent on images saved before it was kept.

## Other responses

- `400`: Error

## Changes

- **2026-10-27** `1c57b80a318f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ludo/apis/ludo-ai-api/changes/images/pixel-art-conversion/post.md)

---

[API](https://skmtc.dev/ludo/apis/ludo-ai-api.md) - [All operations](https://skmtc.dev/ludo/apis/ludo-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ludo/apis/ludo-ai-api/revisions/4efeb12a23c9?raw)
