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).
120 lines
2.7 KiB
JSON
120 lines
2.7 KiB
JSON
{
|
|
"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"
|
|
} |