Applying a humanoid description with a hat accessory value on it on a rig that is parented under workspace will work as expected.
However doing the same while the rig is in a gui will cause the position of the accessory to be off.
An example with the Paper Hat (10476359) accessory will result in its position being above the player slightly behind.
I believe this could be intended as long as you don’t have a WorldModel? The whole reason why accessories attach to a character after you add the accessory is because of their Weld afaik which isn’t evaluated in a ViewportFrame because physics isn’t enabled without a WorldModel.
Thanks for your response as this did fix the issue, however i don’t see why having the model be physics based just to apply an accessory is a thing. This fix should serve as a workaround for this issue.