Procedural Generation is a broad area. You can use procedural generation to generate terrain, textures, models, growth-behaviour of plants, missions/quests and so on.
With my restricted knowledge about pg, I think that I can assure you that if you really want to generate everything procedurally it will be a long way.
I would suggest you read more into procedural generation and determine what you should start first (mesh generation for example?).
There is a textbook about that topic which gives a good and, what is more important, up-to-date overview. You can find it here http://pcgbook.com/.
My experience so far:
You can use Blender to generate the mesh of a object. I let blender create basic objects like a sphere or a cube. Then the algorithm manipulates the object (it's vertices, faces, size,...).
I also tried to generate textures for the object. I used the pillow-library (https://github.com/python-pillow/Pillow) for that. For my project we need about 3 or 4 textures which all have 2K Resolution. I noticed really fast that when I use python-modules, which weren't baked via C++, it gets tremendously slow (Pushing a button and need to wait for 20-30 seconds isn't great for a tool which should be used for game development). So I wrote a C++-Application, which communicates with Blender/Python and does the generation stuff.
And yes, I know that Blender is able to procedurally generate textures with different noises. But we need more control over the generation. And Blender's way wasn't what I wanted.
Regarding to your question about the file size:
It depents. If you are using procedural generation to generate the assets in realtime then you will have a reduces file size. Most of the time. But that does also mean that you need to write good (e.g. optimized) code. When for example your shaders are slow your game will be slow.
But you can also go the way to pre-generate some of your assets and deliver them directly with your game. This can be helpful for computationally intensive calculations or if the 'making it in realtime' is to complicated and the benefit isn't much.