image.to.design Docs

image.to.design docs

Last updated

What it is

image.to.design converts images and UI screenshots into editable output — Figma layers, HTML, or both, depending on which option you use.

Option Output
Figma plugin Figma layers
Web tool HTML, or Figma layers via clipboard
API HTML, with Tailwind CSS or inline styles

Figma plugin requires Figma open; the web tool and API don't. Full output details, including both API formats, in Output.

What it does

Drop in an image or screenshot. image.to.design reads its visual structure — layout, typography, color, images, and icons — and returns a structured, editable result: an HTML page, or a Figma design. The level of reconstruction depends on the mode selected, from a flat image up to a fully reconstructed layout (see Output, below).

Where it runs

The plugin runs inside Figma — you'll need Figma open to use it (Figma Community). It also runs in Figma Slides and FigJam, importing onto the canvas the same way as in a design file.

The web app runs in your browser, at divriots.com/image.to.design — no Figma required. Accepts drag-drop, click-to-browse, or clipboard paste.

The ‹div›RIOTS API runs wherever you call it from — any backend or app that can make an HTTP request. Same engine, exposed as the image input format. Metered separately — see Pricing. Full reference: ‹div›RIOTS API documentation.

Supported input formats

The same formats apply to the plugin, the web tool, and the API:

Category Formats
Standard raster JPEG, PNG, GIF, BMP, WebP, TIFF
Modern raster AVIF, JPEG XL, JPEG 2000, HEIC/HEIF
Camera RAW CR2 (Canon), DNG (Adobe/universal), ARW (Sony)
Vector SVG, SVGZ

Output

Figma plugin — quality-tier slider

Every import goes through a slider with five modes, trading fidelity against credits and time. Each mode adds to the one before it:

Mode What you get Credits Time
Image
  • Imported as a single image
  • Supports every file type

Result is a single, flat layer.

Free Instant
Vectors
  • Editable vector layers only
  • Ideal for vector graphics and logos

Text is imported as vectors; no bitmap assets.

2 credits, flat rate ~30 sec
Quick
  • Editable layers
  • Editable text layers
  • Bitmap assets
  • Vector shapes

Optimized for speed.

20 credits withheld at start ~3–5 min
Quality
  • Editable layers
  • Editable text layers
  • Bitmap assets
  • Vector shapes

Optimized for the quality / speed / cost balance.

100 credits withheld at start ~5–10 min
Max
  • Editable layers
  • Editable text layers
  • Bitmap assets
  • Vector shapes
  • Highest fidelity

Time and cost no object — the most expensive tier.

500 credits withheld at start ~10–20 min

Quick, Quality and Max withhold their credits from your balance at the start of conversion; when it finishes you pay what it actually used, and any unused credits are returned to your balance. Large or dense images can sometimes cost more than the withheld amount. The plugin shows a live cost/time estimate before you commit to a tier.

Web tool

The web tool runs the same conversion engine and the same quality slider, minus the free Image tier (uploading an image just to get the same image back serves no purpose on the web). Pick one of four paid tiers, then copy the HTML, download it as a .zip, or copy the result as Figma layers to paste directly into Figma:

Setting What you get Credits Time
Vectors
  • Editable vector layers only
  • Ideal for vector graphics and logos

Text is imported as vectors; no bitmap assets.

2 credits, flat rate ~30 sec
Quick
  • Editable layout
  • Editable text
  • Bitmap assets
  • Vector shapes

Optimized for speed.

20 credits withheld at start ~3–5 min
Quality
  • Editable layout
  • Editable text
  • Bitmap assets
  • Vector shapes

Optimized for the quality / speed / cost balance.

100 credits withheld at start ~5–10 min
Max
  • Editable layout
  • Editable text
  • Bitmap assets
  • Vector shapes
  • Highest fidelity

Time and cost no object — the most expensive tier.

500 credits withheld at start ~10–20 min

API

Two output formats available for the image input type:

Output format What it is
html-tailwindcss Generated HTML using Tailwind CSS, delivered as a ZIP
html-inlinestyles Generated HTML using inline styles, delivered as a ZIP

For the image input type, input.effort picks the agent effort level — low | balanced (default) | max. Higher effort yields higher fidelity, takes longer, and costs more. Each level withholds the credits below at the start; when the job finishes you pay what it actually used, and any unused credits are returned to your balance. Omit the field and the conversion runs at balanced. Full request body: API reference.

Effort What you get Credits Time
low
  • Editable layout
  • Editable text
  • Bitmap assets
  • Vector shapes

Optimized for speed.

20 credits withheld at start ~3–5 min
balanced
  • Editable layout
  • Editable text
  • Bitmap assets
  • Vector shapes

Default. Optimized for the quality / speed / cost balance.

100 credits withheld at start ~5–10 min
max
  • Editable layout
  • Editable text
  • Bitmap assets
  • Vector shapes
  • Highest fidelity

Time and cost no object — the most expensive level.

500 credits withheld at start ~10–20 min

Editability

Mode Text Layout Images Icons Colors
Image Not extracted (flat image) N/A N/A N/A N/A
Vectors Vector shapes, not editable text N/A — vectors only Transformed into vectors Transformed into vectors N/A
Quick / Quality / Max Editable text layers Auto layout, smart-named layers Cut out as bitmap assets Matched against icon libraries, recreated as vectors if nothing matches Native Figma fills
HTML Editable text in real HTML elements Real flexbox/grid, nested Cut out of the source image Matched against icon libraries, recreated as vectors if nothing matches Sampled as CSS values, gradients included

Across every reconstructed mode — plugin Quick/Quality/Max, and the web tool — the engine can't infer hover states, animations, or JS interactions. It works from a flat image; add those behaviors after import.

Limits

Limit Value
Max input height 100,000px
Credit cost
  • Vectors: 2-credit flat rate
  • Quick: 20 credits withheld at start of conversion
  • Quality: 100 credits withheld at start of conversion
  • Max: 500 credits withheld at start of conversion

After conversion, any unused credits are returned to your balance.

Processing time ~30 sec to ~20 min, scaling with tier

No hover states, animations, or JS interactions are inferred — reconstruction works from a static image only.

Privacy & processing

As per our privacy policy:

  • Your images (“Input Data”) are processed solely to generate the requested output.
  • Data minimization: processed in memory or ephemeral storage, retained at most 24 hours for debugging, then permanently deleted.
  • Not used to train public AI models.

Pricing

Option Free tier Paid
Figma plugin 20 free credits to start (a first Quick conversion), no card required, then 10 a month; Image mode always free Credits spent per conversion, by quality tier (see Output)
Web tool 20 free credits to start (a first Quick conversion), no card required, then 10 a month Credit cost varies by image complexity
API — Metered per call; image input is variable-cost (depends on requested effort and complexity). See API pricing for other inputs

One subscription for every ‹div›RIOTS product — image.to.design included — with a shared credit balance you top up as needed.

Explore plans

How to use

Figma plugin

  1. Open your Figma file, launch image.to.design from the plugins menu.
  2. Drop or upload your image or screenshot (any supported format).
  3. Pick a quality tier — Image, Vectors, Quick, Quality, or Max — and review the credit/time estimate shown.
  4. Click Convert / Import.
  5. Edit the result directly on the canvas.

Web tool

  1. Go to divriots.com/image.to.design.
  2. Drop an image — paste from clipboard or click to browse.
  3. Pick a quality tier — Vectors, Quick, Quality, or Max — and click Convert. No prompt to write.
  4. Wait while the engine analyzes visual structure.
  5. Ship: copy the HTML, download it as a .zip, or copy as Figma layers to paste into Figma.

API

The API is asynchronous: a conversion runs as a background job, so you kick it off, poll until it's done, then download the result. The base URL is https://api.divriots.com/v1 and every request authenticates with your key in the Authorization: Bearer … header.

  1. Generate an API key from your ‹div›RIOTS ONE dashboard.
  2. POST to /convert with input: image and a chosen output format — html-tailwindcss or html-inlinestyles.
  3. The call returns 202 Accepted with a Location header pointing at a poll endpoint (GET /convert/jobs/{jobId}).
  4. Poll that endpoint until its JSON status is done (or error), then download the short-lived resultUrl it hands back — a signed URL valid ~15 min; re-poll for a fresh one if it expires. For input: image the result is a ZIP.

Inline requests are capped at 30 MB total (base64 inflates the payload by ~33%). For larger files — up to 10 GB — upload out of band with POST /convert/upload first, then convert by reference.

A minimal end-to-end call with curl:

# 1. Start the conversion — returns 202 Accepted + a Location header
curl -i https://api.divriots.com/v1/convert \
  -H "Authorization: Bearer sk-drc-XXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "input":  { "format": "image", "data": "<base64-image-bytes>" },
    "output": { "format": "html-tailwindcss" }
  }'

# 2. Poll the job URL from that Location header until status is "done"
curl https://api.divriots.com/v1/convert/jobs/{jobId} \
  -H "Authorization: Bearer sk-drc-XXXXXXXXXXXXXXXX"
# → { "status": "done", "resultUrl": "https://storage.googleapis.com/…" }

# 3. Download the result within ~15 min (a ZIP when input.format is image)
curl -L -o result.zip "<resultUrl>"

Full reference: ‹div›RIOTS API documentation.

FAQ

Is image.to.design free?

A new account gets 20 free credits, no credit card required, to use in the Figma plugin or the web tool. That covers a first Quick conversion, which holds 20 credits. After that, the Free plan adds 10 credits a month. In the Figma plugin, Image mode, which places the picture on the canvas as a single image, is always free. For more credits, see ‹div›RIOTS ONE.

How many credits does a conversion cost?

It depends on the tier:

  • Image is free (Figma plugin only)
  • Vectors cost a flat 2 credits per image
  • Quick → 20 credits are withheld from your balance at the start of conversion
  • Quality → 100 credits are withheld from your balance at the start of conversion
  • Max → 500 credits are withheld from your balance at the start of conversion

Quick, Quality and Max are metered by the AI processing each image needs. Each withholds a number of credits from your balance at the start; when it finishes you pay what it actually used. Any unused part of the hold goes back to your balance, and large or dense images can sometimes cost more than the withheld amount. The plugin always shows an estimate before you convert.

I have a paid plan. Why am I asked for credits?

Paid plans include a monthly credit allowance, not unlimited conversions: Pro comes with 1,000 credits per seat per month and Ultra comes with 15,000 credits. A conversion needs your balance to cover a certain amount of credits that is withheld at the start (20 for Quick, 100 for Quality and 500 credits for Max), so the plugin may ask for more credits if your balance is lower.

Also, monthly credits expire at each renewal and don’t roll over, and the balance is shared by every ‹div›RIOTS product, so conversions in other tools spend it too. If you have enough credits in your balance, double check you’re signed in to the plugin with the account your plan is on. Your ‹div›RIOTS ONE dashboard shows your balance, and you can top it up there at any time. All extra credit packs purchased are valid for 12 months.

Why does the same image give a different result each time?

AI models do the conversion, and each run starts from a new random seed. Two runs on the same image can therefore differ in layout structure, layer names and small details. If a result misses, run it again or pick a higher tier. Every completed run is charged, including a re-run.

Do I get my credits back if a conversion fails?

Yes, automatically. If a conversion ends in an error or produces no output, the credits held for it go back to your balance; you don’t need to ask. A conversion that completes is charged, even if you don’t keep the result. For a refund of a subscription or a credit pack, email [email protected] from the address on your account.

Which tier should I pick?
  • Image (free) places the picture as a single flat layer.
  • Vectors (2 credits, ~30 sec) turns a logo, icon or illustration into vector shapes; text becomes outlines, not editable text.
  • Quick (withholds 20 credits, ~3–5 min) rebuilds a screenshot as editable layers, text and images, and is optimized for speed.
  • Quality (withholds 100 credits, ~5–10 min) does the same with better fidelity, balancing quality, speed and cost.
  • Max (withholds 500 credits, ~10–20 min) gives the highest, most accurate fidelity, where cost and time don’t matter.

The web tool offers every tier except “Image”.

How close is the result to my image?

Expect close results in layout, text, colors and images from sharp screenshots. Complex or unusual designs may need some manual fixes after conversion. image.to.design reproduces only what the image shows, at the size it shows it, so hover states, animations, interactions and other screen sizes aren’t inferred. A full-resolution screenshot gives better results than a compressed or scaled-down one.

Can I get Figma layers, HTML, or both?

Both, depending on where you convert. The Figma plugin imports editable Figma layers onto the canvas. The web tool gives HTML to copy or download as a .zip, or copies the result as Figma layers to paste into Figma. The ‹div›RIOTS API returns HTML only, styled with Tailwind CSS (html-tailwindcss) or inline styles (html-inlinestyles), as a ZIP.

What image formats can I convert?

The same formats in the Figma plugin, the web tool and the API: JPEG, PNG, GIF, BMP, WebP and TIFF; AVIF, JPEG XL, JPEG 2000 and HEIC/HEIF; Canon CR2, Adobe DNG and Sony ARW camera RAW; and SVG and SVGZ. An image can be up to 100,000 px tall. The API takes up to 30 MB in the request body, and up to 10 GB uploaded first with POST /convert/upload.

Are my images kept private?

Your images are only processed to generate the output you asked for. Images can be held in temporary memory/storage for at most 24 hours for debugging, then are permanently deleted. Your images are never used to train public AI models.

How is it different from other image-to-design tools?

image.to.design rebuilds the image you give it: there is no prompt to write, and it doesn’t generate a new design loosely based on it. In Quick, Quality and Max, text comes back as editable text, photos as separate image layers, and icons are matched against icon libraries and redrawn as vectors when nothing matches. The same conversion gives Figma layers or HTML. It runs as a Figma plugin (also in FigJam and Figma Slides), as a web tool that doesn’t need Figma, and through an API.

Support

Need a hand, hit a bug, or have an image that doesn’t convert the way you expect? Email us at [email protected]. Attaching the image (or a screenshot of the result) helps us help you faster.

See also