
基于文本生成高质量矢量草图的新方法
DiffSketcher是一个基于潜在扩散模型的文本引导矢量草图合成项目。它可以根据文本描述生成高质量的矢量草图,支持素描、油画和彩色图像等多种风格。该项目提供灵活的参数配置,如调整笔画数量和迭代次数,并支持与风格迁移技术结合。DiffSketcher为艺术创作和图像生成领域提供了新的可能性。
本仓库包含了我们NeurIPS 2023论文的官方实现:DiffSketcher:基于潜在扩散模型的文本引导矢量草图合成,该方法可以根据文本提示生成高质量的矢量草图。

DiffSketcher渲染过程:
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/a03dee8d-c7b3-495f-b8d9-0bbb820a02b2.gif" style="width: 200px; height: 200px;"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/209536a6-101c-43dc-98ee-7a843bb257de.gif" style="width: 200px; height: 200px;"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/37dd8352-fd2d-4f89-b1fe-224bcc00ea79.gif" style="width: 200px; height: 200px;"> |
|---|---|---|
| 提示词:全彩金刚鹦鹉,超级详细,写实,极其美丽 | 提示 词:非常详细的杰作画作,尤达宝宝拿着光剑 | 提示词:晴天帆船在海上航行 |
创建新的conda环境:
conda create --name diffsketcher python=3.10 conda activate diffsketcher
安装pytorch和以下库:
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia pip install omegaconf BeautifulSoup4 pip install opencv-python scikit-image matplotlib visdom wandb pip install triton numba pip install numpy scipy timm scikit-fmm einops pip install accelerate transformers safetensors datasets
安装CLIP:
pip install ftfy regex tqdm pip install git+https://github.com/openai/CLIP.git
安装diffusers:
pip install diffusers==0.20.2
安装xformers(需要python=3.10):
conda install xformers -c xformers
安装diffvg:
git clone https://github.com/BachiLi/diffvg.git cd diffvg git submodule update --init --recursive conda install -y -c anaconda cmake conda install -y -c conda-forge ffmpeg pip install svgwrite svgpathtools cssutils torch-tools python setup.py install
docker run --name diffsketcher --gpus all -it --ipc=host ximingxing/svgrender:v1 /bin/bash
预览:
| 注意力图 | 控制点初始化 | 笔画初始化 | 100步 | 500步 |
|---|---|---|---|---|
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/5ce99d70-1076-4b1a-a639-9923fa582b1f.png" style="width: 200px; height: 200px;"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/025289c8-7432-4cd3-96f7-4a0a9a8e3a89.png" style="width: 200px; height: 200px;"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/0f23d58c-494c-4c24-a2e4-c111e0095136.svg" style="width: 200px; height: 200px;"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/ddbbd843-63ec-423c-b5d6-39e65ca6322b.svg" style="width: 200px; height: 200px;"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/71ab2018-b089-4f3e-8ebf-24f062346c38.svg" style="width: 200px; height: 200px;"> |
从抽象到具体:
| 16条路径 | 36条路径 | 48条路径 | 96条路径 | 128条路径 |
|---|---|---|---|---|
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/b9a5285e-01be-4d1e-baef-ea888ae63305.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/2dfcc78b-e4ab-4c34-9bec-817fef0c2637.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/ee679b4a-987b-46f4-b588-20b75fb6f4ce.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/71ab2018-b089-4f3e-8ebf-24f062346c38.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/d676eb16-d5ff-4b47-bbe9-838f3ca0b456.svg"> |
脚本:
python run_painterly_render.py \ -c diffsketcher.yaml \ -eval_step 10 -save_step 10 \ -update "token_ind=4 num_paths=96 num_iter=800" \ -pt "悉尼歌剧院的照片" \ -respath ./workdir/sydney_opera_house \ -d 8019 \ --download
-c 即 --config:配置文件,保存在 DiffSketcher/config/ 中。-eval_step:用于评估方法的步长(调用过于频繁会导致耗时更长)。-save_step:用于保存结果的步长(调用过于频繁会导致耗时更长)。-update:用于编辑配置文件的超参数的工具,这样就不需要创建新的yaml文件。-pt 即 --prompt:文本提示。-respath 即 --results_path:保存结果的文件夹。-d 即 --seed:随机种子。--download:首次运行时自动从huggingface下载模型。关键:
-update "token_ind=4" 表示用于初始化笔画的交叉注意力图的索引。-update "num_paths=96" 表示笔画的数量。可选:
-npt,即 --negative_prompt:负面文本提示。-mv,即 --make_video:制作渲染过程的视频(这将耗费更长时间)。-frame_freq,即 --video_frame_freq:保存图像的步数间隔。-framerate,即 --video_frame_rate:控制输出视频的播放速度。xdog_intersec=True,请下载 U2Net模型并放置在 checkpoint/ 目录中-update 中添加 enable_xformers=True 以启用xformers加速。-update 中添加 gradient_checkpoint=True 以使用梯度检查点来降低显存占用。预览:
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/3a090a6a-43eb-4b1b-9a0d-af054a27c6ac.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/db734cfa-ac69-41c7-9d55-5378e1da04e1.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/9bd50213-1055-4f3e-80c1-e450e8f3494e.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/9e0f4397-aa1f-42a0-a375-4b76b92c7439.svg"> |
|---|---|---|---|
| 笔画初始化 | 100步 | 200步 | 990步 |
脚本:
python run_painterly_render.py \ -c diffsketcher-width.yaml \ -eval_step 10 -save_step 10 \ -update "token_ind=4 num_paths=48 num_iter=800" \ -pt "悉尼歌剧院的照片" \ -respath ./workdir/sydney_opera_house_ink \ -d 8019 \ --download
预览:
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/bcd2d051-089a-41d7-a70c-32a5fd7914b9.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/589afcdd-9184-4071-b9b9-c31d0da98891.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/e2dd8d5b-65c0-4d50-9a94-b79c93cbbe8a.svg"> |
|---|---|---|
| 笔画初始化 | 100步 | 570步 |
脚本:
python run_painterly_render.py \ -c diffsketcher-color.yaml \ -eval_step 10 -save_step 10 \ -update "token_ind=5 num_paths=1000 num_iter=1000 guidance_scale=7.5" \ -pt "拉丁女性经历精神觉醒的肖像,闭着眼睛,微笑,发光的灯光,梵高风格的油画" \ -npt "文字,签名,标题,标题,水印,丑陋,重复,病态,残缺,画面外,多余的手指,变异的手,画工拙劣的手,画工拙劣的脸,突变,变形,模糊,解剖学错误,比例不当,多余的肢体,克隆的脸,毁容,画面外,丑陋,多余的肢体,比例严重失调,畸形的肢体,缺少手臂,缺少腿,多余的手臂,多余的腿,变异的手,融合的手指,手指过多,脖子过长" \ -respath ./workdir/latin_woman_portrait -d 58548
预览:
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/871be172-4702-489b-a0bd-c445d5532f11.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/fb6b9953-f15f-484d-ad51-1a9b60d4165e.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/b654d7ae-4c2b-4cc2-b408-a562a4e83bbb.svg"> |
|---|---|---|
| 笔画初始化 | 100步 | 570步 |
脚本:
python run_painterly_render.py \ -c diffsketcher-color.yaml \ -eval_step 10 -save_step 10 \ -update "token_ind=5 num_paths=1000 num_iter=1000 guidance_scale=7.5" \ -pt "一幅戴着皇冠的女性肖像画,艺术站首页,动态人像风格,背景色彩丰富,油画风格,油画,禁忌之美" \ -npt "双头,双面,裁剪图像,画面外,草稿,变形手,扭曲手指,重影,畸形手,多头,多余肢体,丑陋,手绘粗糙,缺少肢体,毁容,截断,丑陋,颗粒感,低分辨率,变形,模糊,解剖结构错误,毁容,脸部绘制粗糙,突变,变异,漂浮的肢体,断开的肢体,令人反感,绘制粗糙,残缺,损坏,多余的手指,重复的物品,病态,比例失调,缺少手臂,变异的手,残缺的手,复制的脸,畸形,模糊的雾霾" \ -respath ./workdir/woman_with_crown -d 178351
预览:
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/b3fc2f49-169f-41ff-8825-3cabb386a3cf.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/29b3c6e2-fef3-4a8e-858b-8695c04fcb54.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/39e262fe-5336-400a-a97e-ef9004a5c721.svg"> |
|---|---|---|
| 笔画初始化 | 100步 | 420步 |
脚本:
python run_painterly_render.py \ -c diffsketcher-color.yaml \ -eval_step 10 -save_step 10 \ -update "token_ind=5 num_paths=1000 num_iter=1000 guidance_scale=7.5" \ -pt "一幅戴着皇冠的女性肖像画,艺术站首页,动态人像风格,背景色彩丰富,油画风格,油画,禁忌之美" \ -npt "双头,双面,裁剪图像,画面外,草稿,变形手,扭曲手指,重影,畸形手,多头,多余肢体,丑陋,手绘粗糙,缺少肢体,毁容,截断,丑陋,颗粒感,低分辨率,变形,模糊,解剖结构错误,毁容,脸部绘制粗糙,突变,变异,漂浮的肢体,断开的肢体,令人反感,绘制粗糙,残缺,损坏,多余的手指,重复的物品,病态,比例失调,缺少手臂,变异的手,残缺的手,复制的脸,畸形,模糊的雾霾" \ -respath ./workdir/woman_with_crown -d 178351
预览:
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/b615fa29-e767-484d-93dc-04ae295f331f.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/16c46217-5058-4da9-a638-3d695806eb8e.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/64784b27-e6a5-470f-b61c-b9f07be55425.svg"> |
|---|---|---|
| 笔画初始化 | 100步 | 340步 |
脚本:
python run_painterly_render.py \ -c diffsketcher-color.yaml \ -eval_step 10 -save_step 10 \ -update "token_ind=5 num_paths=1000 num_iter=800 guidance_scale=7" \ -pt "一座美丽的雪中城堡,令人惊叹的杰作,树木,阳光射线,列昂尼德·阿夫列莫夫风格" \ -npt "手绘粗糙,脚绘粗糙,脸部绘制粗糙,画面外,多余肢体,毁容,变形,身体画面外,解剖结构错误,水印,签名,裁剪,对比度低,曝光不足,曝光过度,劣质艺术,新手水平,业余水平,扭曲的脸" \ -respath ./workdir/castle -d 370880
预览:
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/0799e868-9c65-4bd9-ad27-54c6522e9893.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/5f4749ca-934f-4510-a0be-9fc0aaba2d95.svg"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/5090d519-c3c3-4051-9eb1-5cb98d494815.svg"> |
|---|---|---|
| 笔画初始化 | 100步 | 850步 |
脚本:
python run_painterly_render.py \ -c diffsketcher-color.yaml \ -eval_step 10 -save_step 10 \ -update "token_ind=5 num_paths=1000 num_iter=800 guidance_scale=7" \ -pt "一座美丽的雪中城堡,令人惊叹的杰作,树木,阳光射线,列昂尼德·阿夫列莫夫风格" \ -npt "手绘粗糙,脚绘粗糙,脸部绘制粗糙,画面外,多余肢体,毁容,变形,身体画面外,解剖结构错误,水印,签名,裁剪,对比度低,曝光不足,曝光过度,劣质艺术,新手水平,业余水平,扭曲的脸" \ -respath ./workdir/castle -d 478376
预览:
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/feac6943-ea42-4814-942a-e1ef6dcabfc0.png" style="width: 250px; height: 250px;"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/6065fad8-2be4-46a1-a332-7f1f752a20d3.jpg" style="width: 250px; height: 250px;"> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/468471b2-2eb4-477b-9e44-50f229d1fb52.svg" style="width: 250px; height: 250px;"> |
|---|---|---|
| 生成样本 | 风格图像 | 结果 |
脚本:
python run_painterly_render.py \ -tk style-diffsketcher -c diffsketcher-style.yaml \ -eval_step 10 -save_step 10 \ -update "token_ind=4 num_paths=2000 style_warmup=0 style_strength=1 softmax_temp=0.4 sds.grad_scale=0 lr_scheduler=True num_iter=2000" \ -pt "法国大革命,高度细节,8K,华丽,精致,电影感,去雾,大气,梵高风格的油画" \ -style ./img/starry.jpg \ -respath ./workdir/style_transfer \ -d 876809
-style:风格图片的路径。style_warmup:在style_warmup步骤后添加风格损失。style_strength:风格应该有多强。100(最大)非常强,0(最小)则没有风格。查看Examples.md获取更多案例。
本项目基于以下仓库构建:
我们衷心感谢这些作者的出色工作。
如果您在研究中使用了这份代码,请引用以下论文:
@inproceedings{xing2023diffsketcher,
title={DiffSketcher: Text Guided Vector Sketch Synthesis through Latent Diffusion Models},
author={XiMing Xing and Chuang Wang and Haitao Zhou and Jing Zhang and Qian Yu and Dong Xu},
booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
year={2023},
url={https://openreview.net/forum?id=CY1xatvEQj}
}
本作品采用MIT许可证授权。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号