Step 1: Rewrite the curve.
Given curve is
\[
y^2-2x^3-4y+8=0
\]
Rearranging the terms involving \(y\),
\[
y^2-4y+8=2x^3
\]
Completing the square,
\[
(y-2)^2+4=2x^3
\]
So,
\[
(y-2)^2=2x^3-4
\]
Step 2: Check whether the given point lies on the curve.
Substitute \((1,2)\) in the curve:
\[
2^2-2(1)^3-4(2)+8
\]
\[
=4-2-8+8
\]
\[
=2\neq 0
\]
Hence, \((1,2)\) does not lie on the curve.
Step 3: Find the tangent condition.
Let the tangent point on the curve be \((a,b)\). Since \((a,b)\) lies on the curve,
\[
b^2-2a^3-4b+8=0
\]
Differentiating implicitly,
\[
2y\frac{dy}{dx}-6x^2-4\frac{dy}{dx}=0
\]
\[
(2y-4)\frac{dy}{dx}=6x^2
\]
\[
\frac{dy}{dx}=\frac{3x^2}{y-2}
\]
Therefore, slope of tangent at \((a,b)\) is
\[
m=\frac{3a^2}{b-2}
\]
Step 4: Use condition that tangent passes through \((1,2)\).
The slope of line joining \((a,b)\) and \((1,2)\) is
\[
\frac{b-2}{a-1}
\]
Since this line is tangent,
\[
\frac{b-2}{a-1}=\frac{3a^2}{b-2}
\]
Thus,
\[
(b-2)^2=3a^2(a-1)
\]
From the curve,
\[
(b-2)^2=2a^3-4
\]
Equating both expressions,
\[
2a^3-4=3a^2(a-1)
\]
\[
2a^3-4=3a^3-3a^2
\]
\[
a^3-3a^2+4=0
\]
\[
(a-2)^2(a+1)=0
\]
So,
\[
a=2 \quad \text{or} \quad a=-1
\]
Step 5: Check valid tangent points.
For \(a=2\),
\[
(b-2)^2=2(2)^3-4=16-4=12
\]
So real values of \(b\) exist.
For \(a=-1\),
\[
(b-2)^2=2(-1)^3-4=-2-4=-6
\]
This is not possible for real \(b\).
Thus, only \(a=2\) gives real tangent points. Although two points are obtained for \(b\), both give the same tangent line passing through \((1,2)\).
Therefore, the number of tangents is
\[
1
\]
Step 6: Final conclusion.
Hence, the required number of tangents is
\[
\boxed{1}
\]