Here's my 3d printed valve spring compressor tool. It uses 4 cam cap bolts and two M6 flange nuts from my donor hardware pile. I would not advocate that you run a cam cap bolt in and out 16 times here and then reuse it in the motor so you may want to use your own bolts, but the cam cap bolts are ideal for their length of engagement relative to the displacement needed to compress a spring far enough to remove and install the keepers.
The version pictured below is PETG, an earlier revision was PLA+ and while the cups had issues, the bridge did not. The bridge is printed with the
M6 flange nuts go in the bottom of the bridge. There are recessed hexes to keep the nuts from spinning. Friction pads go on the bottom of the extension bolts and are a pretty nice press fit. Caps sit on top of the retainers, and then extension bolts are run down. If you run out of threads, you've gone more than far enough. Unfortunately a completely uncompressed valvespring is long enough that it will still have a little spring pressure even with the extension bolts run all the way back out, but not so much that reinstallation is a pain.
A dab of assembly lube on the keeper grooves of the valve stem works wonders to get the keepers back in, and a dab of lube between the friction pads and the retainer cups keeps all the plastic happy.
From what I read, the intake and exhaust valves are canted at 16 and 18°, so this thing splits the difference at 17°. The angle offset didn't seem to make a difference. I did run one upgraded/stiffer valve spring all the way down by itself, but I would recommend running each pair of springs for a cylinder down a bit at a time each so as to not unnecessarily stress the part.
Ignore the nasty print, I had an issue early on before the introduction of the friction pads where the bolt head would end up going through the retainer cups. I tried a few different redesign/approaches, and one of them broke after I got only one keeper out of a retainer, so I ran this version again and added the friction pads. In my haste I didn't update my print settings for a material change, but it worked just fine, so here we are.