The fact is that you must redraw what is contained in the function, in the code that I have done, I have redrawn everything and redifined new nodes, not just a line, but a shape, which allows me to obtain a false variation in thickness, then I have added the scope structure, which allows me to obtain the mirror-like drawing xscale=-1, and move everything together towards a specific coordinate, then a second definition that allows me to draw a cell formed by the two wires and the middle line; so I can draw several, node IDs are also used, I also leave some commands to find any node.
Try changing the coordinates so that you can see how the modifiers affect, so you can be guided by the visual tikz 7.6 links
RESULT:

MWE:
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\definecolor{myred}{HTML}{8F3132}
\definecolor{mygreen}{HTML}{395D4E}
\usetikzlibrary{calc,arrows.meta}
\begin{document}
\begin{tikzpicture}
% New command to draw a single shape with named coordinates ans some controls like colors
\def\Wire(#1)#2[#3](#4){% This draw one cell #1:position #2:color #3: Identifier #4: scale only 1 or -1
\begin{scope}[shift={(#1)},xscale=#4]% To modify the shape you must redefine the drawing within scope
\draw[fill,#2] (0,0)%Starting point
to ++(0,-1) % when use ++ you find a point relative to the starting point but shifted ++(xshift,yshift)
to [in=90, out=-90]++(-2,-1) coordinate (a#3) %line direction from initial node in -90 degree direction and comes to the second in 90 direction, drawing a curved path.
to ++(0,-2) coordinate (b#3)
to [in=90, out=-90]++(2,-1) coordinate (c#3)
to ++(0,-0.5) coordinate (d#3)
to [in=90, out=-90]++(-1,-1.5) coordinate (e#3)
to ++(0,-0.1) coordinate (f#3)
to [in=90, out=-90]++(1,-1.5) coordinate (g#3)
to ++(0,-1) coordinate (h#3)
to ++(-0.1,0)%go reverse shifted 0.1
to ++(0,1)
to [in=-90, out=90]++(-1+0.08,1.5)% +0.08 to get 0.02 of shifting in this point
to ++(0,0.1)
to [in=-90, out=90]++(1-0.08,1.5) %- 0.08 to compensate the value substracted and return to 0.1 shift value.
to ++(0,0.5)
to [in=-90, out=90]++(-2,1) % idem
to ++(0,2)
to [in=-90, out=90]++(2+0.08,1)
to ++(0,1)
to cycle;
\draw[draw=none] (a#3) -- (b#3) node [midway](text1){};\draw(text1)++(0.4,0) node[#2]{\sf 3};
\draw[draw=none] (c#3) -- (d#3) node [midway](text2){};\draw(text2)++(-0.4,0) node[#2]{\sf 2};
\draw[draw=none] (g#3) -- (h#3) node [midway](text3){};\draw(text3)++(-0.4,0) node[#2]{\sf 1};
\end{scope}
}
\def\cell(#1)[#2]{%#1:position, #2:ID
\begin{scope}[shift={(#1)}]
\Wire(0,0){myred}[L#2](1)% All the cordinates are labeled as L(identifier) result in aL1,bL1 ... aL2,hL2...
\draw[thick] (0.25,0) -- ++(0,-9.6); % the middle line
\Wire(0.5,0){mygreen}[R#2](-1) %All the cordinates are labeled as R(identifier) result in aR1,bR1 ... aR2,hR2...
\end{scope}
}
%Start drawing the thing...
\cell(0,0)[1]
\draw node at (0.25,0.5) {\sf Command; \verb+\cell(0,0)[1]+};
\cell(-5,0)[2]
\draw node at (-4.75,0.5) {\sf Command; \verb+\cell(-5,0)[2]+};
\cell(5,0)[3]
\draw node at (5.25,0.5) {\sf Command; \verb+\cell(5,0)[3]+};
\Wire(10,0){blue}[L4](1)
\draw node (comment1) at (7.5,-10.5) {\sf Command; \verb+\Wire(10,0){blue}[L4](1)+};
%Demostration nodes:
\draw[-Stealth,shorten >= 5pt,] (comment1) -- (hL4);
\draw[-Stealth,shorten >= 2pt,shorten <= 2pt] (fR2) -- (fL1) node [midway,align=center,anchor=south]{Node IDs \\ available};
%Find nodes
\draw node[anchor=east] at (bR1) {\sf Node \verb+bR1+} (bR1)[fill=red] circle (2pt);
\draw node[anchor=east] at (aR2) {\sf Node \verb+aR2+} (aR2)[fill=red] circle (2pt);
\draw node[anchor=west] at (aL2) {\sf Node \verb+aL2+} (aL2)[fill=red] circle (2pt);
\draw node[anchor=east] at (eL3) {\sf Node \verb+eL3+} (eL3)[fill=red] circle (2pt);
\draw node[anchor=east] at (fL4) {\sf Node \verb+fL4+} (fL4)[fill=red] circle (2pt);
\end{tikzpicture}
\end{document}
Update
In a crazy idea; why not to create a cropped area with the same figure and draw within it the shaders in the positions of the texts, doing that I get:
RESULT:

UPDATED MWE:
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\definecolor{myred}{HTML}{8F3132}
\definecolor{mygreen}{HTML}{395D4E}
\usetikzlibrary{calc,arrows.meta}
\begin{document}
\begin{tikzpicture}
% New command to draw a single shape with named coordinates ans some controls like colors
\def\Wire(#1)#2[#3](#4){% This draw one cell #1:position #2:color #3: Identifier #4: scale only 1 or -1
\begin{scope}[shift={(#1)},xscale=#4]% To modify the shape you must redefine the drawing within scope
\draw[fill,#2] (0,0)%Starting point
to ++(0,-1) % when use ++ you find a point relative to the starting point but shifted ++(xshift,yshift)
to [in=90, out=-90]++(-2,-1) coordinate (a#3) %line direction from initial node in -90 degree direction and comes to the second in 90 direction, drawing a curved path.
to ++(0,-2) coordinate (b#3)
to [in=90, out=-90]++(2,-1) coordinate (c#3)
to ++(0,-0.5) coordinate (d#3)
to [in=90, out=-90]++(-1,-1.5) coordinate (e#3)
to ++(0,-0.1) coordinate (f#3)
to [in=90, out=-90]++(1,-1.5) coordinate (g#3)
to ++(0,-1) coordinate (h#3)
to ++(-0.1,0)%go reverse shifted 0.1
to ++(0,1)
to [in=-90, out=90]++(-1+0.08,1.5)% +0.08 to get 0.02 of shifting in this point
to ++(0,0.1)
to [in=-90, out=90]++(1-0.08,1.5) %- 0.08 to compensate the value substracted and return to 0.1 shift value.
to ++(0,0.5)
to [in=-90, out=90]++(-2,1) % idem
to ++(0,2)
to [in=-90, out=90]++(2+0.08,1)
to ++(0,1)
to cycle;
\draw[draw=none] (a#3) -- (b#3) node [midway](text1){};\draw(text1)++(0.4,0) node[#2]{\sf 3};
\draw[draw=none] (c#3) -- (d#3) node [midway](text2){};\draw(text2)++(-0.4,0) node[#2]{\sf 2};
\draw[draw=none] (g#3) -- (h#3) node [midway](text3){};\draw(text3)++(-0.4,0) node[#2]{\sf 1};
\clip (0,0)%Starting point
to ++(0,-1) % when use ++ you find a point relative to the starting point but shifted ++(xshift,yshift)
to [in=90, out=-90]++(-2,-1) %line direction from initial node in -90 degree direction and comes to the second in 90 direction, drawing a curved path.
to ++(0,-2)
to [in=90, out=-90]++(2,-1)
to ++(0,-0.5)
to [in=90, out=-90]++(-1,-1.5)
to ++(0,-0.1)
to [in=90, out=-90]++(1,-1.5)
to ++(0,-1)
to ++(-0.1,0)%go reverse shifted 0.1
to ++(0,1)
to [in=-90, out=90]++(-1+0.08,1.5)% +0.08 to get 0.02 of shifting in this point
to ++(0,0.1)
to [in=-90, out=90]++(1-0.08,1.5) %- 0.08 to compensate the value substracted and return to 0.1 shift value.
to ++(0,0.5)
to [in=-90, out=90]++(-2,1) % idem
to ++(0,2)
to [in=-90, out=90]++(2+0.08,1)
to ++(0,1)
to cycle;
\fill[inner color=black,outer color=#2](text1) circle (1.5cm);
\fill[inner color=black,outer color=#2](text2) circle (1.5cm);
\fill[inner color=black,outer color=#2](text3) circle (1.5cm);
\end{scope}
}
\def\cell(#1)[#2]{%#1:position, #2:ID
\begin{scope}[shift={(#1)}]
\Wire(0,0){red}[L#2](1)% All the cordinates are labeled as L(identifier) result in aL1,bL1 ... aL2,hL2...
\draw[thick] (0.25,0) -- ++(0,-9.6); % the middle line
\Wire(0.5,0){green}[R#2](-1) %All the cordinates are labeled as R(identifier) result in aR1,bR1 ... aR2,hR2...
\end{scope}
}
%Start drawing the thing...
\cell(0,0)[1]
\draw node at (0.25,0.5) {\sf Command; \verb+\cell(0,0)[1]+};
\cell(-5,0)[2]
\draw node at (-4.75,0.5) {\sf Command; \verb+\cell(-5,0)[2]+};
\cell(5,0)[3]
\draw node at (5.25,0.5) {\sf Command; \verb+\cell(5,0)[3]+};
\Wire(10,0){blue}[L4](1)
\draw node (comment1) at (7.5,-10.5) {\sf Command; \verb+\Wire(10,0){blue}[L4](1)+};
%Demostration nodes:
\draw[-Stealth,shorten >= 5pt,] (comment1) -- (hL4);
\draw[-Stealth,shorten >= 2pt,shorten <= 2pt] (fR2) -- (fL1) node [midway,align=center,anchor=south]{Node IDs \\ available};
%Find nodes
\draw node[anchor=east] at (bR1) {\sf Node \verb+bR1+} (bR1)[fill=red] circle (2pt);
\draw node[anchor=east] at (aR2) {\sf Node \verb+aR2+} (aR2)[fill=red] circle (2pt);
\draw node[anchor=west] at (aL2) {\sf Node \verb+aL2+} (aL2)[fill=red] circle (2pt);
\draw node[anchor=east] at (eL3) {\sf Node \verb+eL3+} (eL3)[fill=red] circle (2pt);
\draw node[anchor=east] at (fL4) {\sf Node \verb+fL4+} (fL4)[fill=red] circle (2pt);
\end{tikzpicture}
\end{document}
PSD: some spelling error corrected in line 84, first MWE; thanks to @manooooh.