模型实践 | CLIP-GEN无需文本训练即可文字生成图像

实验|King小杞      算力支持|幻方AIHPC

CLIP-GEN

随着 Transformer 模型的发展,近些年多模态模型获得了长足的发展,使得不同任务不同领域可以实现特征的打通,变换出很多新奇好玩的场景。其中非常热门的就是让 AI 学会看文作图,即文字生成图像,如 OpenAI 的 CLIP 模型,其基于带文字的图像数据集上,训练出很惊艳的效果。

然而,收集这些带文字的图像数据集成本非常高。最近字节在 Arxiv 上发表了一项文本生成图像 (text2img) 的工作,其利用对抗网络 GAN 改造 CLIP模型,使得 CLIP-GEN 可以不依赖带文字描述的图片数据集,直接使用无文本图像数据集进行训练,通过预训练好的  CLIP 模型建立起文本和图像的映射关系。在很多实验数据中表明,它的效果比 VQGAN-CLIP 要真实,尤其是泛化能力还比不少用大量“文本-图像”数据对训练出来的模型要好很多。

幻方 AI 最近复现了该项工作,并通过幻方自研的 3FShfreduce

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
clip-gen是一个基于CLIP模型图像生成工具,它可以根据给定的正向提示词生成新的视图。CLIP模型是一个联合训练图像-文本模型,它可以将图像文本嵌入到一个共享的向量空间中。clip-gen利用CLIP模型的这种能力,通过调整输入图像的向量表示来生成新的视图。 下面是使用clip-gen生成新视图的示例代码: ```python import torch import clip from PIL import Image # 加载CLIP模型 device = "cuda" if torch.cuda.is_available() else "cpu" model, preprocess = clip.load("ViT-B/32", device=device) # 加载输入图像 image_path = "input.jpg" image = preprocess(Image.open(image_path)).unsqueeze(0).to(device) # 设置正向提示词 prompt = "ocean view" # 生成新视图 with torch.no_grad(): z = model.encode_image(image) z += model.encode_text(clip.tokenize(prompt).to(device)).mean(dim=0) new_image = model.decode(z).cpu() # 保存生成的新视图 output_path = "output.jpg" new_image = new_image.squeeze(0).permute(1, 2, 0).clamp(0, 1).numpy() Image.fromarray((new_image * 255).astype("uint8")).save(output_path) ``` 在上面的代码中,我们首先加载了CLIP模型,并将输入图像预处理为模型所需的格式。然后,我们设置了正向提示词,这将影响生成的新视图的内容。接下来,我们使用CLIP模型对输入图像和正向提示词进行编码,并将它们相加得到新的图像表示。最后,我们使用CLIP模型的解码器将新的图像表示解码为图像,并保存生成的新视图。 请注意,上述代码中的输入图像和输出图像都应该是合适的图像文件路径。你可以根据自己的需求修改代码中的路径和正向提示词来生成不同的新视图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幻方AI小编

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值