license: cc-by-nc-4.0
language:
- en
tags:
- art
- texture
- game-development
- asset-creation
- pbr
- stable_diffusion
Introducing Texture Hell
This is my first publicly released sd model. It is meant specifically to create albedo/diffuse textures for use in video games and animations. It has been fully finetuned on the sd2.1 768 base model to provide you with high resolution results. Let's dive into the details.
Please read my description first before using this model, as it is rather diffrent to use than the usual sd models.
Training and prompt tips
The dataset consists of 350 high-quality images sourced from Poly Heaven, ensuring a diverse and representative range of albedo textures. Clip 1 was used throughout training. Prompts where comma seperated tag lists (no clip/bert full text descriptions). The most import one is "texture", followed by any material you are interested. Though because of the limited dataset, there are lacking domains (e.g. flesh and cloth). I plan to improve on diversity on subsequent versions. A full list of tags used on images with a frequency usage statistic is available -here- to help you identify potentially interesting tags. But there is probably a lot of room to experiment with other words, i was only able to do rudimentary testing.
Very Important: there are some aerial textures inside the dataset (ie. beach taken by drone from very far up) for landscape textures. If you don't want this type of texture, put "aerial" into negative prompt.
All example images have full prompt information inside them for more information about samplers, steps etc.
Tiling and WebUI
Please note that the textures generated do not perfectly tile. While there is a tiling option available in the WebUI, i do not recommend using it. Instead, i have found a "reasonable" manual workflow to turn them into seamless textures. A tutorial can be found on my Huggingface page: https://huggingface.co/Nazzaroth2/texture-hell
I hope to improve the inherent tiling ability of the model in further versions, especially a bigger dataset and good tagging should help here.
Other Textures
My first try involded generating the full set of textures needed for the normal pbr-based render pipeline(normal, height, roughness, etc). The initial results are promising, though the reduction in resolution and limited dataset made me change my plans. This might change in the future.
In the meantime you can use other software to create these textures from the albedo image. I personally used the free option Materialize https://boundingboxsoftware.com/materialize . But there are of course also paid versions like Substance Designer.
I am curious to see what you all are able to make with this model and hope it can help you in your projects. If you have any ideas for improvements or a specific material type you think is lacking inside the model, i am happy to hear from you.
Happy texturing!
P.S. Why Texture Hell? Because hell is way more interesting than boring old heaven :3
How to Create Seamless Textures
Additional Software used
- auto111 webui
- image editing software (photoshop or gimp)
- lama cleaner (https://github.com/Sanster/lama-cleaner)
Step 1: Create the Texture
Create your desired texture with the usual text2image workflow. Do NOT use tiling option yet.
Step 2: Inpaint the Texture
- Send the image to the inpainting tab.
- Handpaint a mask around the edges or use one of my pre-made mask images
- Now activate the tiling option
- Adjust the denoising strength. A value of 0.75 is a good starting point, but feel free to experiment as needed.
- Save the inpainted image.
Step 3: Offset the Edges in an Image Editor
- Open the inpainted image in the image editor of your choice.
- Use the offset modifier to push the edges into the center of the image (check online tutorials for specific instructions on using the offset modifier in your chosen image editor).
- Save the modified image.
Step 4: Clean Up the Texture with LAMA-cleaner
- Open the offset image in LAMA-cleaner.
- Paint over parts that do not line up perfectly or remove any larger objects that cannot be fixed. Lama or Zits are my preffered models, but you can also experiment here.
- Save the cleaned image.
Step 5: Additional Cleanup (Optional)
Depending on your quality requirements, you may want to open the cleaned image in your image editor again and further clean up any imperfections. Continue this process until you are satisfied with the results.
Step 6: Restore the Original Texture
- Open the cleaned image in your image editor.
- Use the offset modifier again to return the image to its original state. The texture should now have seamless edges.
- Save the final seamless texture and use other software like materialize https://boundingboxsoftware.com/materialize/ to create missing textures like normal-map and roughness