gvecchio/StableMaterials
gvecchio
Texto a imagen
StableMaterials es un modelo de difusión para generar materiales PBR fotorrealistas y teselables a partir de prompts de texto o imagen. Produce mapas de material de alta resolución, incluyendo basecolor/diffuse, normal, height, roughness y metallic, usando aprendizaje semisupervisado sobre modelos de difusión latente y una variante de consistencia latente para generación rápida.
Como usar
Instalación y uso básico con Diffusers:
pip install -U diffusers transformers accelerate
import torch
from diffusers import DiffusionPipeline
# switch to "mps" for apple devices
pipe = DiffusionPipeline.from_pretrained("gvecchio/StableMaterials", dtype=torch.bfloat16, device_map="cuda")
prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(prompt).images[0]
Modelo estándar para generar mapas PBR desde texto o imagen:
from diffusers import DiffusionPipeline
from diffusers.utils import load_image
# Load pipeline enabling the execution of custom code
pipe = DiffusionPipeline.from_pretrained(
"gvecchio/StableMaterials",
trust_remote_code=True,
torch_dtype=torch.float16
)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
pipe = pipe.to(device)
# Text prompt example
material = pipe(
prompt="Old rusty metal bars with peeling paint",
guidance_scale=10.0,
tileable=True,
num_images_per_prompt=1,
num_inference_steps=50,
).images[0]
# Image prompt example
material = pipe(
prompt=load_image("path/to/input_image.jpg"),
guidance_scale=10.0,
tileable=True,
num_images_per_prompt=1,
num_inference_steps=50,
).images[0]
# The output will include basecolor, normal, height, roughness, and metallic maps
basecolor = material.basecolor
normal = material.normal
height = material.height
roughness = material.roughness
metallic = material.metallic
Modelo de consistencia para generación rápida:
from diffusers import DiffusionPipeline, LCMScheduler, UNet2DConditionModel
from diffusers.utils import load_image
# Load LCM distilled unet
unet = UNet2DConditionModel.from_pretrained(
"gvecchio/StableMaterials",
subfolder="unet_lcm",
torch_dtype=torch.float16,
)
# Load pipeline enabling the execution of custom code
pipe = DiffusionPipeline.from_pretrained(
"gvecchio/StableMaterials",
trust_remote_code=True,
unet=unet,
torch_dtype=torch.float16
)
# Replace scheduler with LCM scheduler
pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
pipe = pipe.to(device)
# Text prompt example
material = pipe(
prompt="Old rusty metal bars with peeling paint",
guidance_scale=10.0,
tileable=True,
num_images_per_prompt=1,
num_inference_steps=4, # LCM enables fast generation in as few as 4 steps
).images[0]
# Image prompt example
material = pipe(
prompt=load_image("path/to/input_image.jpg"),
guidance_scale=10.0,
tileable=True,
num_images_per_prompt=1,
num_inference_steps=4,
).images[0]
# The output will include basecolor, normal, height, roughness, and metallic maps
basecolor = material.basecolor
normal = material.normal
height = material.height
roughness = material.roughness
metallic = material.metallic
Funcionalidades
- Generación de materiales PBR teselables desde texto o imagen.
- Salida con mapas basecolor, normal, height, roughness y metallic.
- Arquitectura basada en LDM adaptada desde MatFuse para diversidad y fidelidad visual en materiales.
- Entrenamiento semisupervisado con datos anotados y no anotados, más destilación de conocimiento desde muestras de textura generadas con SDXL.
- Versión LCM para reducir los pasos de inferencia y generar resultados en tan solo 4 pasos.
- Técnica de tileabilidad mediante rolling de mapas de características en capas convolucionales y de atención del U-Net.
Casos de uso
- Creación de materiales PBR realistas para videojuegos.
- Texturizado de escenas y objetos 3D en flujos de contenido digital.
- Visualización arquitectónica con superficies teselables y mapas físicos.
- Generación rápida de variaciones de materiales mediante prompts de texto o referencias visuales.
- Producción de mapas basecolor, normal, height, roughness y metallic para pipelines de renderizado.