* Moche: This is the most direct opposite, meaning "ugly."
* Laid: This is another word for "ugly," slightly more formal than "moche."
* Pas joli: This literally means "not pretty," which is a neutral way to say the opposite.
* Désagréable: This means "unpleasant," which could be used for something that isn't aesthetically pleasing.
* Repoussant: This means "repulsive" and is a stronger negative than "moche."
The best choice will depend on the specific situation and what you want to convey.