相信大家都知道生成图片时生成文字有多难,直到目前无论ChatGPT的Dall-E 3 还是 Midjourney v6 生成英文都需要不断抽卡,中文是更不可能了。

今天发现了一个可以生成中文的开源项目,可以在指定位置生成中文内容,测试了下是真的生成中文内容,而不是依靠字体在特定位置合成中文,虽然相对来说图像质量不是很高,但是拿来创意玩耍还是可以的。

AnyText开源地址:https://github.com/tyxsspa/AnyText
官方测试地址:https://www.modelscope.cn/studios/damo/studio_anytext/summary

下面是一些生成的官方示例和自己测试的案例

附官方使用说明:

AnyText有两种运行模式:文字生成和文字编辑,每种模式下提供了丰富的示例,选择一个,点击[Run!]即可。

请注意,运行示例前确保手绘位置区域是空的,防止影响示例结果,另外不同示例使用不同的参数(如分辨率,种子数等),如果要自行生成时,请留意参数变化,或刷新页面恢复到默认参数。

文字生成
在Prompt中输入描述提示词(支持中英文),需要生成的每一行文字用双引号包裹,然后依次手绘指定每行文字的位置,生成图片。 文字位置的绘制对成图质量很关键请不要画的太随意或太小,位置的数量要与文字行数量一致,每个位置的尺寸要与对应的文字行的长短或宽高尽量匹配。如果手绘(Manual-draw)不方便, 可以尝试拖框矩形(Manual-rect)或随机生成(Auto-rand)。
多行生成时,每个位置按照一定规则排序后与文字行做对应,Sort Position选项用于确定排序时优先从上到下还是从左到右。可以在参数设置中打开Show Debug选项,在结果图像中观察文字位置和字形图。也可以勾选Revise Position选项,这样会用渲染文字的外接矩形作为修正后的位置,不过偶尔发现这样生成的文字创造性略低。

文字编辑

请上传一张待编辑的图片作为参考图(Ref),然后调整笔触大小后,在参考图上涂抹要编辑的位置,在Prompt中输入描述提示词和要修改的文字内容,生成图片。

参考图可以为任意分辨率,但内部处理时会限制长边不能超过768,并且宽高都被缩放为64的整数倍。