Those cards perform similarly in games. 7970 may jump ahead when overclocked but for the cost of high power consumption. Honestly, both cards will provide you the same level of smoothness and satisfaction, you can be sure of that. A GTX 670 when overclocked can also reach and well surpass the gaming performance of a stock GTX 680.
Nvidia GTX 670:
- Pure gaming card with high 3d capability
- Acceleration in CUDA and OpenCL -- CUDA and OpenCL lets your GPU compute stuff instead of your CPU and get the work done much more quickly (like some media/content creation apps and some games will take advantage of this in the future))
- Relatively low power consumption
- Price much cheaper than that of a GTX 680 but can reach the same level of performance
- Potential to overclock
- In some games better than HD 7970
- Integrated GPU Physx engine, 3d support, bundled games etc
The 670 and the 680 has nearly identical gaming performance.
AMD HD 7970:
- Very strong gaming card with strong compute capability in OpenCL acceleration (often faster than Nvidia cards in OpenCL computing)
- Some higher power consumption compared to GTX 670
- High potential for overclocking with a custom cooler. Same PCB and same specifications with 7970 Ghz Edition. Theoretically you can reach at and well beyond the performance level of Ghz edition and GTX 680, IF YOU OVERCLOCK
- In some games better than GTX 670
- Higher memory bandwidth
- Good multi monitor support
- 3d support (i don't know which card is better at this)
At last, this is all about what you want to do with your PC. If mostly gaming, choose whichever you can find cheaper. Finally, you can't go wrong whichever you choose.. any one of them will give you a mind blowing performance.