Good question. Essentially, you cannot do that if you're using another data source to store the metadata outside the TON Blockchain. This is because the metadata, which includes the content of each NFT, can be easily manipulated by the project team.
This repository (https://github.com/disintar/DTN/blob/main/notes/onchain-reveal.md) presents an alternative way to implement an on-chain method for revealing the NFT content, which is more transparent and fair.
You can also refer to the NFT item contract code for the username NFT on Fragment.com & the Telegram Team (https://github.com/TelegramMessenger/telemint/blob/main/func/nft-item.fc).