What's wrong with my understanding of the Freyd-Mitchell Embedding Theorem? It's truly bizarre that there exists no full modern exposition of this theorem, as noted elsewhere. Anyway, I thought I'd poke through and see if I could get the gist of how it works as somebody who has familiarity with categorical techniques, if not abelian techniques.
Here's how it goes, following Swan and wikipedia. We have a small abelian category $\mathcal{A}$, and we want a full exact embedding into the category of modules for some ring. The first step is to take the Yoneda embedding $\mathcal{A} \to \mathcal{L}^\mathrm{op}$, where $\mathcal{L} = \mathrm{Lex}(\mathcal{A},\mathsf{Ab})$. There are other ways to denote $\mathcal{L}$ -- it's $\mathrm{Ind}(\mathcal{A}^\mathrm{op})$, or $\mathrm{Pro}(\mathcal{A})^\mathrm{op}$. So it's a general fact that this embedding is exact, and I totally believe that $\mathcal{L}^\mathrm{op}$ is abelian.
But unless I'm reading something wrong, the point is that $\mathcal{L}^\mathrm{op}$ actually is a category of modules over a ring -- one constructs a projective generator in it. This can't be right. Because $\mathcal{L}^\mathrm{op} = \mathrm{Ind}(\mathcal{A}^\mathrm{op})^\mathrm{op}$ is the opposite of a locally presentable category! So $\mathcal{L}^\mathrm{op}$ can't be locally presentable (the opposite of a locally presentable category is never locally presentable unless the category is a preorder -- cf the nlab Counterexample 7, or Thm 1.64 in Adámek and Rosický), and hence it can't be the category of modules over a ring.
What am I misunderstanding? The obvious thing to do is to dualize and embed $\mathcal{A}$ into $\mathrm{Lex}(\mathcal{A}^\mathrm{op},\mathsf{Ab}) = \mathrm{Ind}(\mathcal{A})$, which is locally presentable. But if you do this it seems it would take some kind of miracle for the generator to be projective.
 A: I just wanted to outline a proof of the Freyd-Mitchell embedding theorem that even I can understand.
Proposition 1. If $\mathcal{A}$ is an abelian category, then $\mathrm{Ind}(\mathcal{A})$ is abelian, and the inclusion $\mathcal{A} \to \mathrm{Ind}(\mathcal{A})$ is fully faithful, exact, takes values in compact objects, and preserves generators and projective objects.
Proof. The fully faithfulness, exactness, and compactness are standard (true for any category $\mathcal{A}$ whatsoever). For abelianness, see here. The preservation of generators is not hard to see using the "quotient of a coproduct" characterization of generators in a category with coproducts. The preservation of projective objects follows from the fact that every epimorphism in $\mathrm{Ind}(\mathcal{A})$ is the cokernel of a levelwise map of filtered colimits of objects of $\mathcal{A}$.
Proposition 2. Any locally finitely presentable category $\mathcal{C}$ contains an injective cogenerator $I$.
Proof. By the small object argument, it's easy to construct an object $I$ which is injective with respect to monomorphisms between small objects. Then an induction on the rank of objects, similar to the one here, shows that $I$ is actually injective with respect to all monomorphisms. In the abelian case, this is also an old theorem of Grothendieck.
Proposition 3. A cocomplete abelian category $\mathcal{A}$ with a compact projective generator $P$ is equivalent to the category of $\mathrm{End}(P)$-modules.
Proof. The functor $\mathcal{A}(P,-): \mathcal{A} \to \mathrm{End}(P)\mathrm{-Mod}$ preserves all colimits and is fully faithful on the object $P$. One shows that the subcategory of $\mathcal{A}$ on which the functor is fully faithful is closed under colimits, so is all of $\mathcal{A}$. So this functor embeds $\mathcal{A}$ as a full subcategory of $\mathrm{End}(P)\mathrm{-Mod}$ closed under colimits and containing $\mathrm{End}(P)$, which thus is all of $\mathrm{End}(P)\mathrm{-Mod}$.
Theorem. If $\mathcal{A}$ is a small abelian category, then there is a fully faithful, exact embedding of $\mathcal{A}$ into a category of modules over a ring.
Proof. First embed $\mathcal{A}$ into $\mathrm{Pro}(\mathcal{A}) = \mathrm{Ind}(\mathcal{A}^\mathrm{op})^\mathrm{op}$; by Proposition 1 this category is abelian and the embedding is fully faithful and exact. It is also the opposite of the locally (finitely) presentable category $\mathrm{Ind}(\mathcal{A}^\mathrm{op})$, so it contains an projective generator $P$ by Proposition 2. Let $\mathcal{B} \subset \mathrm{Pro}(\mathcal{A})$ be closure of $\mathcal{A} \cup \{P\}$ under finite limits and colimits; this is a full abelian subcategory, and the inclusion $\mathcal{A} \to \mathcal{B}$ is fully faithful and exact. By Proposition 1, so is the inclusion $\mathcal{B} \to \mathrm{Ind}(\mathcal{B})$, and moreover, $P$ is a compact projective generator in $\mathrm{Ind}(\mathcal{B})$. So by Proposition 3, the emedding $\mathcal{A} \to \mathrm{Ind}(\mathcal{B})$ is the desired embedding.
A: You don't show that $\mathcal{L}^{op}$ actually is a category of modules, just that any small subcategory of it fully and exactly embeds in one.  Indeed, an abelian category with a projective generator is not usually equivalent to a category of modules: it only is if the projective generator is compact (and the category is cocomplete).  In the case of $\mathcal{L}^{op}$, there is no reason to expect the projective generator to be compact.
Note that in general, a projective generator doesn't even necessarily give a full embedding into a category of modules, let alone one that is essentially surjective on objects.  However, if you have a projective generator $P$ that can actually surject onto every object, then $\operatorname{Hom}(P,-)$ does give a fully faithful exact embedding into $R\text{-Mod}$ where $R=\operatorname{End}(P)$ (but then it won't be essentially surjective on objects, since if such a $P$ exists your category won't be cocomplete).  Such a $P$ will exist for any small subcategory of $\mathcal{L}^{op}$ (just take a direct sum of enough copies of your projective generator), and in particular for the image of $\mathcal{A}$.
Here's a simple example where a projective generator does not give a full embedding (a special case of Jeremy Rickard's suggestion in the comments).  Let $k$ be a field and consider $k$ as an object of $k\text{-Mod}^{op}$.  Then $k$ is a projective generator, and the embedding it gives is just the duality functor $k\text{-Mod}^{op}\to k\text{-Mod}$.  This is not full: if $V$ and $W$ are infinite-dimensional vector spaces, then not every linear map $W^*\to V^*$ is the dual of a linear map $V\to W$.
Here is a different sort of example that I think is also instructive.  Take the category of countable abelian groups, and by Lowenheim-Skolem take a countable subcategory $\mathcal{C}$ that is an elementary substructure (over the language of categories) and contains the objects $\mathbb{Z}$, $\bigoplus_\mathbb{N}\mathbb{Z}$, and all homomorphisms $\mathbb{Z}\to\bigoplus_\mathbb{N}\mathbb{Z}$.  Then $\mathbb{Z}$ will still be a projective generator for $\mathcal{C}$, and so it gives a faithful exact embedding $\mathcal{C}\to\mathcal{Ab}$ which sends $\bigoplus_\mathbb{N}\mathbb{Z}$ to $\operatorname{Hom}_{\mathcal{C}}(\mathbb{Z},\bigoplus_\mathbb{N}\mathbb{Z})=\bigoplus_\mathbb{N}\mathbb{Z}$.  But the inclusion is not full, since $\mathcal{C}$ is countable and hence $\operatorname{Hom}_{\mathcal{C}}(\bigoplus_\mathbb{N}\mathbb{Z},\bigoplus_\mathbb{N}\mathbb{Z})$ is countable, but $\operatorname{Hom}_{\mathcal{Ab}}(\bigoplus_\mathbb{N}\mathbb{Z},\bigoplus_\mathbb{N}\mathbb{Z})$ is uncountable.
