简单尝试:ChatGLM-6B + Stable diffusion管道连接

news2025/1/9 1:20:29

核心思想是:

1. 抛去算法设计方面,仅从工程角度考虑的话,Stable diffusion的潜力挖掘几乎完全受输入文字影响。

2. BLIP2所代表的一类多模态模型走的路线是"扩展赋能LLM模型",思路简单清晰,收益明显。LLM + Stable diffusion的问题应该也不大。

3. ChatGLM-6B 和 Stable diffusion都有huggingface中的pipeline,做个实验也不困难。

4. 这里只验证了基本管道连接的效果,如果效果还不错,那将还会有很多可玩的东西,如从LLM的LoRA、P-Tuning微调方面入手。感兴趣的话留意之后更新。

操作:

1. 安装ChatGLM-6B:GitHub - THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型

2. 赋能ChatGLM-6B模板

Q:

以下提示用于指导Al绘画模型创建图像。它们包括人物外观、背景、颜色和光影效果,以及图像的主题和风格等各种细节。这些提示的格式通常包括带权重的数字括号,用于指定某些细节的重要性或强调。例如,"(杰作:1.4)"表示作品的质量非常重要。以下是一些示例:

1. (8k, RAW photo, best quality, masterpiece:1.2),(realistic, photo-realistic:1.37), ultra-detailed, 1girl, cute, solo, beautiful detailed sky, detailed cafe, night, sitting, dating, (nose blush), (smile:1.1),(closed mouth), medium breasts, beautiful detailed eyes, (collared shirt:1.1), bowtie, pleated skirt, (short hair:1.2), floating hair, ((masterpiece)), ((best quality))

2. (masterpiece, finely detailed beautiful eyes: 1.2), ultra-detailed, illustration, 1 girl, blue hair black hair, japanese clothes, cherry blossoms, tori, street full of cherry blossoms, detailed background, realistic, volumetric light, sunbeam, light rays, sky, cloud,

3. highres, highest quallity, illustration, cinematic light, ultra detailed, detailed face, (detailed eyes, best quality, hyper detailed, masterpiece, (detailed face), blue hairlwhite hair, purple eyes, highest details, luminous eyes, medium breats, black halo, white clothes, backlighting, (midriff:1.4), light rays, (high contrast), (colorful)

仿照之前的提示,写一段描写如下要素的提示:开心 女孩

A:

(高质量,高分辨率,杰作:1.2),(真实感, photo-realistic:1.37),(超详细,女孩 开心,时尚元素,细节丰富,) ( collared shirt:1.1),  (卷发:1.2), (运动装:1.3), (唱:1.1), (跳舞:1.2), (高对比度,色彩丰富), ((杰作))

3. 安装diffusers并验证text_to_image的pipeline是否能跑通:GitHub - huggingface/diffusers: 🤗 Diffusers: State-of-the-art diffusion models for image and audio generation in PyTorch

4. 组装

ChatGLM

import os
import platform
import signal
from transformers import AutoTokenizer, AutoModel
import readline

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
model = model.eval()

os_name = platform.system()
clear_command = 'cls' if os_name == 'Windows' else 'clear'
stop_stream = False


def build_prompt(history):
    prompt = "欢迎使用 ChatGLM-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序"
    for query, response in history:
        prompt += f"\n\n用户:{query}"
        prompt += f"\n\nChatGLM-6B:{response}"
    return prompt


def signal_handler(signal, frame):
    global stop_stream
    stop_stream = True


def main():
    history = []
    global stop_stream
    print("欢迎使用 ChatGLM-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序")
    while True:
        query = input("\n用户:")
        if query.strip() == "stop":
            break
        if query.strip() == "clear":
            history = []
            os.system(clear_command)
            print("欢迎使用 ChatGLM-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序")
            continue
        count = 0
        for response, history in model.stream_chat(tokenizer, query, history=history):
            if stop_stream:
                stop_stream = False
                break
            else:
                count += 1
                if count % 8 == 0:
                    os.system(clear_command)
                    print(build_prompt(history), flush=True)
                    signal.signal(signal.SIGINT, signal_handler)
        os.system(clear_command)
        print(build_prompt(history), flush=True)


if __name__ == "__main__":
    main()

Stable diffusion

from diffusers import DiffusionPipeline

# 导入stable diffusion
generator = DiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
generator.to("cuda")

image = generator("ChatGLM_result_xxxx").images[0]
image.save("result_image.jpg")

5. 生成效果对比

仅输入:开心 女孩 

输入ChatGLM增强后结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/605673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电池状态估计 | Matlab实现利用卡尔曼滤波器估计电池充电状态

文章目录 效果一览文章概述研究内容程序设计参考资料效果一览 文章概述 电池状态估计 | Matlab实现利用卡尔曼滤波器估计电池充电状态 研究内容 目前,常用的电池模型有:数

外包干了5年,女朋友嫌弃我,跑了。。。

先说一下自己的情况。大专生,17年通过校招进入湖南某软件公司,干了接近5年的测试,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了5年,…

一文带你了解MySQL之约束

在SQL标准中,一共规定了6种不同的约束,包括非空约束,唯一约束和检查约束等,而在MySQL中是不支持检查约束的,所以这篇文章先对其余5种约束做一个详解和练习。 文章目录 1. 约束的概念2. 约束的分类3. 非空约束4. 唯一约…

大数据:pyspark模块,spark core的RDD,RDD是弹性分布式数据抽象对象,RDD五大特性,wordcount案例展示RDD

大数据:pyspark模块 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql…

English Learning - L3 作业打卡 Lesson4 Day29 2023.6.2 周五

English Learning - L3 作业打卡 Lesson4 Day29 2023.6.2 周五 引言🍉句1: I once made a big mistake at the office and felt foolish.成分划分弱读连读爆破语调 🍉句2: I had egg on my face.成分划分弱读语调 🍉句3: Over the weekend, m…

Java企业级信息系统开发学习笔记13 Spring Boot(使用maven方式构建Spring Boot项目)

文章目录 一、学习目标二、Spring Boot框架概述三、使用maven方式构建Spring Boot项目(一)创建Maven项目(二)添加依赖(三)创建入口类(四)创建控制器(五)运行入…

防火墙之服务器负载均衡

防火墙之服务器负载均衡 原理概述: 防火墙(英语:Firewall)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安…

C语言---操作符详解

1、操作符分类 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号操作符 下标引用、函数调用和结构成员。 2、算数操作符 - * / %// 7 / 2 ----->3 // 7 % 2 ----->1//那如果想要打印…

Java程序设计入门教程--类的创建过程

构造方法 在Java的每个类中都有一种特殊的成员方法,它的方法名和类名是一致的。在创建对象时,调用这种特殊方法对成员变量进行初始化,这种方法称为构造方法。 注意 创建构造方法与创建成员方法的格式相同,但要注意以下几点&#…

3GPP R16 HST

3GPP R16高铁场景为了能够支持最高3.6GHz载波频率以及最高500km/h的速度,提出了增强RRM要求和终端解调能力要求。 在增强RRM要求的维度,对intra-RAT和inter-RAT测量提出了新的要求。其中,intra-RAT测量包括NR小区重选要求、NR小区识别要求、波…

大数据:hadoop spark,spark特点,功能,架构,模块,角色

大数据:hadoop spark 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sq…

把玩数据在内存中的存储

前言:时光如梭💦,今天到了C语言进阶啦😎,基础知识我们已经有了初步认识, 是时候该拔高拔高自己了😼。 目标:掌握浮点数在内存的存储,整形在内存的存储。 鸡汤&#xff1a…

arcgis for javascript api4.26 本地tomcat部署,以及解决跨域访问问题

一、配置java_jdk以及tomcat arcgis for javascript api 部署到本地服务器,可以是iis,也可以是tomcat,我这里是部署到tomcat,所以就介绍一下tomcat上部署的步骤。 如果电脑上有本地服务器的,可以跳过这一章,直接从第二章开始看 下…

1绪论_1.1数据结构的基本概念+1.2算法和算法评价

1.1.1基本概念和术语 数据 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 数据元素 数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数…

探索iOS自定义ijkplayer画中画播放

iOS提供AVPictureInPictureController用于画中画播放控制,但是只能绑定AVPlayer使用,对于开发者来说挺头痛的。在iOS 15.0后呼之欲出,支持SampleBufferDisplayLayer自定义数据源显示图层,意味着我们可以自定义第三方播放器实现画中…

内网安全:代理技术详解

目录 代理技术实验所用网络拓扑图及说明 代理技术 SOCK协议 使用代理技术的原因 正向代理与反向代理 实战一:MSF代理通讯 实验原理说明 一. Meterpreter建立路由 二. MSF建立节点 三. 建立代理到MSF上 实战二:CS代理通讯 实验原理说明 一. …

OpenGl之摄像机

文章目录 摄像机/观察空间摄像机位置摄像机方向右轴上轴 Look At自由移动移动速度鼠标输入缩放摄像机源码 OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉&#xff…

并发专栏-队列同步器 AQS 以及 Reentrantlock 应用

队列同步器 AQS 以及 Reentrantlock 应用 Java 中的大部分同步类都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。 ReentrantLock、ReentrantReadWriteLock、Semaphore(信号量)、CountDownLatch、公平锁、非公平锁、 ThreadPoolExecutor 都和 AQS…

《C和指针》读书笔记(第九章 字符串、字符和字节)

目录 0 简介1 字符串基础2 字符串长度3 不受限制的字符串函数3.1 复制字符串3.2 连接字符串3.3 函数的返回值3.4 字符串比较 4 长度受限的字符串函数5 字符串查找基础5.1 查找一个字符串5.2 查找任何几个字符5.3 查找一个子串 6 高级字符串查找6.1 查找一个字符串前缀6.2 查找标…

饿补基础_1 |进位制、R进制之间转换及十进制编码

目录 数值数据的表示一.进位计数制理解1.你需要了解的概念2. 晦涩难懂的官方定义3 一看就会的例子4 值得收藏的进制对照表(二、八、十、十六进制)5 计算机为什么主要使用二进制 二.不同数制之间的转换1. 为什么会出现进制转换2. 各数制转十进制3. 十进制转二进制4. 二进制与八进…