\documentclass[tikz,border=5pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=0.6, line width = 0.5]
\draw (4.5, 5)--(4.5, 6.2)--(5.5, 7.2)--(7, 7.2)--(8, 6.2)--(8, 5)--(7, 4)--(5.5, 4)--(4.5, 5);
\node at (4.3, 5.6) {$a$};
\node at (4.8, 6.8) {$b$};
\node at (6.3, 7.4) {$a$};
\node at (7.8, 6.9) {$b$};
\node at (8.2, 5.6) {$c$};
\node at (7.8, 4.3) {$d$};
\node at (6.2, 3.8) {$c$};
\node at (4.8, 4.3) {$d$};
\draw[line width=1] (4.5, 5.6)--(5.25, 5.9)--(6.15, 5.1)--(7.2, 5.85)--(8, 5.6);
\draw[line width=1] (5,6.7)--(5.25, 5.9);
\draw[line width=1] (5.1,4.4)--(6.15, 5.1)--(6.25, 4.0);
\draw[line width=1] (6.25, 7.2)--(7.2, 5.85)--(7.5, 6.7);
\draw[line width=1] (7.2, 5.85)--(7.5, 4.5);
\draw[fill=white] (5.25, 5.9) circle[radius=0.1];
\draw[fill=lightgray] (6.15, 5.1) circle[radius=0.1];
\draw[fill=darkgray] (7.2, 5.85) circle[radius=0.1];
\draw (9, 5)--(9, 6.2)--(10, 7.2)--(11.5, 7.2)--(12.5, 6.2)--(12.5, 5)--(11.5, 4)--(10, 4)--(9, 5);
\draw[line width=1] (9, 5.6)--(10.05, 5.1)--(10.75, 5.6)--(11.7, 5.85)--(12.5, 5.6);
\draw[line width=1] (9.5, 6.7)--(10.75, 5.6);
\draw[line width=1] (9.6,4.4)--(10.05, 5.1)--(10.75, 4);
\draw[line width=1] (10.75, 7.2)--(11.7, 5.85)--(12, 6.7);
\draw[line width=1] (11.7, 5.85)--(12, 4.5);
\node at (8.8, 5.6) {$a$};
\node at (9.3, 6.9) {$b$};
\node at (10.8, 7.4) {$a$};
\node at (12.3, 6.9) {$b$};
\node at (12.7, 5.6) {$c$};
\node at (12.3, 4.3) {$d$};
\node at (10.8, 3.8) {$c$};
\node at (9.3, 4.3) {$d$};
\draw[fill=white] (10.05, 5.1) circle[radius=0.1];
\draw[fill=lightgray] (10.75, 5.6) circle[radius=0.1];
\draw[fill=darkgray] (11.7, 5.85) circle[radius=0.1];
\draw (0, -0.6)--(0, 0.6)--(1, 1.6)--(2.5, 1.6)--(3.5, 0.6)--(3.5, -0.6)--(2.5, -1.6)--(1, -1.6)--(0, -0.6);
\draw[line width=1] (0, 0)--(0.75, -0.35)--(0.5, -1.1);
\draw[line width=1] (0.75, -0.35)--(1.65, -0.05)--(2.7, 0.25)--(3.5, 0);
\draw[line width=1] (0.5, 1.1)--(1.65, -0.05)--(1.75, -1.6);
\draw[line width=1] (1.75, 1.6)--(2.7, 0.25)--(3, 1.1);
\draw[line width=1] (2.7, 0.25)--(3, -1.1);
\node at (-0.2, 0) {$a$};
\node at (0.3, 1.3) {$b$};
\node at (1.8, 1.8) {$a$};
\node at (3.3, 1.3) {$b$};
\node at (3.7, 0) {$c$};
\node at (3.3, -1.3) {$d$};
\node at (1.8, -1.8) {$c$};
\node at (0.3, -1.3) {$d$};
\draw[fill=white] (0.75, -0.35) circle[radius=0.1];
\draw[fill=lightgray] (1.65, -0.05) circle[radius=0.1];
\draw[fill=darkgray] (2.7, 0.25) circle[radius=0.1];
\draw (4.5, -0.6)--(4.5, 0.6)--(5.5, 1.6)--(7, 1.6)--(8, 0.6)--(8, -0.6)--(7, -1.6)--(5.5, -1.6)--(4.5, -0.6);
\node at (4.3, 0) {$a$};
\node at (4.8, 1.3) {$b$};
\node at (6.3, 1.8) {$a$};
\node at (7.8, 1.3) {$b$};
\node at (8.2, 0) {$c$};
\node at (7.8, -1.3) {$d$};
\node at (6.3, -1.8) {$c$};
\node at (4.8, -1.3) {$d$};
\draw[line width=1] (4.5, -0.2)--(5.2, -0.2)--(4.5, 0.5);
\draw[line width=1] (8,0)--(7, 0)--(7.1, 1.5);
\draw[line width=1] (5, 1.1)--(5.9, -0.1)--(6.25, -1.6);
\draw[line width=1] (5.2, -0.2)--(5, -1.1);
\draw[line width=1] (7.5, 1.1)--(7, 0)--(7.5, -1.1);
\draw[line width=1] (7,0)--(6.4, 1.6);
\draw[line width=1] (5.8, 1.6)--(5.3, 1.4);
\draw[line width=1] (5.2, -0.2)--(5.9, -0.1);
\draw[fill=white] (5.2, -0.2) circle[radius=0.1];
\draw[fill=lightgray] (5.9, -0.1) circle[radius=0.1];
\draw[fill=darkgray] (7, 0) circle[radius=0.1];
\draw (9, -0.6)--(9, 0.6)--(10, 1.6)--(11.5, 1.6)--(12.5, 0.6)--(12.5, -0.6)--(11.5, -1.6)--(10, -1.6)--(9, -0.6);
\node at (8.8, 0) {$a$};
\node at (9.3, 1.3) {$b$};
\node at (10.8, 1.8) {$a$};
\node at (12.3, 1.3) {$b$};
\node at (12.7, 0) {$c$};
\node at (12.3, -1.3) {$d$};
\node at (10.8, -1.8) {$c$};
\node at (9.3, -1.3) {$d$};
\draw[line width=1] (9.5, 1.1)--(9.7, 0.3)--(9, 0);
\draw[line width=1] (9.7, 0.3)--(10.8, -0.4)--(11.5, 0.4);
\draw[line width=1] (10.7, -1.6)--(10.8, -0.4)--(12.2, -0.9);
\draw[line width=1] (10.7, 1.6)--(11.5, 0.4)--(11.4, 1.6);
\draw[line width=1] (12.1, 1.0)--(11.5, 0.4)--(12.5, 0);
\draw[line width=1] (9, -0.4)--(9.4, -1.0);
\draw[fill=white] (9.7, 0.3) circle[radius=0.1];
\draw[fill=lightgray] (10.8, -0.4) circle[radius=0.1];
\draw[fill=darkgray] (11.5, 0.4) circle[radius=0.1];
\draw (13.5, -0.6)--(13.5, 0.6)--(14.5, 1.6)--(16, 1.6)--(17, 0.6)--(17, -0.6)--(16, -1.6)--(14.5, -1.6)--(13.5, -0.6);
\node at (13.3, 0) {$a$};
\node at (13.8, 1.3) {$b$};
\node at (15.3, 1.8) {$a$};
\node at (16.8, 1.3) {$b$};
\node at (17.2, 0) {$c$};
\node at (16.8, -1.3) {$d$};
\node at (15.3, -1.8) {$c$};
\node at (13.8, -1.3) {$d$};
\draw[line width=1] (13.5, -0.2)--(14.2, -0.2)--(15.2, 0)--(16, 0.4)--(16.5, 1.1);
\draw[line width=1] (17,0)--(16, 0.4)--(15.8, 1.6);
\draw[line width=1] (14, 1.1)--(14.2, -0.2)--(15.25, -1.6);
\draw[line width=1] (15.2, 1.6)--(15.2, 0);
\draw[line width=1] (14.2, -0.2)--(16.5, -1.1);
\draw[line width=1] (13.5, -0.4)--(13.9, -1.0);
\draw[fill=white] (14.2, -0.2) circle[radius=0.1];
\draw[fill=lightgray] (15.2, 0) circle[radius=0.1];
\draw[fill=darkgray] (16, 0.4) circle[radius=0.1];
\node at (6.2, 3.3) {\scriptsize orientable \#1};
\node at (10.7, 3.3) {\scriptsize orientable \#2};
\node at (1.8, -2.3) {\scriptsize non-orientable \#1};
\node at (6.3, -2.3) {\scriptsize non-orientable \#2};
\node at (10.8, -2.3) {\scriptsize non-orientable \#3};
\node at (15.3, -2.3) {\scriptsize non-orientable \#4};
\end{tikzpicture}
\end{document}