An alternative to using the subdivision modifier is to bevel the edges of the cushion and armrest.
Start by cleaning up the mesh:
- Delete the Subdivision modifier.
- Edit mode > with all selected > Mesh > Clean Up > Limited Dissolve
- Remove existing UV seams : with all selected > U > Clear Seam.
Next bevel the edges:
- With all selected > Ctrl B, to open the Bevel parameters and change the bevel Width value as needed and set the Segments to 4. (An even number will result in correct corner edges which will be needed when marking UV seams).
Now we are ready to add back the UV seams:
Where we add UV seams can vary depending how you want the texture to be mapped to the mesh. In this example we want the top and side to unwrap as a single UV island and so we add seams along each corner and along the the edges of the bottom face. See gif anim. below.
- Select the appropriate edges the U > Mark Seams.
And Finally the faces can be set to smooth shading:
- Edit mode with all selected > Face > Shade Smooth.
If necessary the UV's can now be edited to suit the alignment of the texture and or rescaled for example for baking so that the visible faces of the mesh occupy more of the UV space :