Optional AI normal mapping

AI Normal Map Generator

Turn a photo into a normal map with an AI depth estimate or a PBR extraction pass, then inspect and export the map locally.

Start an AI normal map job

AI jobs use credits from $9 · local tools stay free

01

Choose the result you need

Credits unavailable

Estimate scene-aware depth from an image.

No active AI job

No image or prompt is sent until you confirm the upload disclosure.

What an AI normal map generator does

An AI normal map generator estimates surface shape from an image that has no usable height information. A conventional converter reads brightness and treats every dark pixel as a recess; a model reads scene structure and lighting context first, then returns a depth or material estimate that can be encoded as a tangent-space normal map. The result is still an estimate, but it follows the geometry the model infers rather than the luminance of the photograph.

Normal Map Studio offers two routes to that result. PBR extraction returns a coordinated map set that includes a normal map, while the depth workflow returns a grayscale depth estimate that the local workbench converts into a normal map. Both routes sit behind an explicit upload disclosure because the source leaves the browser for the model provider. The free local normal map generator remains available for sources that do not need a model at all.

  • AI path for photographs and rendered scenes where brightness is not height.
  • Local path for height maps, tileable textures, and sources that must stay on the device.
  • Free local generation up to 2048 pixels on the longest side, with no account required.
  • Every AI job shows its credit cost before the request is submitted.

How the AI normal map workflow runs

Choose PBR extraction when you want a map set returned directly, or choose depth when you want to inspect the height estimate before turning it into a normal map. Select the source image, read the provider disclosure, and confirm that the file may be transmitted for this one job. Nothing is uploaded before that confirmation, and the provider key stays on the server rather than in the page.

The job is asynchronous. A request is accepted, processed by the provider, and returned when it is ready, so the interface reports status instead of pretending the result is instant. Submission reserves credits because the provider cost is incurred at that point. If the job is rejected, times out, or reaches another terminal failure, the reserved credits are returned. Retrying the same saved job does not charge a second time, which keeps a transient provider problem from becoming a second purchase.

Download successful results promptly. Provider links can expire, so treat the delivery host as a channel rather than an archive. Keep the source, the returned maps, and the settings together so a later comparison reflects the same input rather than a rewritten prompt or a different source crop.

When AI depth beats a luminance conversion

A luminance conversion assumes that brighter pixels are higher and darker pixels are lower. That assumption holds for a clean height map and fails whenever the light in the photograph already encodes the shape. A brick wall photographed in shade, a statue lit from one side, a painted portrait, or a screenshot of a shaded 3D scene are all cases where a conventional converter turns shadows into false ridges.

A depth estimate has the opposite starting point: it infers distance from the scene rather than from brightness. That makes it the better first attempt when the source is a real photograph with baked illumination, or when the surface has strong colour variation that would otherwise become false relief. PBR extraction goes one step further and returns a coordinated set, which is useful when the normal map needs to agree with height, ambient occlusion, and roughness from the same interpretation of the surface.

Neither route turns a photograph into a measurement. They turn an ambiguous two-dimensional image into a plausible three-dimensional estimate, and plausibility is the standard to judge them by: does the lit preview respond like the surface in the photograph, and does the map survive a zoomed comparison with the source?

  • Good candidates: unevenly lit photographs, painted surfaces, matte sculptures, shaded scene captures.
  • Poor candidates: transparent materials, mirrors, hair, foliage, and thin wires where depth is genuinely ambiguous.
  • Compare the depth estimate as grayscale before encoding it, so invented discontinuities are visible early.

When the local converter is the better tool

If you already have a height map, the local converter is deterministic, free, and immediate. It applies Sobel or Scharr derivatives, strength, blur, height inversion, and wrapped or clamped edges without a network request. A seamless texture also belongs on the local path: the tiling check and edge handling can be inspected in the same session, and the source never leaves the machine.

Confidential client art is another reason to stay local. The free tier exports up to 2048 pixels on the longest side and includes the four core channels, engine presets, quality checks, and single-PNG or ZIP export. Pro Local is a one-time $29 licence that raises the ceiling to 8K and adds batch queues, saved browser presets, channel packing, and flexible ZIP naming. AI credits are separate and are needed only when a model job is actually submitted.

What the AI estimate cannot recover

Anything the camera never saw cannot be recovered with confidence. An occluded region behind a foreground object has no depth evidence, so the model guesses from surrounding context and the boundary often shows a smear. Transparent surfaces and mirrors are unreliable because their depth is ambiguous even to a person looking at one frame. Hair, foliage, and thin structures such as wires and railings are other common failure points.

Resolution matters as much as the model. A high-resolution source downscaled before inference loses the fine relief the depth map is supposed to carry, so the resulting normal map can look correct at a distance and flat up close. Estimate at the largest size the workflow allows, then compare the output against the original at full zoom before committing the maps to a material library.

Treat the depth output as a starting point. Continuous ramps through the image usually mean the estimate is stable, while large flat regions and sudden steps often mark places where a depth discontinuity was invented rather than observed. Correcting those regions by hand or choosing a different source is usually faster than raising the strength and hoping the artefact disappears.

Consent, credits, and failure handling

The local normal map generator never calls a model. An AI job is created only after you choose a capability, review the disclosure, and confirm that the selected source may be transmitted to the provider for processing. That separation is deliberate: privacy-first local work stays local, and optional model work is a separate decision with a visible cost.

Credit packs start at $9. The confirmed cost for a specific job is calculated on the server from the capability, output size, and number of maps, and it appears before submission. No plan promises unlimited model use. A failed or timed-out job returns its reserved credits, and a retry of the same saved job does not charge twice, so an error in the provider queue does not silently consume a purchase.

Quality checks before you export

Inspect the normal map in the 3D preview before download. The moving light makes orientation and slope errors obvious: an inverted green channel turns dents into bumps, while excessive strength makes every edge look like a bevel. The quality panel flags non-power-of-two dimensions, flat normal response, clipped grayscale values, edge mismatch, and the selected orientation, so the most common mistakes are visible before the file reaches an engine.

Choose the engine convention deliberately. OpenGL and DirectX usually differ only in the green channel, and the wrong one makes lighting appear to come from the wrong side. Engine presets name the intended convention rather than applying an opaque correction, and the export remains an ordinary PNG so colour space and bit depth can be set in the destination project.

  • Check orientation with a moving light before exporting.
  • Confirm power-of-two sizing when the destination engine expects it.
  • Reduce strength if edges look bevelled, and check clipping in the height source.
  • Keep the source and the map set together for later comparison.

Questions about AI normal map generation

These are the practical questions that decide whether an AI route is appropriate for a given source.

Is there a free AI normal map generator?

The local normal map generator is free up to 2048 pixels on the longest side and needs no account. AI jobs are paid with credits because each request incurs a provider cost; credit packs start at $9, and the confirmed cost is shown before submission. The site does not describe AI jobs as free.

Does an AI normal map generator upload my image?

The local path does not: core generation runs in a Web Worker in the page. The AI path does send the selected source to the model provider, and only after you review the disclosure and confirm that specific upload. Declining the disclosure leaves the local tools available.

Can AI make a normal map from one photo?

Yes, as an estimate. A depth workflow infers distance from scene context, and PBR extraction returns a coordinated map set that includes a normal map. Both work best on evenly exposed photographs with real geometry and can fail on transparent, reflective, or very thin subjects.

How much does an AI normal map cost?

The server calculates the credit cost from the chosen capability, output size, and map count, and shows it before submission. Credit packs start at $9. A failed or timed-out job returns its reserved credits, and retrying the same saved job does not charge twice.

What resolution can I export?

The free local tier exports up to 2048 pixels on the longest side, and Pro Local raises that ceiling to 8K for local work. AI output resolution depends on the selected workflow and output size; the job form exposes the available options before the request is sent.