After researching a bit more, I found this StackExchange answer. Their answer is very informative, and includes a partial translation of a Japanese research paper (which I'm sadly not at the level of being able to read). It concludes
～ません and ～ないです are semantically equivalent, but ～ないです is softer and less insistent. If you need to give a firm denial with no wiggle room, go with ～ません. But since this level of bluntness can be inappropriate in some situations, ～ないです is there if you need it.
An important caveat was brought up by Tsuyoshi Ito in a comment on that answer.
An important fact about this paper is that it only discusses 自然談話 (spoken language?) (see section 2). According to the results cited in the paper, ません is overwhelmingly more common than ないです in written text.
On the other hand, ～ないです is apparently considered incorrect by some speakers. The Wiktionary page on ない says,
Generally, ません (masen) and ませんでした (masen deshita) (past) are the recommended formal negative endings, instead of the somewhat less formal ないです (nai desu) and なかったです (nakatta desu), which are considered incorrect by conservative speakers.
This was also pointed out in the comments of the linked SE answer, though they seem to view it as a non-issue.
～ないです may not be correct from a linguistic standpoint (as to why, I have no idea), but it's so firmly entrenched in modern Japanese usage that by every other standard it's a perfectly valid form.
Also, from my searches I found this comment on r/LearnJapanese (which is one data point on the internet, but it's something.)
They both mean same:)
However, people tend to use ”nai desu“ more, especially in conversation.
This is because “masen” has a bit strong nuance because it ends with denial “n”, and “nai desu” is softer nuisance because it ends with polite”desu”.
So you can use both, but especially in conversation “nai desu” is more fluent and natural:)
All this to say,
- ません is more formal and firmer than ないです.
- ません is therefore used more in text and ないです is used more in the spoken language.
- ないです is commonly used even though it is considered incorrect by some speakers.