Take a look at this writeup by Paula Burch:
Paula Burch is a hobbyist dyer that also happens to be a scientist with a PhD. I’ve found her website, along with the Dharma Trading Information Center, the most useful for learning more about dyeing. I came across the pburch.net website a while ago when searching for more information on dyeing nylon/spandex blends, such as powernet. (Her answer confirmed my instincts: it is a balance between keeping the dye bath hot enough for the acid dye to actually work and remembering that spandex does not like excessive heat.)
I see many, many people recommend vinegar for stopping color bleed. Ever since I started dyeing fabrics myself I really started to question this. Dyes typically used for cotton and other cellulose (plant-based) fibers use soda ash as part of the process. When you add the soda ash to the dye bath it raises the ph, which encourages the dye to chemically bond to the fabric. So using vinegar, which makes the water it is added to more acidic, doesn’t make sense.
Now acid dyes, typically used to dye silks and wool (along with nylon), do use vinegar and citric acid as part of the dye process. However, acid dyes require heat in addition to vinegar in order to create the chemical reaction that fixes the dye. After adding the vinegar/citric acid (which is done at around 120°F) the dye bath needs to be slowly heated to 185ºF (85°C) for silk. I’m still there stirring the fabric in the dye bath, keeping at that 185°F temperature, for at least another half hour after adding the vinegar or citric acid. It really isn’t a matter of adding some vinegar when you throw it in the washing machine.
Here’s another catch with acid dyes: the leveling class dyes (which is what most of the Dharma Trading acid dyes are) are known for dyeing very evenly. But that same characteristic means that the dye bonds are easily broken, especially when washed in water over 105°F/40°C. (Source: How Acid Dye Works.) That’s why most manufacturers and fabric retailers recommend dry cleaning silk. It is less about protecting the fabric and more about preserving the dye job.
I hand wash my silks but I always use cool water, and I accept that there’s going to be a certain amount of color bleed. Blues seem to be the worst – I read somewhere this is due to the blue dye molecules being slightly larger in size. I do add white vinegar to the rinse, but this is to help balance the ph of my slightly alkaline water rather than to set the dye. Silk and wool prefer a slightly more acidic environment, so adding the vinegar helps lower the ph and remove mineral build-up from my hard water. The result is a softer, more lustrous fabric. (I use a diluted vinegar rinse for my hair at least once a week for the same reason.)
In case if you’re wondering about using salt to fix dyes, that doesn’t work either.
The one thing that probably will help is using Retayne. (I use the Dharma Dye Fixative, which is probably the same thing.) This treatment is almost like glue in that it creates a physical rather than chemical bond of the excess dye to the fabric. I found it extremely helpful when I dyed some silk using Sapphire Blue, which is a leveling dye with a poor washfastness rating. If you do use Retayne or Dharma Dye Fixative, make sure you always wash the fabric in cool water after treatment. If you wash it with hot water it will just remove the Retayne.