Why asking an AI to 'give me the SVG' of an image always twists something
Language models can write SVG code but cannot see your image well enough to reproduce it. What happens when you try, and why a vectoriser is the right tool.
It is a natural idea: the assistant just made the logo, so ask it for the SVG version. What comes back is valid SVG code that looks vaguely like the design and is wrong in every detail: proportions off, a curve replaced by a straight line, colours approximated, a letter shaped like a different letter. Ask again and you get a different wrong version.
The model did not draw the image
In a chat product the picture is made by a separate image model that outputs pixels. The language model that answers you never had a shape description of that picture; it only sees a downscaled bitmap, if it sees it at all. When you ask for SVG it is not exporting anything. It is writing new code from a rough visual impression and from what logos usually look like.
Writing shapes from a description is guesswork
Even a human designer cannot type the coordinates of a Bézier curve by looking at a picture. They draw it with a tool and adjust until it matches. A language model types the coordinates in one pass, with no way to look at what it produced and compare. Small errors in every number add up to a shape that is recognisably off.
What it is good at
Simple geometric icons described in words: a circle with a bar, a rounded square, three lines. If your logo is that simple, asking for SVG can work, and you get tidy, editable code. For anything with custom letterforms, curves that matter, or gradients, it will not match the picture.
The right tool: measure, do not imagine
A vectoriser starts from the actual pixels and measures them: where each edge is, to a fraction of a pixel; which colours are flat and which are gradients; where the corners are. svgize goes one step further and fairs the slight waviness that AI renders always carry, so the result is both faithful and clean. The output matches the picture you approved, not a guess about it.