【办公类-107-03】20250725通义万相2.1“动物拟人化”视频,优化关键词(图片转视频MP4转gif))

背景需求:

昨天做绘本图片,一些前天的积分,没有用完,就浪费了。

今天一共有2天100分,准备做视频(10分一次)快速消耗掉

关键词:猫头鹰低头。翻书,眨眼睛,动耳朵

好像没有20分钟,3分钟左右就好了。

其中有些图不能生成(保安、警察等)

一个视频没有完成,另外一个不能生成

只能下载有水印的

视频全部下载

用MP4转gif动画(因为5秒,而且原视频都是小于5MB),就用高清原图

python 复制代码
'''
结题报告WORD 插入 MP4转gif动画(高清原图)
deepseek、阿夏
20250718
'''


import os
from moviepy.editor import VideoFileClip
def convert_mp4_to_gif(input_folder, output_folder=None, scale=None, fps=10):
    """
    将指定文件夹中的所有MP4文件转换为GIF动画
    
    参数:
        input_folder: 包含MP4文件的输入文件夹路径
        output_folder: 输出GIF的文件夹路径(默认与输入文件夹相同)
        scale: 缩放比例(例如0.5表示缩小一半)
        fps: 输出GIF的帧率
    """
    if output_folder is None:
        output_folder = input_folder
    
    os.makedirs(output_folder, exist_ok=True)
    
    for filename in os.listdir(input_folder):
        if filename.lower().endswith('.mp4'):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, f"{os.path.splitext(filename)[0]}.gif")
            
            print(f"正在转换: {filename}...")
            
            try:
                clip = VideoFileClip(input_path)
                
                if scale is not None:
                    clip = clip.resize(scale)
                
                # 确保转换完整视频,不截断
                clip.write_gif(output_path, fps=fps, program='ffmpeg')
                
                print(f"转换完成: {output_path}")
            except Exception as e:
                print(f"转换 {filename} 时出错: {str(e)}")
            finally:
                if 'clip' in locals():
                    clip.close()

if __name__ == "__main__":
    path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250725AI视频\MP4'
    input_folder = path
    convert_mp4_to_gif(input_folder, scale=0.5, fps=10)

没想到生成出来的gif都是6MB

换一个代码,先测试fps=10

fps=10就是原图质量100%的质量

fps=9

小一点点了

fps=8

fps=7

非常适合

相关代码

python 复制代码
'''
结题报告WORD 插入 MP4转gif动画(降低帧率)
deepseek、阿夏
20250718
'''

import os
from moviepy.editor import VideoFileClip

def convert_mp4_to_gif(input_folder, output_folder=None, scale=None, fps=10, colors=256):
    """
    将指定文件夹中的所有MP4文件转换为GIF动画(优化大小版本)
    
    参数:
        input_folder: 包含MP4文件的输入文件夹路径
        output_folder: 输出GIF的文件夹路径(默认与输入文件夹相同)
        scale: 缩放比例(例如0.5表示缩小一半)
        fps: 输出GIF的帧率(降低帧率可减小文件大小)
        colors: 颜色数量(减少颜色数量可显著减小文件大小)
    """
    if output_folder is None:
        output_folder = input_folder
    
    os.makedirs(output_folder, exist_ok=True)
    
    for filename in os.listdir(input_folder):
        if filename.lower().endswith('.mp4'):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, f"{os.path.splitext(filename)[0]}.gif")
            
            print(f"正在转换: {filename}...")
            
            try:
                clip = VideoFileClip(input_path)
                
                if scale is not None:
                    clip = clip.resize(scale)
                
                # 添加优化参数
                clip.write_gif(
                    output_path,
                    fps=fps,
                    program='ffmpeg',
                    colors=colors,  # 减少颜色数量
                    opt='optimizeplus'  # 优化选项
                )
                
                print(f"转换完成: {output_path}")
            except Exception as e:
                print(f"转换 {filename} 时出错: {str(e)}")
            finally:
                if 'clip' in locals():
                    clip.close()

if __name__ == "__main__":
    path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250725AI视频\MP4'
    input_folder = path
    convert_mp4_to_gif(
        input_folder, 
        scale=0.5, 
        fps=7,  # 进一步降低帧率
        colors=128  # 减少颜色数量
    )

一、猫头鹰

01猫头鹰低头。翻书,眨眼睛,动耳朵

猫头鹰用嘴翻书了,真正的猫头鹰没有拟人化的手,所以要提示用手翻书

03猫头鹰。一只手书,一只手翻书页,眨眼睛,动耳朵

效果不错,符合要求

二、兔子

02兔子在舞蹈上跳舞

效果不错,符合要求

三、小狗

04小狗是消防员,着灭火器向火焰喷射,

火焰动了,但小狗要旋转身体,原图需要重新画,左狗右火

四、大象

05大象踱步,鼻子卷起地上的砖块向上举高

只踱步,没有"卷起任何物品"

07大象踱步,鼻子卷起地上的砖块,卷到楼房上

鼻子卷起砖头,但踱步动作太大,破坏嫌疑,鼻子也没有抬高。

10大象低头,用鼻子卷起地上的一根木头,抬头,用鼻子将木头卷到楼房顶上

效果不错,符合要求

06小松鼠外卖员,骑这助动车送货,行便在马路上

"行驶"背景移动效果有了,但是松鼠快递员没有动作、表情。

08小松鼠外卖员,骑在助动车送货,行使在马路上,眨眼睛,摇耳朵,微笑,双手移动车扶手,转弯

松鼠的动作有了,但是背景不动了

09小松鼠外卖员,骑在助动车送贷,眨眼睛,摇耳朵,微笑,双手移动车扶手,转弯,助动车行驶在马路上(背長移动)

效果不错,超过预期(有速度、有转向)

六、犀牛

用了"犀牛保安"和"犀牛"的关键词,都无法生成,可能是图片上有警服,所以不行