My first response is ... how does the bride feel about you wearing black? It used to be that, wearing black was a form of protest. but today's times, it is a very common color in weddings. So I suggest, If the bride is ok with it, go for it, but give it some thought. There are a lot of other colors out there, that are bright and cheery for the cheerfull event, that would go with their color scheme. I really don't think you should wear black if it is a very formal wedding.
For women, semi-formal attire is somewhat flexible. Women can wear a dress, pant suit or dress suit. Preferred fabrics for semi-formal attire for women include silk, velvet, rayon, cashmere, high quality polyester brocades, or velour. Usually, anything silky goes. Except for cashmere, a wool business suit is not considered semi-formal attire since it is not dressy enough.
Hem lengths in semi-formal attire dresses vary. Dresses can be cocktail dresses, no more than an inch above the knee, or they can extend to the ankle. Dress suits, for example, a silk suit, usually has a hem length slightly above, at or below the knee. Pants suits, again in silk, polyester, or cashmere, tend to be worn at the ankle. One can also wear dressy tops and tuxedo pants made out of appropriate fabrics and still fit into the semi-formal attire group.
Generally semi-formal attire also means dress heels for women, usually in colors coordinating with one’s outfit. However, a dressy flat or strappy sandal with the appropriate outfit is also considered semi-formal attire. Low, comfy flipflops are not dressy enough to be called semi-formal attire.
For men, semi-formal attire means wearing a full suit, with vest optional. A tie, either bow or straight, should be worn, and the shirt should be a simple button down. Suit fabric choices are primarily wool gabardine or cashmere. However, a wool blend will do. Linen or seersucker suits are not formal enough for semi-formal attire. Dress shoes like oxfords are worn. It is not necessary to wear a tuxedo, and one might be considered a bit overdressed for a semi-formal event showing up in a tu