I believe you are running into a version of what is called the “terminator problem”. This was something that I encountered in low-poly curved surfaces that used smooth shading (Gouraud shading if I recall correctly) to approximate a smooth surface by interpolating surface normals based off vertex normals. I may not have explained that well, but when an object has so little geometry, there is a disconnect or discontinuity at points between interpolated normals of geometry that is lit by a light and geometry that isn’t lit by a light. Basically, I’m saying you have an interpolation problem.
Your underlying topology is asking Blender’s subdivision surface modifier to do some educated guessing on how you want your object to look, but it isn’t providing much information, it and it does its best to do what you want by interpolating the data you gave it. Both the sofa and the sphere suffer from this problem, but it is mostly hidden on the sphere in the crease of the geometry. You have a quad in your sofa that is front and center to the area that makes your sofa look puffy. Here it is:
The subdivision surface modifier tries to subdivide that geometry in a clean way, but there isn’t a really clear way to do that. I tweaked that to add back in a loop where there was one edge and made it three, and that cleared things up:
See how less puffy it looks:
Let me know if you have any questions. It is a pretty easy fix, but if you need step by step, please let me know.