MCPcopy Create free account
hub / github.com/thygate/stable-diffusion-webui-depthmap-script / DL_inpaint_edge

Function DL_inpaint_edge

inpaint/mesh.py:1395–1825  ·  view source on GitHub ↗
(mesh,
                    info_on_pix,
                    config,
                    image,
                    depth,
                    context_ccs,
                    erode_context_ccs,
                    extend_context_ccs,
                    extend_erode_context_ccs,
                    mask_ccs,
                    broken_mask_ccs,
                    edge_ccs,
                    extend_edge_ccs,
                    init_mask_connect,
                    edge_maps,
                    rgb_model=None,
                    depth_edge_model=None,
                    depth_edge_model_init=None,
                    depth_feat_model=None,
                    specific_edge_id=-1,
                    specific_edge_loc=None,
                    inpaint_iter=0)

Source from the content-addressed store, hash-verified

1393 return context_ccs, mask_ccs, broken_mask_ccs, edge_ccs, erode_context_ccs, invalid_extend_edge_ccs, edge_maps, extend_context_ccs, extend_edge_ccs, extend_erode_context_ccs
1394
1395def DL_inpaint_edge(mesh,
1396 info_on_pix,
1397 config,
1398 image,
1399 depth,
1400 context_ccs,
1401 erode_context_ccs,
1402 extend_context_ccs,
1403 extend_erode_context_ccs,
1404 mask_ccs,
1405 broken_mask_ccs,
1406 edge_ccs,
1407 extend_edge_ccs,
1408 init_mask_connect,
1409 edge_maps,
1410 rgb_model=None,
1411 depth_edge_model=None,
1412 depth_edge_model_init=None,
1413 depth_feat_model=None,
1414 specific_edge_id=-1,
1415 specific_edge_loc=None,
1416 inpaint_iter=0):
1417
1418 if isinstance(config["gpu_ids"], int) and (config["gpu_ids"] >= 0):
1419 device = config["gpu_ids"]
1420 else:
1421 device = "cpu"
1422
1423 edge_map = np.zeros_like(depth)
1424 new_edge_ccs = [set() for _ in range(len(edge_ccs))]
1425 edge_maps_with_id = edge_maps
1426 edge_condition = lambda x, m: m.nodes[x].get('far') is not None and len(m.nodes[x].get('far')) > 0
1427 edge_map = get_map_from_ccs(edge_ccs, mesh.graph['H'], mesh.graph['W'], mesh, edge_condition)
1428 np_depth, np_image = depth.copy(), image.copy()
1429 image_c = image.shape[-1]
1430 image = torch.FloatTensor(image.transpose(2, 0, 1)).unsqueeze(0).to(device)
1431 if depth.ndim < 3:
1432 depth = depth[..., None]
1433 depth = torch.FloatTensor(depth.transpose(2, 0, 1)).unsqueeze(0).to(device)
1434 mesh.graph['max_edge_id'] = len(edge_ccs)
1435 connnect_points_ccs = [set() for _ in range(len(edge_ccs))]
1436 gp_time, tmp_mesh_time, bilateral_time = 0, 0, 0
1437 edges_infos = dict()
1438 edges_in_mask = [set() for _ in range(len(edge_ccs))]
1439 tmp_specific_edge_id = []
1440 for edge_id, (context_cc, mask_cc, erode_context_cc, extend_context_cc, edge_cc) in enumerate(zip(context_ccs, mask_ccs, erode_context_ccs, extend_context_ccs, edge_ccs)):
1441 if len(specific_edge_id) > 0:
1442 if edge_id not in specific_edge_id:
1443 continue
1444 if len(context_cc) < 1 or len(mask_cc) < 1:
1445 continue
1446 edge_dict = get_edge_from_nodes(context_cc | extend_context_cc, erode_context_cc | extend_erode_context_ccs[edge_id], mask_cc, edge_cc, extend_edge_ccs[edge_id],
1447 mesh.graph['H'], mesh.graph['W'], mesh)
1448 edge_dict['edge'], end_depth_maps, _ = \
1449 filter_irrelevant_edge_new(edge_dict['self_edge'], edge_dict['comp_edge'],
1450 edge_map,
1451 edge_maps_with_id,
1452 edge_id,

Callers 1

write_meshFunction · 0.85

Calls 15

get_map_from_ccsFunction · 0.90
get_edge_from_nodesFunction · 0.90
get_valid_sizeFunction · 0.90
dilate_valid_sizeFunction · 0.90
size_operationFunction · 0.90
crop_maps_by_sizeFunction · 0.90
convert2tensorFunction · 0.90
require_depth_edgeFunction · 0.90
clean_far_edge_newFunction · 0.90
create_placeholderFunction · 0.90
depth_inpaintingFunction · 0.90

Tested by

no test coverage detected