当前位置: 首页 > news >正文

ChatGPT + Stable Diffusion + 百度AI + MoviePy 实现文字生成视频,小说转视频,自媒体神器!(一)

ChatGPT + Stable Diffusion + 百度AI + MoviePy 实现文字生成视频,小说转视频,自媒体神器!(一)

前言

最近大模型频出,但是对于我们普通人来说,如何使用这些AI工具来辅助我们的工作呢,或者参与进入我们的生活,就着现在比较热门的几个AI,写个一个提高生产力工具,现在在逻辑上已经走通了,后面会针对web页面、后台进行优化。

github链接 https://github.com/Anning01/TextCreateVideo

B站教程视频 https://www.bilibili.com/video/BV18M4y1H7XN/

那么从一个用户输入文本到生成视频,我分成了五个步骤来做。
在这里插入图片描述

其中2、3 和 4 没有关系,后期做成异步并行。

第一步、将用户输入的文本进行段落切割。

我这里默认用户输入的为txt文件,也是建议一章一章来,太大并不是不可以执行,只是时间上耗费太多,当然4080用户除外!

from config import file_pathclass Main:def txt_handle(self, filepath):"""txt文件处理:return:"""file = open(file_path + filepath, 'r')content = file.read().replace('\n', '')return content.split('。')

这里比较简单,现在也没有做前端页面,现在将文件放在指定的目录下,会将txt文件按照中文“。”来切片。后期考虑有传整本的需求,会加上数据库进行持久化,按照章节区分,按章节来生成视频。


第二步、使用chatGPT生成提示词

我ChatGPT的免费调用API次数没了,最优选肯定是原生调用ChatGPT的api,但是没有这个条件,我选择了一些提供ChatGPT的API中间商
fastapi 和 API2D

from SDK.ChatGPT.FastGPT.app import Main as FM
from SDK.ChatGPT.API2D.app import Main as AM
from config import apikey, appId, ForwardKeyclass Main:# 默认反向提升词negative = "NSFW,sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, bad anatomy,(long hair:1.4),DeepNegative,(fat:1.2),facing away, looking away,tilted head, {Multiple people}, lowres,bad anatomy,bad hands, text, error, missing fingers,extra digit, fewer digits, cropped, worstquality, low quality, normal quality,jpegartifacts,signature, watermark, username,blurry,bad feet,cropped,poorly drawn hands,poorly drawn face,mutation,deformed,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,extra fingers,fewer digits,extra limbs,extra arms,extra legs,malformed limbs,fused fingers,too many fingers,long neck,cross-eyed,mutated hands,polar lowres,bad body,bad proportions,gross proportions,text,error,missing fingers,missing arms,missing legs,extra digit, extra arms, extra leg, extra foot,"# 默认提示词prompt = "best quality,masterpiece,illustration, an extremely delicate and beautiful,extremely detailed,CG,unity,8k wallpaper, "def create_prompt_words(self, text_list: list):"""生成英文提示词:return: [{prompt, negative, text, index},...]"""# 包含着 坐标、英文提示词、英文反向提示词、中文文本 列表data = []instance_class_list = []if all([apikey, appId]):instance_class_list.append(FM())if ForwardKey:instance_class_list.append(AM())for index, value in enumerate(text_list):prompt = instance_class_list[0].prompt_generation_chatgpt(value)if not prompt:if len(instance_class_list) >= 1:instance_class_list.pop(0)prompt = instance_class_list[0].prompt_generation_chatgpt(value)if not prompt:print("------fastgpt和API2D都无法使用---------")raise Exception("请检查代码")else:print("------fastgpt和API2D都无法使用---------")raise Exception("请检查代码")print(f"-----------生成第{index}段提示词-----------")data.append({"index": index,"text": value,"prompt": self.prompt + prompt,"negative": self.negative,})return data

我将两个api接口做成插件式的,并且保证一个坏了可以去使用另一个

fastGPT

class Main:apikey = apikeyappId = appIdurl = "https://fastgpt.run/api/openapi/v1/chat/completions"def prompt_generation_chatgpt(self, param):# 发送HTTP POST请求headers = {'Content-Type': 'application/json','User-Agent': 'Apifox/1.0.0 (https://www.apifox.cn)','Authorization': f'Bearer {self.apikey}-{self.appId}'}data = {"stream": False,# "chatId": "3232","messages": [{"content": '根据下面的内容描述,生成一副画面并用英文单词表示:' + param,"role": "user"}]}json_data = json.dumps(data)# 发送HTTP POST请求response = requests.post(self.url, data=json_data, headers=headers)result_json = json.loads(response.text)if response.status_code != 200:print("-----------FastAPI出错了-----------")return False# 输出结果return result_json['responseData'][0]['answer']

API2D

import requests
from config import ForwardKeyclass Main:ForwardKey = ForwardKeyurl = "https://openai.api2d.net/v1/chat/completions"def prompt_generation_chatgpt(self, param):# 发送HTTP POST请求headers = {'Content-Type': 'application/json','Authorization': f'Bearer {ForwardKey}'# <-- 把 fkxxxxx 替换成你自己的 Forward Key,注意前面的 Bearer 要保留,并且和 Key 中间有一个空格。}data = {"model": "gpt-3.5-turbo","messages": [{"role": "user", "content": '根据下面的内容描述,生成一副画面并用英文单词表示:' + param, }]}response = requests.post(self.url, headers=headers, json=data)print("-----------进入API2D-----------")if response.status_code != 200:return False# 发送HTTP POST请求result_json = response.json()# 输出结果return result_json["choices"][0]["message"]["content"]

相关文章:

ChatGPT + Stable Diffusion + 百度AI + MoviePy 实现文字生成视频,小说转视频,自媒体神器!(一)

ChatGPT Stable Diffusion 百度AI MoviePy 实现文字生成视频&#xff0c;小说转视频&#xff0c;自媒体神器&#xff01;(一) 前言 最近大模型频出&#xff0c;但是对于我们普通人来说&#xff0c;如何使用这些AI工具来辅助我们的工作呢&#xff0c;或者参与进入我们的生活…...

linux strcpy/strncpy/sprintf内存溢出问题

本文主要介绍strcpy/strncpy/sprintf都是不安全的&#xff0c;可能存在内存溢出的问题。下来进行实例分析。 strcpy代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdbool.h>void test_func(char *str) {b…...

Jmeter如何添加插件

一、前言 ​ 在我们的工作中&#xff0c;我们可以利用一些插件来帮助我们更好的进行性能测试。今天我们来介绍下Jmeter怎么添加插件&#xff1f; 2023最新Jmeter接口测试从入门到精通&#xff08;全套项目实战教程&#xff09; 二、插件管理器 ​ 首先我们需要下载插件管理器j…...

flask---CBV使用和源码分析

1 cbv写法 -1 写个类&#xff0c;继承MethodView-2 在类中写跟请求方式同名的方法-3 注册路由&#xff1a;app.add_url_rule(/home, view_funcHome.as_view(home))#home是endpoint&#xff0c;就是路由别名#例子 class add(MethodView):def get(self):return holleapp.add_url…...

Qt 实现压缩文件、文件夹和解压缩操作zip

一、实现方式 通过Qt自带的库来实现&#xff0c;使用多线程方式&#xff0c;通过信号和槽来触发压缩与解压缩&#xff0c;并将压缩和解压缩结果回传过来。 使用的类&#xff1a; #include "QtGui/private/qzipreader_p.h" #include "QtGui/private/qzipwriter…...

简单工厂模式VS策略模式

简单工厂模式VS策略模式 今天复习设计模式&#xff0c;由于简单工厂模式和策略模式太像了&#xff0c;重新整理梳理一下 简单工厂模式MUL图&#xff1a; 策略模式UML图&#xff1a; 1、简单工厂模式中只管创建实例&#xff0c;具体怎么使用工厂实例由调用方决定&#xff0c…...

【MySQL】触发器 (十二)

🚗MySQL学习第十二站~ 🚩本文已收录至专栏:MySQL通关路 ❤️文末附全文思维导图,感谢各位点赞收藏支持~ 一.引入 触发器是与表有关的数据库对象,作用在insert/update/delete语句执行之前(BEFORE)或之后(AFTER),自动触发并执行触发器中定义的SQL语句集合。它可以协助应…...

听说 Spring Bean 的创建还有一条捷径?

文章目录 1. resolveBeforeInstantiation1.1 applyBeanPostProcessorsBeforeInstantiation1.2 applyBeanPostProcessorsAfterInitialization1.3 案例 2. 源码实践2.1 切面 Bean2.2 普通 Bean 在 Spring Bean 的创建方法中&#xff0c;有如下一段代码&#xff1a; AbstractAutow…...

大数据课程E6——Flume的Processor

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Processor的概念和配置参数; ⚪ 掌握Processor的使用方法; ⚪ 掌握Processor的Default Processo; ⚪ 掌握Processor的Load Balance Processo; 一、Failover Sink Processor 1. …...

实现邮箱管理之gmail邮箱、office365(Azure)邮箱之披荆斩棘问题一览

要进行Office365邮箱的授权对接&#xff0c;你需要先申请一个应用&#xff0c;并获取授权访问令牌。 以下是一个简单的步骤&#xff1a; 登录 Azure 门户&#xff1a;https://portal.azure.com/创建一个新的应用程序&#xff0c;或者使用现有的应用程序。要创建新的应用程序&…...

(AcWing)多重背包问题 I,II

有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件&#xff0c;每件体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使物品体积总和不超过背包容量&#xff0c;且价值总和最大。 输出最大价值。 输入格式 第一行两个整数 N&#xff0c;…...

如何把几个视频合并在一起?视频合并方法分享

当我们需要制作一个比较长的视频时&#xff0c;将多个视频进行合并可以使得整个过程更加高效。此外&#xff0c;合并视频还可以避免出现“剪辑断层”的情况&#xff0c;使得视频内容更加连贯&#xff0c;更加容易被观众理解和接受。再有&#xff0c;合并视频还可以减少视频文件…...

【MyBatis】初学MyBatis

目录 MyBatis 是什么&#xff1f;MyBatis框架搭建1.添加MyBatis框架2.设置MyBatis配置数据库的相关链接信息xml 保存路径和命名格式 根据MyBatis写法完成数据库的操作MyBatis插件MyBatis传递参数查询${} 和 #{} 有什么区别&#xff1f;SQL注入问题 MyBatis like查询MyBatis多表…...

深度学习训练营之DCGAN网络学习

深度学习训练营之DCGAN网络学习 原文链接环境介绍DCGAN简单介绍生成器&#xff08;Generator&#xff09;判别器&#xff08;Discriminator&#xff09;对抗训练 前置工作导入第三方库导入数据数据查看 定义模型初始化权重定义生成器generator定义判别器 模型训练定义参数模型训…...

自定义MVC增删改查

目录 mymvcdemo是自定义mvc框架的使用示例 1.1 实体类 1.2 dao方法 1.3 写Service / biz 三层架构 1.4 建action 相当于selvert 1.5 con连接MySQL 8.0 版本 1.6 配置文件 XML 1.7 主界面布局 1.8 增加界面布局 1.9 写tld配置文件 2.0 注意架包 我是已经打包好的 mymv…...

RabbitMQ 教程 | 第2章 RabbitMQ 入门

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…...

双网卡如何配置DNS?我是一个仅主机模式配置静态(static)IP、一个NET或桥接(dhcp获取)

目录 一、所有主机初始化 二、135、136服务器&#xff0c;部署DNS调度服务器 1、更改主机主从DNS服务器的主机名称 2、安装bind软件、修改主配置文件 3、修改区域配置文件 4、修改数据文件 5、启动named服务、修改网卡信息 6、解析 7、双网卡的话记得注释以下内容、注…...

Android10: 动态隐藏导航栏和状态栏总结

&#xff08;1&#xff09;全屏相关设置 //&#xff08;1&#xff09;主题添加 <item name"android:windowFullscreen">true</item>//&#xff08;2&#xff09;setContentView之前添加 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCRE…...

roop 视频换脸

roop: one click face swap. 只用一张人脸图片&#xff0c;就能完成视频换脸。 项目地址&#xff1a; https://github.com/s0md3v/roopColab 部署&#xff1a; https://github.com/dream80/roop_colab 本文是本地部署的实践记录。 环境基础 OS: Ubuntu 22.04.2 LTSKernel: 5…...

Java类集框架(一)

目录 1.Collection集合接口 2.List 接口 (常用子类 ArrayList ,LinkedList,Vector) 3.Set 集合 接口(常用子类 HashSet LinkedHashSet,TreeSet) 4.集合输出(iterator , Enumeration) 1.Collection集合接口 Collection是集合中最大父接口&#xff0c;在接口中定义了核心的…...

别再死磕标注数据了!用Diffusion模型从海量无标签遥感图像中‘白嫖’语义信息,提升变化检测精度

无监督特征挖掘&#xff1a;Diffusion模型在遥感变化检测中的革新实践 遥感图像变化检测一直是地理信息科学和计算机视觉交叉领域的重要课题。传统监督学习方法严重依赖大量精确标注的训练数据&#xff0c;而标注高质量的变化检测数据集需要专业领域知识且耗时费力。面对全球每…...

用USRP B200mini和GNU Radio抓取大疆无人机位置:一个极客的无线安全实验手记

极客实验室&#xff1a;用USRP B200mini破解无人机通信协议实战指南 从零开始的SDR探险 去年夏天的一个傍晚&#xff0c;我在阳台上调试天线时&#xff0c;突然注意到头顶频繁掠过的无人机。这些飞行器究竟在传输什么数据&#xff1f;这个偶然的观察引发了我长达三个月的技术…...

【Perplexity语言学习资源黄金组合】:搭配Anki+TTS+语法解析器的「零依赖」自主学习系统(仅需1台设备)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity语言学习资源黄金组合的系统定位与核心价值 Perplexity 作为一款以实时检索增强生成&#xff08;RAG&#xff09;为核心架构的AI问答引擎&#xff0c;其在语言学习领域的独特价值并非源于通用对话能…...

在PC上体验PS4游戏:shadPS4模拟器入门与实战指南

在PC上体验PS4游戏&#xff1a;shadPS4模拟器入门与实战指南 【免费下载链接】shadPS4 PS4 emulator for Windows,Linux,MacOS 项目地址: https://gitcode.com/gh_mirrors/shad/shadPS4 还在为无法在PC上畅玩PS4独占游戏而烦恼吗&#xff1f;想象一下&#xff0c;那些只…...

5分钟上手TegraRcmGUI:Windows平台最简单的Switch注入工具终极指南

5分钟上手TegraRcmGUI&#xff1a;Windows平台最简单的Switch注入工具终极指南 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是专为Nintendo S…...

词达人自动化助手终极指南:10倍提升英语学习效率的Python工具

词达人自动化助手终极指南&#xff1a;10倍提升英语学习效率的Python工具 【免费下载链接】cdr 微信词达人&#xff0c;高正确率&#xff0c;高效简洁。支持班级任务及自选任务 项目地址: https://gitcode.com/gh_mirrors/cd/cdr 核心关键词&#xff1a;词达人自动化助手…...

17 ThingsBoard网关设备-子设备数据模型实战:核心价值+完整落地指南

ThingsBoard网关设备-子设备数据模型实战&#xff1a;核心价值完整落地指南 一、任务说明 1.1 场景必要性 在物联网&#xff08;IoT&#xff09;/工业物联网&#xff08;IIoT&#xff09;场景中&#xff0c;「网关设备-子设备」层级数据模型是解决异构设备批量接入、统一管理…...

CTF 实战必备 Hashcat 密码破解工具 零基础全套教程

HashCat密码破解工具介绍 hashcat号称世界上最快的密码破解&#xff0c;世界上第一个和唯一的基于GPU的规则引擎&#xff0c;免费多GPU&#xff08;高达128个GPU&#xff09;&#xff0c;多哈希&#xff0c;多操作系统&#xff08;Linux和Windows本地二进制文件&#xff09;&a…...

AI Agent将如何重构制造业的安全生产隐患识别模式?深度理解与实在Agent闭环实战

一、从“被动监控”到“主动进化”&#xff1a;2026年制造业安全隐患识别的范式迁移 站在2026年的时间节点回看&#xff0c;制造业的安全生产模式正经历着自工业4.0以来最深刻的变革。 传统的安全识别逻辑长期停留在“信号触发-人工干预”的被动阶段&#xff0c; 无论是基于阈值…...

别再傻傻分不清L2和L3了!一张图看懂自动驾驶分级(附SAE/国标对照表)

自动驾驶分级全解析&#xff1a;从L0到L5的技术演进与商业应用 当特斯拉车主开启Autopilot功能在高速公路上行驶&#xff0c;或是蔚来汽车宣传其NOP领航辅助时&#xff0c;这些究竟属于什么级别的自动驾驶&#xff1f;为什么有些厂商称自己的系统为"L2.999"&#xff…...