INNER CODE UNIT · Python
UV_inpaint
OpenTexture/Paint3D · pipeline_paint3d_stage2.py:23
def UV_inpaint(sd_cfg, cnet, mesh_model, outdir,):
print(f"rendering texture and position map")
mesh_model.export_mesh(outdir, export_texture_only=True)
albedo_path = os.path.join(outdir, f"albedo.png")
UV_pos = mesh_model.UV_pos_render()
UV_pos_path = os.path.join(outdir, f"UV_pos.png")
utils.save_tensor_image(UV_pos.permute(0, 3, 1, 2), UV_pos_path)
# processing mask
mask_dilated = utils.extract_bg_mask(albedo_path, dilate_kernel=15)
mask_path = os.path.join(outdir, f"mask.png")
cv2.imwrite(mask_path, mask_dilated)
# UV inpaint
p_cfg = sd_cfg.inpaint
p_cfg.image_path = albedo_path
p_cfg.mask_path = mask_path
p_cfg.controlnet_units[0].condition_image_path = UV_pos_path