GitHub policy itself is clear:
For best performance, we recommend repositories be kept under 1GB each. This limit is easy to stay within if large files (typically, binaries) are kept out of the repository. If your repository exceeds 1GB, you might receive a polite email from support requesting that you reduce the size of the repository to bring it back down under 1GB.
In addition, we place a strict limit of files exceeding 100 MB in size.
And more generally, I have explained why Git won't perform well with huge file or huge repo.
Having "one" repo for your project is a legitimate constraint.
But you have to split your sources in several repos, that you can put back together through submodules.
That way, you have one (very small) parent repo which reference several (not too big) source repos, all of them on GitHub.
For static (ie which don't change much or ever) sources like pictures, it is best to store them in another referential entirely, and have hooks in place which can, on checkout, get those resources back in your working directory.