Make a copy of a perfab without showing it

Hi, I wanna make a copy of some perfabs so that I can Instantiate copies and make changes on these copies without changing perfabs ! I tried this

        Ball1Copy =(GameObject)(Ball1);
        Ball2Copy = (GameObject)(Ball2);
        Ball3Copy = (GameObject)(Ball3);
        Ball4Copy = (GameObject)(Ball4);

but when I make change on copies perfabs also change !
I tried also this :

            Ball1Copy = Instantiate(Ball1) as GameObject;
            Ball2Copy = Instantiate(Ball2) as GameObject;
            Ball3Copy = Instantiate(Ball3) as GameObject;
            Ball4Copy = Instantiate(Ball4) as GameObject;

but they are showing in the scene (what I don’t want ^^)

Make the original object inactive

When you need to make it visible:
Ball3Copy.SetActive(true);