文本绘制扩散模型TextDiffuser-英文-通用领域

我要开发同款
匿名用户2024年07月31日
63阅读

技术信息

开源地址
https://modelscope.cn/models/iic/TextDiffuser_en
授权协议
MIT License

作品详情

文本绘制扩散模型TextDiffuser

扩散模型(Diffusio Models)目前无法在图像中绘制准确清晰的文字内容,而TextDiffuser专注于解决该问题,可以生成与背景融合的带文字的图像。TextDiffuser有三种使用方式,既可以通过输入提示词,在自动预测的位置上渲染文本,也可以通过输入模板图像在指定位置上渲染文本,还可以输入一张图像后对文本内容进行编辑。

textdiffuser

模型介绍

本模型共有两个阶段,首先是布局生成(Layout Geeratio)阶段,通过对输入的提示词做分词后将待绘制的文本内容输入给一个Trasformer模型,经过布局预测并生成字符级的分割掩码;然后是图像生成(Image Geeratio)阶段,采用Stable Diffusio v1.5模型并将输入通道数由4扩充到17,分别包含了加噪后的图像、字符分割掩码、编辑区域掩码、非编辑区域图像,通过开关切换文字生成或编辑修复两个分支的训练,并在损失函数中使用一个Uet分割模型对生成文字做字符级别的监督,提升文字准确率。

期望模型使用方式以及使用范围

本模型使用范围较广,能基于输入的提示词生成包含英文字符的图像,或对图像中的文本进行编辑或修复。

环境配置

# 安装git(如有请跳过)
coda istall -c aacoda git
# 克隆textdiffuser仓库
git cloe https://github.com/microsoft/uilm.git
cd uilm/textdiffuser/
# 创建环境
coda create - textdiffuser pytho=3.8
coda activate textdiffuser
pip istall -r requiremets.txt
pip istall Pillow==9.5.0
# 安装diffusers并替换部分文件
git cloe https://github.com/JigyeChe/diffusers
cp ./assets/files/schedulig_ddpm.py ./diffusers/src/diffusers/schedulers/schedulig_ddpm.py
cp ./assets/files/uet_2d_coditio.py ./diffusers/src/diffusers/models/uet_2d_coditio.py
cp ./assets/files/modelig_utils.py ./diffusers/src/diffusers/models/modelig_utils.py
cd diffusers && pip istall -e . && cd ..

示例代码

请参照如下示例代码,以三种方式使用TextDiffuser生成带文字的图像。(首次执行需要下载多个模型文件至缓存,如遇报错请重启ipytho环境再次执行)

from modelscope.pipelies import pipelie
pipe = pipelie('my-textdiffuser-task', model='damo/TextDiffuser_e', model_revisio='v1.0.0')
params = {
    "sample_um": 4,
    "sample_steps": 50,
    "classifier_free_scale": 7.5,
    "use_pillow_segmetatio_mask": True,
    "biarizatio": False,
}
# 1. text-to-image
iput_data_t2i = {
    "prompt": "'test if textdiffuser works' writte i autum leaves floatig o a lake"
}
mode = 'text-to-image'
output = pipe(iput_data_t2i, mode=mode, **params)
for idx, img i eumerate(output):
    img.save(f'{mode}_{idx}.jpg')
# 2. text-to-image-with-template
iput_data_t2it = {
    "prompt": "a poster of mokey music festival",
    "template_image": "assets/examples/text-to-image-with-template/case2.jpg",
}
mode = 'text-to-image-with-template'
output = pipe(iput_data_t2it, mode=mode, **params)
for idx, img i eumerate(output):
    img.save(f'{mode}_{idx}.jpg')
# 3. text-ipaitig
iput_data_ti = {
    "prompt": "a boy draws good morig o a board",
    "origial_image": "assets/examples/text-ipaitig/case2.jpg",
    "text_mask": "assets/examples/text-ipaitig/case2_mask.jpg"
}
mode = 'text-ipaitig'
output = pipe(iput_data_ti, mode=mode, **params)
for idx, img i eumerate(output):
    img.save(f'{mode}_{idx}.jpg')

模型局限性以及可能得偏差

  • 模型目前只支持英文大小写字符的书写,不支持标点符号,不支持其他语言(如中文);
  • 使用文生图模式时,写入多行可能会存在文字重叠现象;
  • 一定概率下会产生文本模糊、扭曲、拼写错误等现象;
  • 基于互联网公开数据的训练,生成结果与训练数据分布存在较大关联;

训练数据介绍

本模型的训练数据集采用MARIO-10M,主要来源于LAION-400M,TMDB,Ope Library三个互联网开源数据集,包含1000万高质量的图文对,涵盖自然图像、电影海报、书籍封面等各类场景。

模型评测指标

与现有方法相比,TextDiffuser在CLIPScore和OCR的性能指标SOTA,FID方面指标也具有相当的竞争力:

eval

相关论文及引用信息

@article{che2023textdiffuser,
  title={TextDiffuser: Diffusio Models as Text Paiters},
  author={Che, Jigye ad Huag, Yupa ad Lv, Tegchao ad Cui, Lei ad Che, Qifeg ad Wei, Furu},
  joural={arXiv preprit arXiv:2305.10855},
  year={2023}
}

功能介绍

文本绘制扩散模型TextDiffuser 扩散模型(Diffusion Models)目前无法在图像中绘制准确清晰的文字内容,而TextDiffuser专注于解决该问题,可以生成与背景融合的带文字的图

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论