You probably (well yourr GUI) loads plenty of textures into preview material, which uses most of VRAM. So unreal starts to lower mip-maps.
So:
- optimize umg textures for perviews. Make master material for preview that only uses one texture.
- make all gui frames from SDF )signed distance fields) there is great example for it in UMG interface materials sample.
- in preview textures lower bits per channel to 8 only. Use texture sizes in power of 2 ie. 1024x1024, 2048x1024 etc
- you can also try render target from scene, and use that instead of separate textures
- use only soft pointers, to textures, do not store multiple pointers to textures in array, as they will all be loaded
- instead of pointers and array of references, use Data Asset that has soft pointer to textures, and store DataAssets references in array. Or data table with soft references
- if you have multiple preview widgets (like for each model separate widget), make widgets only for visible preview pictures, then dynamically change texture for preview (instanced material >> dynamic instanced material >> make brush from material (for image in widget).
TL/DR:
anything that has REFERENCE to material (with texture) keeps that texture always loaded. So use soft references instead.