ambifusion
1.0.0
这是“扩散模型的Ambigram生成”论文的官方回购。本文在ICDAR 2023接受。
【 更新 】
2023/07/20:Ambifusion2开放。通过将两个提示指定为一对,该方法可以使用任何图像对生成Ambigram。
tl; dr
ambigramability
,这是一个客观的衡量标准,即为每个字母对产生弹头是多么容易。 Ambigram是图形字母设计,不仅可以从原始方向读取,而且可以从旋转方向读取(尤其是180度)。即使对于人类专家来说,设计弹头也很困难,因为从两个方向上保持双重可读性通常很困难。本文提出了一种弹道生成模型。作为其生成模块,我们使用了一个扩散模型,该模型最近已用于生成高质量的照相图像。通过指定一对字母类,例如“ A”和“ B”,提出的模型生成了各种弹药映像,这些图像可以从原始方向读取为“ A”,而从方向旋转180度的“ B”。实验结果的定量和定性分析表明,所提出的模型可以产生高质量和不同的策略。此外,我们定义了策略性,这是一个客观的衡量标准,即为每个字母对生成弹头的容易性。例如,一对“ A”和“ V”表现出高度的策略性(也就是说,很容易产生他们的策略),而“ D”和“ K”对表现出较低的策略性。动弹性不仅为计算机,而且对人类专家提供了各种暗示。
我们提出的方法产生了弹道液,例如以下示例。
括号的数字是字母对的炮击得分(↑)。上三行是相当简单的班级对(具有较高的策略性得分),而下三行则不是。
我们测试了Python: 3.8.10
。您可以在pip
上下载外部库如下。
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
pip install -r requirements.txt
您还可以下载预训练的权重。用下载的现实权威文件替换所有伪重量file weight_name.txt
。
python demo.py
127.0.0.1:11111
。 ambigram_random_sample.py
中设置TestConfigs
。 python ambigram_random_sample.py
calc_ambigramability.py
中设置TestConfigs
。 python calc_ambigramability.py
configs/trainargs.py
中设置TrainConfigs
。如果需要,可以更改DA_ambigram_configs.yaml
(详细信息在论文中的第3.2节中提到)。 ## Run on single gpu
python ambigram_train.py
## Run on multiple gpus
mpiexec -n [NUM_GPUs] python ambigram_train.py
注意[1]:如果您想使用classifier-free guidance
来生成弹道,则必须单独训练有条件模型和无条件模型。
@article{shirakawa2023ambigram,
title={Ambigram Generation by A Diffusion Model},
author={Shirakawa, Takahiro and Uchida, Seiichi},
booktitle={2023 17th international conference on document analysis and recognition (ICDAR)},
year={2023}
}