If this was a democracy, I'd vote for option 2. There's a lot of content already out there, and it'd be nice to have it reasonably accessible. Option 4 is tempting, but it sounds like it'd be too much for those of us who can't program.
All four options should be available, they are not mutually excluding. Option two requires code, one, three and four are working (95% working).
What about using some default settings for characters who don't have a suitable picture for any particular category? The supplied picture(s) would override that, but if there's nothing in the pack for that field then it pulls out something generic but suitable.
We've discussed this and decided to do it differently, profile category picture will be used if pack is missing even the most basic types ("sex", "anal", "lesbian", "combat" etc.).
Special events will only run if pack has tags like ("sex", "outside", "nude", "ecstatic") on a single picture, some events might require less like ("lesbian", "outside") for example.
There are no special events yet, I think that the jobs are now more or less adapted to the new traits, tonight I am planning to add first special event, not yet sure how it'll turn out bu we'll see. Main problem is that jobs code wasn't written with advanced tags in mind and now texts might turn out to long or incoherent and the whole thing will require a rewrite (if that happens, it'll be post Alpha, we'll just release what we have now + whatever we manage to add without making texts look shitty).