Sketch-a-Sketch
VSAnimator/Sketch-a-Sketch加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有过这种感觉?看到 Midjourney、DALL-E 生成的那些惊艳图片,心里痒痒的,可真到自己写 Prompt(提示词)的时候,却怎么都写不出想要的效果——要么画面元素对不上,要么风格跑偏,要么细节丢失。Prompt 工程(prompt engineering)已经成为一门"玄学",普通人很难驾驭。
VSAnimator/Sketch-a-Sketch 正是为了解决这个痛点而生:它让你不需要写复杂的 Prompt,只画几笔草图,就能控制 Stable Diffusion 生成高质量图像。而且它还会主动"猜"你想画什么,给出下一步建议线条,让你像在玩一局 Pictionary 一样,一边画一边和 AI 互动。

图 1:用户输入的城堡简笔画——仅寥寥数笔
Sketch-a-Sketch 的核心技术栈建立在 ControlNet 之上。ControlNet 是一种神经网络结构,能够将额外的条件信号(比如草图边缘)注入到 Stable Diffusion 的生成过程中,让用户对画面构图拥有更强的控制力。
具体来说,项目使用 HED(Holistically-Nested Edge Detection)边缘检测器 来从用户的草图中提取高质量的线条图(edge map)。这个边缘图随后作为 ControlNet 的条件输入,引导 Stable Diffusion 在指定线条约束下生成图像。
整个流程如下:
用户绘制草图(RGB 图像)
↓
HED 边缘检测 → 二值化线条图(阈值 250)
↓
ControlNet + Stable Diffusion v1.5
↓
生成最终图像
Sketch-a-Sketch 的最大创新不是技术本身——HED + ControlNet + SD 的组合在 2023 年已经很常见——而是它的交互范式。
它将 AI 图像生成类比成"你画我猜"(Pictionary):
这大幅降低了使用 AI 生图的门槛——不需要学会写 Prompt,只需要会画简笔画。
项目自带 Gradio 界面,提供两个核心标签页:
| 标签页 | 功能 |
|---|---|
| Sketch | 画布区域,用户在此绘制草图,点击 "Render" 生成图像 |
| Suggested Lines | 查看 AI 推荐的下一笔建议线条 |
每次渲染默认生成 3 张候选图像供选择。用户可以通过 "Reset" 清空画布重新开始。
⚠️ 注意:Gradio 存在一个 bug——在完全空白的画布上点击 Render 会出问题,所以至少要先画一笔。
克隆仓库后,安装依赖并运行即可:
git clone https://github.com/VSAnimator/Sketch-a-Sketch.git
cd Sketch-a-Sketch
pip install -r requirements.txt
python demo.py
依赖包括:gradio、diffusers、controlnet_aux、accelerate、transformers、torch。
项目使用 float16(半精度)推理,实测最低需要 6GB 显存的 NVIDIA GPU(如 RTX 3060)。无 GPU 则无法运行,这是最大的硬件门槛。
从 demo.py 代码可见完整链路:
vsanimator/sketch-a-sketch(HuggingFace Hub 托管的定制 ControlNet)runwayml/stable-diffusion-v1-5)pipe.safety_checker = None)代码中固定参数:
controlnet_conditioning_scale = 1.0(ControlNet 影响力拉满)threshold = 250(边缘检测二值化阈值)当前访问项目提供的 HF Space 演示(huggingface.co/spaces/vsanimator/sketch-a-sketch-demo),页面标题已变更为 "Sketchcomplete",且运行时抛出错误:OSError: vsanimator/sketch-a-sketch does not appear to have a file named config.json。
这意味着项目的 HuggingFace 在线演示已无法正常工作。用户如果想体验,只能本地部署。
HF Space 标题变为 "Sketchcomplete" 暗示项目可能已改名或迁移。建议关注 GitHub 仓库是否有相关公告,以确认项目当前状态。
| 局限项 | 说明 |
|---|---|
| 显存门槛 | 至少 6GB GPU,无 CPU fallback |
| 模型下载 | 需下载 SD v1.5(~4GB)和 ControlNet(~1.3GB),国内下载慢 |
| 草图质量 | 线条过于潦草或风格偏离常规,生成效果仍可能不佳 |
| 无 Dockerfile | 无法一键部署,需手动配置 Python 环境 |
ControlNet 于 2023 年初开源后,迅速成为 AI 生图领域的"神器"。Sketch-a-Sketch 在 ControlNet 生态中找到了一个独特的切入点:用"少即是多"的理念降低交互门槛。
它的核心洞察是:与其让用户写复杂的 Prompt,不如让用户画几笔——因为画简笔画比写 Prompt 更容易、更直观。这与斯坦福大学"Anthropic"式的人机交互哲学不谋而合:让 AI 适应人类习惯,而不是让人类适应 AI 规则。
从增长数据看,该项目虽然只有 66 stars,但属于 ControlNet + sketch-to-image 细分赛道,结合 ControlNet 生态的活跃度(如 ControlNet 本身超过 27,000 stars),Sketch-a-Sketch 作为细分工具仍有一定参考价值。
pip install -r requirements.txt → python demo.py,在本地 Gradio UI 中体验
图 2:基于图 1 草图生成的城堡图像——AI 成功"猜对"了用户意图

图 3:AI 推荐的下一步建议线条——告诉用户该往哪里画