文登南海建设局网站,阿里巴巴黄页网站,noip免费域名申请,本地电脑做服务器建网站背景#xff1a;好容易完成朋友的任务#xff0c;帮忙给小朋友绘画比赛生成一些创意参考图片。他给我个挑战更高的问题#xff0c;是否可以帮他用AI生成一些视频。这个乍一听以现在AI技术根本不太可能完成。奈何他各种坚持#xff0c;无奈被迫营业。苦脸接受了这个不可能完…背景好容易完成朋友的任务帮忙给小朋友绘画比赛生成一些创意参考图片。他给我个挑战更高的问题是否可以帮他用AI生成一些视频。这个乍一听以现在AI技术根本不太可能完成。奈何他各种坚持无奈被迫营业。苦脸接受了这个不可能完成的任务。要求1.视频人物相对稳定2.视频祯之间不能跳跃太大背景和画风不能跳变3.视频有一定连贯性可以允许角色跳转不太连贯技术方案思路找一个视频解析成图片然后根据用户动作作为控制批量生成图把生成的图合成视频输出1.视频人物相对稳定这部分我是用dreambooth锁定人物2.视频不能太跳这部分我尝试用image2imagecontrol控制锁定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) .jpgnewPath 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, fpsfps)
clip.write_videofile(output1.mp4, fpsfps)合成视频效果相忘于江湖展望现在效果还是不够稳定的后续会尝试解决这个不稳定问题