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

2024-02-02 14:40
文章标签 ai 干活 娱乐

本文主要是介绍如何让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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/671038

相关文章

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek