Why does my texture image join badly at the edges? Bad UV unwrapping?
You are using the default UV Map for a torus, which should (and does work) provided you make a small change to the shader.  Here's your original texture node:

In this case, the interesting setting is the 2nd one

This flat projection produces the torus you have in your question

If you change the type in the drop down menu from &quot;Flat&quot; to &quot;Tube&quot;

The problem goes away, but the project changes so that the UV map is on the other side of the Torus:

There ways I solve this later problem: simply reposition the torus so the part you want exposed is visible to the camera
The image texture is trying to map a 2D UV map onto a 3D object.  If you give it guidance by marking seams then you've actually created a flat (almost) representation of your 3D object and &quot;Flat&quot; works.  But if you count on the various smart UV unwrapping modes, they rely on you hinting the geometry of your object in the image texture settings.
There are a very long list of possible combinations, each requiring a slightly different approach to the settings, which is why most tutorials on UV mapping go directly to &quot;mark seams, make flat&quot;.  The problem with doing this with a Torus is that if I mark the obvious seams:

The resulting uwrap:

has several problems.  It doesn't match you image texture.  It doesn't use very much of the space available.  You can cut the Torus into pieces to fix the later, but the only way to fix the former is to redo the texture painting.
This is why, by the way, the workflow for texturing is to first create the UV Map, then test it with a UV checker, and only then to create the image texture.