1作者: tsanummy19 天前原帖
我一直在进行一个项目,旨在弥合人工智能生成与我的AxiDraw之间的差距,我认为我终于找到了一个可以避免常见麻烦的工作流程。 如果你尝试过绘制AI生成的图像,你可能知道其中的困难:通用的追踪工具(如Potrace)只追踪线条的<i>轮廓</i>,导致出现双重笔画,破坏了视觉效果,并且绘制时间翻倍。 我之前尝试过的方式: - Potrace / Inkscape Trace:对于填充形状效果很好,但对于线条艺术则产生“空心”线条。 - Canny边缘检测:通常过于杂乱;它会拾取噪声并产生抖动的路径。 - 标准SDXL:在几何一致性方面表现不佳,常常断线或产生幻觉透视。 - 一堆声称是txt2svg的项目,但在笔绘制方面产生的结果极差。(如Chat2SVG、StarVector、OmniSVG、DeepSVG、SVG-VAE、VectorFusion、DiffSketcher、SVGDreamer、SVGDreamer++、NeuralSVG、SVGFusion、VectorWeaver、SwiftSketch、CLIPasso、CLIPDraw、InternSVG) 我的方法: 我最终编写了一个Python工具,结合了几种特定技术,以获得真正的“中心线”矢量: 1. 提示工程:一个大型语言模型(LLM)重写提示,以强制执行针对生成器优化的“技术绘图”风格。 2. 生成:我使用Flux.2-dev(4位)。它在保持直线和一致几何方面似乎显著优于SDXL。 3. 骨架化:这是关键部分。与其追踪轮廓,我使用Lee的方法(通过scikit-image)将图像腐蚀到1像素宽的骨架。这恢复了实际的笔画路径。 4. 图形转换:将像素骨架转换为图形,以识别节点和边缘,修剪小的伪影/噪声。 5. 优化:最后,我将其输入vpype,以合并段落并对路径进行排序(TSP),以避免绘图时的频繁跳动。 你可以在Github仓库中的示例中查看结果: [https://github.com/malvarezcastillo/txt2plotter](https://github.com/malvarezcastillo/txt2plotter) 该项目目前相对简单,但产生的结果优于我测试过的其他选项,因此我决定发布它。我对实现更好的前/后处理、基于API的生成以及识别交叉阴影的形状感兴趣。