feat(hero): generate the stone albedo with the new texture tool, import it, wire it into the material
Used the workflow integration from the previous step for real: generated a warm limestone ashlar albedo with two profiles compared (AlbedoBase 17.04 vs Krea-2 13.90, AlbedoBase won), saved it as Art/textures/generated/T_FacadeAshlar_AI.png beside its provenance sidecar, and imported it to /Game/Hollywood/Textures. ue_hero_facade_import.py now imports that albedo and, for the two stone slots, builds a material with TextureSampleParameter2D -> Multiply(tint) -> Base Color, tiling the UVs 6x, so the map carries the coursing and the tint keeps the value inside the reference's range. Two real bugs fixed on the way: - the albedo path was resolved against unreal.Paths.project_dir() (Game/GigLine), not the repository root, so the import silently skipped; - the authored materials were never saved - only the mesh was - so after a reload the slots pointed at nothing and the elevation fell back to one default colour. Honest status: the nodes are verified present and saved (Constant3Vector, TextureSampleParameter2D, TextureCoordinate, Multiply) and the source mesh has UVs, but the render still shows the flat tint. Recorded in TODO.md with the next probe: read the compiled Base Color pin instead of the node list. THIRD_PARTY_NOTICES.md gains the AlbedoBase row (commercial use, credit required).
This commit is contained in:
1 parent
70a7e19841
commit
f681d83736
126 files changed
+445
-139
No files matched your search
Binary file not shown.
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"prompt": "top-down orthographic game texture, flat even lighting, no shadows, no AO, no vignette, PBR albedo, material scan, neutral colours, weathered warm limestone ashlar masonry, shallow joints, fine grain, sandstone",
|
||||
"profile": "albedobase",
|
||||
"size": [
|
||||
1024,
|
||||
1024
|
||||
],
|
||||
"seed": 21,
|
||||
"settings": {
|
||||
"steps": 30,
|
||||
"cfg": 6.0,
|
||||
"sampler": "dpmpp_2m",
|
||||
"scheduler": "karras"
|
||||
},
|
||||
"licence": "AlbedoBase XL v3.1 (SDXL) - game albedo, commercial use with credit",
|
||||
"tool": "Tools/comfyui_generate.py",
|
||||
"generated_utc": "2026-11-10T10:49:34Z",
|
||||
"workflow": {
|
||||
"1": {
|
||||
"class_type": "CheckpointLoaderSimple",
|
||||
"inputs": {
|
||||
"ckpt_name": "albedobaseXL_v31Large.safetensors"
|
||||
}
|
||||
},
|
||||
"4": {
|
||||
"class_type": "CLIPTextEncode",
|
||||
"inputs": {
|
||||
"text": "top-down orthographic game texture, flat even lighting, no shadows, no AO, no vignette, PBR albedo, material scan, neutral colours, weathered warm limestone ashlar masonry, shallow joints, fine grain, sandstone",
|
||||
"clip": [
|
||||
"1",
|
||||
1
|
||||
]
|
||||
}
|
||||
},
|
||||
"5": {
|
||||
"class_type": "CLIPTextEncode",
|
||||
"inputs": {
|
||||
"text": "shadows, perspective, vignette, dramatic lighting, blurry, low quality, text, watermark",
|
||||
"clip": [
|
||||
"1",
|
||||
1
|
||||
]
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"class_type": "EmptyLatentImage",
|
||||
"inputs": {
|
||||
"width": 1024,
|
||||
"height": 1024,
|
||||
"batch_size": 1
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"class_type": "KSampler",
|
||||
"inputs": {
|
||||
"seed": 21,
|
||||
"steps": 30,
|
||||
"cfg": 6.0,
|
||||
"sampler_name": "dpmpp_2m",
|
||||
"scheduler": "karras",
|
||||
"denoise": 1.0,
|
||||
"model": [
|
||||
"1",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"4",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"5",
|
||||
0
|
||||
],
|
||||
"latent_image": [
|
||||
"6",
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"class_type": "VAEDecode",
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"1",
|
||||
2
|
||||
]
|
||||
}
|
||||
},
|
||||
"9": {
|
||||
"class_type": "SaveImage",
|
||||
"inputs": {
|
||||
"images": [
|
||||
"8",
|
||||
0
|
||||
],
|
||||
"filename_prefix": "texture_albedobase"
|
||||
}
|
||||
}
|
||||
},
|
||||
"comfyui_prompt_id": "0267d583-74ba-4037-808a-fac4742efe34",
|
||||
"note": "generated locally; record the model licence in THIRD_PARTY_NOTICES.md before shipping"
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"prompt": "top-down orthographic game texture, flat even lighting, no shadows, no AO, no vignette, PBR albedo, material scan, neutral colours, weathered warm limestone ashlar masonry, shallow joints, fine grain, sandstone",
|
||||
"profile": "krea2",
|
||||
"size": [
|
||||
1024,
|
||||
1024
|
||||
],
|
||||
"seed": 21,
|
||||
"settings": {
|
||||
"steps": 8,
|
||||
"cfg": 1.0,
|
||||
"sampler": "euler",
|
||||
"scheduler": "simple"
|
||||
},
|
||||
"licence": "Krea-2 Turbo NVFP4 - fast stochastic detail (stone, bark, foliage)",
|
||||
"tool": "Tools/comfyui_generate.py",
|
||||
"generated_utc": "2026-11-10T10:49:46Z",
|
||||
"workflow": {
|
||||
"1": {
|
||||
"class_type": "UNETLoader",
|
||||
"inputs": {
|
||||
"unet_name": "krea2_turbo_nvfp4.safetensors",
|
||||
"weight_dtype": "default"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"class_type": "CLIPLoader",
|
||||
"inputs": {
|
||||
"clip_name": "qwen3vl_4b_int8_convrot.safetensors",
|
||||
"type": "krea2",
|
||||
"device": "default"
|
||||
}
|
||||
},
|
||||
"3": {
|
||||
"class_type": "VAELoader",
|
||||
"inputs": {
|
||||
"vae_name": "texture_fix_vae_for_qwen_image_1_and_krea_2_bf16.safetensors"
|
||||
}
|
||||
},
|
||||
"4": {
|
||||
"class_type": "CLIPTextEncode",
|
||||
"inputs": {
|
||||
"text": "top-down orthographic game texture, flat even lighting, no shadows, no AO, no vignette, PBR albedo, material scan, neutral colours, weathered warm limestone ashlar masonry, shallow joints, fine grain, sandstone",
|
||||
"clip": [
|
||||
"2",
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
"5": {
|
||||
"class_type": "ConditioningZeroOut",
|
||||
"inputs": {
|
||||
"conditioning": [
|
||||
"4",
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"class_type": "EmptyLatentImage",
|
||||
"inputs": {
|
||||
"width": 1024,
|
||||
"height": 1024,
|
||||
"batch_size": 1
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"class_type": "KSampler",
|
||||
"inputs": {
|
||||
"seed": 21,
|
||||
"steps": 8,
|
||||
"cfg": 1.0,
|
||||
"sampler_name": "euler",
|
||||
"scheduler": "simple",
|
||||
"denoise": 1.0,
|
||||
"model": [
|
||||
"1",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"4",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"5",
|
||||
0
|
||||
],
|
||||
"latent_image": [
|
||||
"6",
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"class_type": "VAEDecode",
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"3",
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
"9": {
|
||||
"class_type": "SaveImage",
|
||||
"inputs": {
|
||||
"images": [
|
||||
"8",
|
||||
0
|
||||
],
|
||||
"filename_prefix": "texture_krea2"
|
||||
}
|
||||
}
|
||||
},
|
||||
"comfyui_prompt_id": "2201c99d-52f5-4229-9423-ca0e40a33059",
|
||||
"note": "generated locally; record the model licence in THIRD_PARTY_NOTICES.md before shipping"
|
||||
}
|
||||
Binary file not shown.
Reference in new issue
Block a user