关键技术:
- Stable Diffusion (SD): 将文本描述转换为图像的开源模型。
- ControlNet (CN): 精确引导 SD 模型输出的技术。文章中使用的是一种擅长生成自然图像的 ControlNet,可以将图像的对比度信息转化为类似二维码的黑白图案,进而嵌入文本。
实现方法:
使用 Modal 平台将计算任务转移到远程 A10G GPU 上,并编写了脚本来自动生成嵌入文本的图像。 或者使用现成的huggingface平台,
不足之处
每次还得为了不同的文本制作背景图片,这个步骤. 我们需要写一个脚本根据文本生成文本对应的图片, 这个脚本仅供参考:
from PIL import Image, ImageDraw, ImageFont
def create_image_with_text(text):
"""
Creates an image with the specified text on a black background.
Args:
text: The text to be displayed on the image.
Returns:
An Image object.
"""
# Create a new black image
img = Image.new('RGB', (500, 100), color = (0, 0, 0))
draw = ImageDraw.Draw(img)
# Choose a font (you might need to download and install this font)
font = ImageFont.truetype("impact.ttf", 60)
# Calculate the text size using the font object
text_width, text_height = font.getsize(text)
# Calculate the position to center the text
x = (img.width - text_width) / 2
y = (img.height - text_height) / 2
# Draw the text in white
draw.text((x, y), text, font=font, fill=(255, 255, 255))
return img
# Example usage:
text = input("Enter your text: ")
image = create_image_with_text(text)
image.save("output.png")
然后到Illusion Diffusion 把生成黑白文本图片拖入到模式,就可以得到想要的效果。