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

如何让AI帮你干活-娱乐(2)

背景:

好容易完成朋友的任务,帮忙给小朋友绘画比赛生成一些创意参考图片。他给我个挑战更高的问题,是否可以帮他用AI生成一些视频。这个乍一听以现在AI技术根本不太可能完成。奈何他各种坚持,无奈被迫营业。苦脸接受了这个不可能完成的任务。

要求:

1.视频人物相对稳定

2.视频祯之间不能跳跃太大(背景和画风不能跳变)

3.视频有一定连贯性(可以允许角色跳转不太连贯)

技术方案

思路:找一个视频,解析成图片,然后根据用户动作作为控制批量生成图,把生成的图合成视频输出

1.视频人物相对稳定,这部分我是用dreambooth锁定人物

2.视频不能太跳,这部分我尝试用image2image+control控制锁定

3.视频有一定连贯性,这部分我用video2video方式一定程度锁定角色动作

参考动作获取

视频转图片

#mp4转图片
import cv2
import osdef video2imgs(videoPath, imgPath):if not os.path.exists(imgPath):os.makedirs(imgPath)             # 目标文件夹不存在,则创建cap = cv2.VideoCapture(videoPath)    # 获取视频judge = cap.isOpened()                 # 判断是否能打开成功print(judge)fps = cap.get(cv2.CAP_PROP_FPS)      # 帧率,视频每秒展示多少张图片print('fps:',fps)frames = 1                           # 用于统计所有帧数count = 1                            # 用于统计保存的图片数量while(judge):flag, frame = cap.read()         # 读取每一张图片 flag表示是否读取成功,frame是图片if not flag:print(flag)print("Process finished!")breakelse:if frames % 10 == 0:         # 每隔10帧抽一张imgname = 'jpgs_' + str(count).rjust(3,'0') + ".jpg"newPath = imgPath + imgnameprint(imgname)cv2.imwrite(newPath, frame, [cv2.IMWRITE_JPEG_QUALITY, 100])# cv2.imencode('.jpg', frame)[1].tofile(newPath)count += 1frames += 1cap.release()print("共有 %d 张图片"%(count-1))
video2imgs('./normal video.mp4','./jpgs1/')

视频裁剪,人像放中间,补抓更清晰pose

#图片裁剪,人像更清晰
import cv2
import os
import os.pathf = r'./jpgs'
o = r'./target'
for file in os.listdir(f):f_img = f+"/"+fileo_img = o+"/"+fileimg = cv2.imread(f_img)print(img.shape) # (1080, 1920, 3)cropped = img[30:250, 50:280]  # 裁剪坐标为[y0:y1, x0:x1]cv2.imwrite(o_img, cropped)

图片调整尺寸,把pose放在生成图合适位置,确保生成动作稳定性

#图片尺寸调整
import PIL
import os
import os.path
from PIL import Imagef = r'./target'
o = r'./targets'
for file in os.listdir(f):f_img = f+"/"+fileo_img = o+"/"+fileimg = Image.open(f_img)img = img.resize((1024,640))img.save(o_img)
视频生成

本次实验使用stablediffusion中img2img来批量生产

选择了batch,通过controlnet==》pose、segment方法来控制生成图

结果输出:

把生成的图合成视频

from moviepy.editor import ImageSequenceClipimage_path = "result_video03"
fps = 5clip = ImageSequenceClip(image_path, fps=fps)
clip.write_videofile("output1.mp4", fps=fps)

合成视频效果

相忘于江湖

展望

现在效果还是不够稳定的

后续会尝试解决这个不稳定问题

相关文章:

如何让AI帮你干活-娱乐(2)

背景:好容易完成朋友的任务,帮忙给小朋友绘画比赛生成一些创意参考图片。他给我个挑战更高的问题,是否可以帮他用AI生成一些视频。这个乍一听以现在AI技术根本不太可能完成。奈何他各种坚持,无奈被迫营业。苦脸接受了这个不可能完…...

文件异步多备常用方案

业务需求上经常存在需要对同一个文件进行双上传,上传到不同云存储桶,以防出现某一个云厂商因各种意外导致自身服务出现不可用的情况,当然,还有其他措施可以避免,现在只针对通过程序业务代码而双写存储的这个场景。 业务…...

java面试八股文之------Redis夺命连环25问

java面试八股文之------Redis夺命连环25问👨‍🎓1.为什么redis这么快👨‍🎓2.redis的应用场景,为什么要用👨‍🎓3.redis6.0之前为什么一直不使用多线程,6.0为甚么又使用多线程了&…...

【数据结构】AVL平衡二叉树底层原理以及二叉树的演进之多叉树

1.AVL平衡二叉树底层原理 背景 二叉查找树左右子树极度不平衡,退化成为链表时候,相当于全表扫描,时间复杂度就变为了O(n) 插入速度没影响,但是查询速度变慢,比单链表都慢,每次都要判断左右子树是否为空 需…...

K8S篇-安装nfs插件

前言 有关k8s的搭建可以参考:http://t.csdn.cn/H84Zu 有关过程中使用到的nfs相关的nas,可以参考: http://t.csdn.cn/ACfoT http://t.csdn.cn/tPotK http://t.csdn.cn/JIn27 安装nfs存储插件 NFS-Subdir-External-Provisioner是一个自动配置…...

xmu 离散数学 卢杨班作业详解【4-7章】

文章目录第四章 二元关系和函数4.6.2911121618.120.222.1232834第五章 代数系统的一般概念2判断二元运算是否封闭348111214第六章 几个典型的代数系统1.5.6.7.11.12151618第七章 图的基本概念12479111215第四章 二元关系和函数 4. A{1,2,3} 恒等关系 IA{<1,1>,<2,2…...

多重背包问题中的二进制状态压缩

1.多重背包问题 经典的多重背包问题和01背包问题的相似之处在于二者的一维遍历顺序都是从右侧往左侧遍历。 同时多重背包的一维写法不比二维写法降低时间复杂度。 2.多重背包标准写法:(平铺展开形式&#xff09; class Solution {public int maxValue(int N, int C, int[] s…...

汇编语言程序设计(四)之汇编指令

系列文章 汇编语言程序设计&#xff08;一&#xff09; 汇编语言程序设计&#xff08;二&#xff09;之寄存器 汇编语言程序设计&#xff08;三&#xff09;之汇编程序 汇编指令 1. 数据传输指令 指令包括&#xff1a;MOV、XCHG、XLAT、LEA、LDS、LES、PUSH、POP、PUSHF、LA…...

Vant2 源码分析之 vant-sticky

前言 原打算借鉴 vant-sticky 源码&#xff0c;实现业务需求的某个功能&#xff0c;第一眼看以为看懂了&#xff0c;拿来用的时候&#xff0c;才发现一知半解。看第二遍时&#xff0c;对不起&#xff0c;是我肤浅了。这里侧重分析实现原理&#xff0c;其他部分不拓展开来&…...

【自然语言处理】【大模型】大语言模型BLOOM推理工具测试

相关博客 【自然语言处理】【大模型】大语言模型BLOOM推理工具测试 【自然语言处理】【大模型】GLM-130B&#xff1a;一个开源双语预训练语言模型 【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介绍 【自然语言处理】【大模型】BLOOM&#xff1a;一个176B参数…...

云桌面技术初识:VDI,IDV,VOI,RDS

VDI&#xff08;Virtual Desktop Infrastucture&#xff0c;虚拟桌面架构&#xff09;&#xff0c;俗称虚拟云桌面 VDI构架采用的“集中存储、集中运算”构架&#xff0c;所有的桌面以虚拟机的方式运行在服务器硬件虚拟化层上&#xff0c;桌面以图像传输的方式发送到客户端。 …...

基于本地centos构建gdal2.4.4镜像

1.前言 基于基础镜像构建gdal环境一般特别大&#xff0c;一般少则1.6G&#xff0c;多则2G甚至更大&#xff0c;这对于镜像的迁移造成了极大的不便。究其原因在于容器中有大量的源码文件以及编译中间过程文件&#xff0c;还要大量编译需要的yum库。本文主要通过在centos系统上先…...

生产环境线程问题排查

线程状态的解读RUNNABLE线程处于运行状态&#xff0c;不一定消耗CPU。例如&#xff0c;线程从网络读取数据&#xff0c;大多数时间是挂起的&#xff0c;只有数据到达时才会重新唤起进入执行状态。只有Java代码显式调用sleep或wait方法时&#xff0c;虚拟机才可以精准获取到线程…...

Day908.joinsnljdist和group问题和备库自增主键问题 -MySQL实战

join&snlj&dist和group问题和备库自增主键问题 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于join&snlj&dist和group问题和备库自增主键问题的内容。 一、join 的写法 join 语句怎么优化&#xff1f;中&#xff0c;在介绍 join 执行顺序的时候&am…...

算法 - 剑指Offer 丑数

题目 我们把只包含质因子 2、3 和 5 的数称作丑数&#xff08;Ugly Number&#xff09;。求按从小到大的顺序的第 n 个丑数。 解题思路 这题我使用最简单方法去做&#xff0c; 首先我们可以获取所有2n,3n,5*n的丑数&#xff0c;只是我们这里暂时无法排序&#xff0c;并且可能…...

【ONE·C || 文件操作】

总言 C语言&#xff1a;文件操作。    文章目录总言1、文件是什么&#xff1f;为什么需要文件&#xff1f;1.1、为什么需要文件&#xff1f;1.2、文件是什么&#xff1f;2、文件的打开与关闭2.1、文件指针2.2、文件打开和关闭&#xff1a;fopen、fclose2.3、文件使用方式3、文…...

cmd窗口中java命令报错。错误:找不到或无法加载主类 java的jdk安装过程中踩过的坑

错误: 找不到或无法加载主类 HelloWorld 遇到这个问题时&#xff0c;我尝试过网上其他人的做法。有试过添加classpath&#xff0c;也有试过删除classpath。但是依然报错&#xff0c;这里javac可以编译通过&#xff0c;说明代码应该是没有问题的。只是在运行是出现了错误。我安装…...

Breathwork(呼吸练习)

查了下呼吸练习相关内容&#xff0c;做个记录。我又在油管学习啦。 喜欢在you. tube看一些self-help相关的内容。比如学习方法、拉伸、跑步、力量举、自重锻炼等等。 总是听Obi Vicent说起Breathwork&#xff0c;比如&#xff1a; My 6am Morning Routine | New Healthy Habit…...

taobao.itemprops.get( 获取标准商品类目属性 )

&#xffe5;开放平台基础API不需用户授权 通过设置必要的参数&#xff0c;来获取商品后台标准类目属性&#xff0c;以及这些属性里面详细的属性值prop_values。 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 请求参数 点…...

QT配置安卓环境(保姆级教程)

目录 下载环境资源 JDK1.8 NDK SDK ​安装QT 配置环境 下载环境资源 JDK1.8 介绍JDK是Java开发的核心工具&#xff0c;为Java开发者提供了一套完整的开发环境&#xff0c;包括开发工具、类库和API等&#xff0c;使得开发者可以高效地编写、测试和运行Java应用程序。 下载…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...