• 文字生成图片


    摘要

    根据文字生成图像,是近几年大模型领域比较热门的研究。我这篇文章主要记录如何使用百度的文心大模型实现文字生成图像。

    PaddleHub能力简介

    PaddleHub旨在为开发者提供丰富的、高质量的、直接可用的预训练模型

    • 【模型种类丰富】: 涵盖大模型、CV、NLP、Audio、Video、工业应用主流六大品类的 360+ 预训练模型,全部开源下载,离线可运行
    • 【超低使用门槛】:无需深度学习背景、无需数据与训练过程,可快速使用AI模型
    • 【一键模型快速预测】:通过一行命令行或者极简的Python API实现模型调用,可快速体验模型效果
    • 【一键模型转服务化】:一行命令,搭建深度学习模型API服务化部署能力
    • 【十行代码迁移学习】:十行代码完成图片分类、文本分类的迁移学习任务
    • 【跨平台兼容性】:可运行于Linux、Windows、MacOS等多种操作系统

    文心ERNIE-ViLG介绍

    文心ERNIE-ViLG参数规模达到100亿,是目前为止全球最大规模中文跨模态生成模型,在文本生成图像、图像描述等跨模态生成任务上效果全球领先,在图文生成领域MS-COCO、COCO-CN、AIC-ICC等数据集上取得最好效果。你可以输入一段文本描述以及生成风格,模型就会根据输入的内容自动创作出符合要求的图像。

    目前ERNIE-ViLG的文心大模型API已经登入PaddleHub,只需通过4行代码就能实现强大的图文生成能力! 你可以输入一段文本描述以及生成风格,模型就会根据输入的内容自动创作出符合要求的图像。
    例如:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    配置环境

    1、安装PaddlePaddle
    链接:https://www.paddlepaddle.org.cn/
    在这里插入图片描述
    如果只是为了体验图文生成的功能,可以安装CPU版本。

    conda install paddlepaddle==2.3.2 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
    

    更详细的安装步骤:https://www.paddlepaddle.org.cn/documentation/docs/zh/install/conda/windows-conda.html#anchor-0
    2、安装PaddleHub

    pip install --upgrade paddlehub
    pip install docarray
    

    模型加载推理

    新建个python脚本,插入下面的代码即可生成图像。

    import paddlehub as hub
    from docarray import DocumentArray,Document
    
    erniv_vilg_module=hub.Module(name='ernie_vilg')
    
    result=erniv_vilg_module.generate_image(text_prompts='香山,天鹅,亭子,古风,枫叶,概念艺术',style='水彩',output_dir='./output')
    
    DocumentArray([Document().load_pil_image_to_datauri(image) for image in result[:6]]).plot_image_sprites()
    

    参数:

    • text_prompts(str): 输入的语句,描述想要生成的图像的内容。
    • style(Optional[str]): 生成图像的风格,当前支持’油画’,‘水彩’,‘粉笔画’,‘卡通’,‘儿童画’,‘蜡笔画’。
      还有一些其他风格也是支持的,比如:
      二次元、浮世绘、蒸汽波艺术、low poly、像素风格、概念艺术、未来主义、赛博朋克、写实风格、洛丽塔风格、巴洛克风格、超现实主义等。
    • topk(Optional[int]): 保存前多少张图,最多保存10张。
    • output_dir(Optional[str]): 保存输出图像的目录,默认为"ernievilg_output"。

    返回

    • images(List(PIL.Image)): 返回生成的所有图像列表,PIL的Image格式。

    Prompt 设计原则

    Prompt:简单原则:清楚地陈述 除了公式之外,也有一些简单的prompt设计原则分享给大家

    这里的第一条原则是 要清楚的陈述

    例如我们如果是简单的输入 风景的话,往往模型不知道我们想要的风景是什么样子的

    我们要去尽量的幻想我们风景的样子,然后变成语言描述

    例如我想想的是日落时,海边的风景

    那我就构造了prompt

    进一步的,我想风格化我的图像,所以我在结尾的部分,增加了 胶片感来让图片的色彩更加好看一些

    但是云彩的细节丢失了一些

    进一步的我再增加天边巨大云朵这一个细节,让我的图片朝着我想要的样子靠的更进一步
    详见:https://wenxin.baidu.com/wenxin/docs#Ol7ece95m
    下面举几个例子:

    1、火焰,凤凰,少女,未来感,高清,3d, 精致面容,cg感,古风,唯美,毛发细致,全身立绘

    result=erniv_vilg_module.generate_image(text_prompts='火焰,凤凰,少女,未来感,高清,3d, 精致面容,cg感,古风,唯美,毛发细致,全身立绘',style='古风',output_dir='./output')
    
    

    输出结果:
    在这里插入图片描述
    2、巨狼,飘雪,蓝色大片烟雾,毛发细致,烟雾缭绕,高清,3d,cg感,侧面照

    result=erniv_vilg_module.generate_image(text_prompts='巨狼,飘雪,蓝色大片烟雾,毛发细致,烟雾缭绕,高清,3d,cg感,侧面照',style='写实风格',output_dir='./output')
    
    

    在这里插入图片描述
    如果不想安装环境也可以在百度的网站上体验,链接:
    https://wenxin.baidu.com/moduleApi/ernieVilg

  • 相关阅读:
    【数据结构】树和二叉树
    小程序开发中的底部安全区域处理技巧
    如何设计分布式系统-分布式事务-TCC?
    【从零开始学爬虫】采集谷歌网页列表数据
    开源博客项目Blog .NET Core源码学习(4:生成验证码)
    代码随想录算法训练营 动态规划part17
    Bytebase 2.11.0 - 支持 OceanBase Oracle 模式
    GBase 8c V3.0.0数据类型——文本检索调试函数
    spring initializr脚手架搭建详解
    计算机网络期末98+冲刺笔记
  • 原文地址:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/127088376