How can I create an ElementCriteriaModel with 'and' and 'or'
It’s not currently possible to specify both of those conditions at once with the relatedTo param, so you would have to do it with two separate queries.

First, get all of the asset IDs that are related to the upload entries:

{% set uploadAssetIds = craft.assets.relatedTo(uploads).ids() %}


(Note that the relatedToUploads variable is not actually necessary here.)

Then you would get all of the assets whose ID falls within one of the uploadAssetIds, and who are related to all of the tag IDs.

{% set relatedToTags = ['and'] %}
...

{% set assets = craft.assets.id(uploadAssetIds).relatedTo(relatedToTags) %}