AI Textures for Unity and VRChat

An AI-generated image is a source asset, not a finished Unity material. Before using one in a world or avatar, confirm that you may use it, remove visible defects, configure its Unity import settings, and test it on the actual mesh.

This guide covers that production check. It does not recommend a particular generator because tool features and licence terms can change.

Texture Production Check

Move one candidate through the complete workflow before generating a large texture set.

  1. Confirm the generator's current terms allow your intended use.
  2. Repair seams, baked lighting, warped details, and unwanted marks.
  3. Import the image into Unity, assign the correct texture type, and test it on the target mesh and platform.
VRChat rights check

VRChat's Terms of Service require you to own your uploaded content or have the licences, rights, consents, and permissions needed to post it. Check the generator's current terms and any source-image restrictions before publishing a world, avatar, or asset.

Decide What the Image Is For

Name the intended role before editing or importing the image.

Intended use Required check
Colour or albedo Remove unwanted lighting and shadows that would conflict with Unity lighting.
Normal map Confirm it represents surface direction data and import it as Normal map.
Metallic or smoothness data Treat it as numeric material data rather than colour data.
Emission Check that only the intended luminous areas are present.
Height or mask Confirm the target shader supports the map and expects the same channel layout.
Concept or temporary surface Label and organize it so it is not mistaken for approved final art.

Do not assume that a set of generated maps is internally consistent. Compare details across the colour, normal, metallic, smoothness, and height images before building the material.

Inspect the Image Before Unity

Review the image at full size and as a repeating tile.

Check for:

  • visible borders when the image repeats
  • objects or patterns that stop at an edge
  • text-like marks, signatures, or unwanted symbols
  • inconsistent perspective or surface scale
  • baked highlights, shadows, or directional lighting
  • blurred, doubled, or malformed details
  • colour shifts between opposite edges

For a repeating floor or wall, preview at least a three-by-three tile. The centre seams are easier to identify when the image repeats in every direction.

Prepare a Clean Source File

Keep the original generation separate from the edited source and Unity-ready export. A simple folder pattern is:

Textures/
  Source/
  Working/
  Unity/

Use clear suffixes for separate maps:

PaintedMetal_Albedo.png
PaintedMetal_Normal.png
PaintedMetal_Metallic.png
PaintedMetal_Emission.png

Export only the channels the material actually uses. Extra maps add project size and texture memory without helping the result.

Import the Texture Into Unity

Place the prepared file inside the project's Assets folder, then select it in the Project window. Unity displays its Texture Import Settings in the Inspector.

Review these settings:

Setting What to verify
Texture Type Use Default for ordinary colour and data textures. Use Normal map for a normal map.
sRGB (Color Texture) Enable it for colour textures such as albedo. Disable it for data that needs exact values, such as metallic or smoothness information.
Alpha Source Keep alpha only when the material uses transparency or packed data from that channel.
Generate Mip Maps Keep mipmaps for most textures viewed at different distances in a 3D scene.
Max Size Set the largest imported dimension the asset needs instead of retaining unnecessary source resolution.
Compression Preview the result on the target platform and watch for gradients, banding, ringing, or damaged normal detail.

Click Apply after changing import settings.

Configure Normal Maps Correctly

A normal map is not a colour texture. Select the image and set Texture Type to Normal map so Unity imports it for real-time normal mapping.

If the lighting appears inverted, confirm the source map's convention. Unity 2022.3 provides Flip Green Channel for normal maps created with the opposite Y-channel convention.

Do not use a normal-looking purple image as proof that the map is correct. Apply it to the real material and rotate the light or view around the surface to check the response.

Test the Material on Its Real Mesh

A flat preview cannot reveal every production problem. Apply the material to the intended mesh or a close proxy and inspect:

  • UV seams
  • texture scale
  • stretching on narrow or curved areas
  • repeated features that are too obvious
  • normal-map direction
  • material response under the world's lighting
  • appearance at the expected viewing distance

Test the material in the render pipeline used by the project. A browser preview from a generator is not a substitute for the Unity result.

Prepare PC and Android Imports

Unity's Texture Import Settings include platform-specific overrides. Use them when the Android version needs a different Max Size, compression setting, or texture format from the PC version.

VRChat's Android optimization guidance says texture data is often a major part of content size and recommends keeping textures small, compressing them, and using efficiently packed atlases. It also warns that Crunch compression reduces download size but does not reduce the texture's in-memory size.

Android review

Do not judge an Android texture only by its source file size. Switch to the Android target, inspect the platform override and preview, build the content, and review the result on the target hardware.

Keep the Set Visually Consistent

Generated images can vary in colour, edge sharpness, detail density, lighting direction, and apparent scale. Compare the texture beside the rest of the environment before approving it.

A small, coherent texture set is usually easier to light, optimize, and maintain than many unrelated variations.

Troubleshooting

The texture has obvious seams when it repeats.

Return to the working image, offset it so the borders meet in the centre, repair the visible joins, and test it again as a repeating grid before reimporting it.

The material looks permanently lit or shadowed.

The colour image may contain baked highlights or shadows. Remove that directional lighting from the source so Unity's scene lighting controls the surface response.

The normal map makes dents look raised.

Confirm that the image is imported as a Normal map, then check whether its green channel uses the opposite convention. Test Unity's Flip Green Channel option and compare the lighting response.

The texture looks sharp on PC but damaged on Android.

Inspect the Android platform override, Max Size, and compression preview. Increase quality only where the visible improvement justifies the additional platform cost.

I cannot tell whether I may publish the generated image.

Do not publish it until the generator's current terms and any source-image restrictions clearly cover your intended use. VRChat also requires the necessary rights and permissions for uploaded User Content.

Official References

Continue the Workflow

Related Navigation

Production Workflow

Turn Generated Images Into Usable Textures

Check usage rights, repair the image, assign the correct texture type, and test the material on its target platform.

Suggested Order

  1. Inspect the source Check the image for seams, baked lighting, warped details, inconsistent scale, and unwanted marks.
  2. Prepare the maps Separate colour data from normal, metallic, smoothness, height, or emission data instead of treating every generated image as a complete material.
  3. Configure and test Set the correct Unity import options, apply the texture to its real mesh, and review platform overrides before publishing.