shimotsuki-5001 2025-02-24 16:38 采纳率: 0%
浏览 9

AI批量成片的素材选用问题,算法强人看过来~

ai批量成片中有这样一个算法难题,就是要尽可能把所有素材都使用一遍,而且要尽可能保证不同视频之间的素材要不重复。
背景信息:
视频所需素材需要从素材库中选取,每个素材都有时长、宽高比、品牌车型车系(如有)、标签(每个素材身上都可以有多个标签,例如:外观、黑色车身、室外)。
每个视频脚本中都会有多个分镜,内容示例:“
动态:描述动态的脚本文案。
内饰:描述内饰的脚本文案。
路跑:描绘路跑的脚本文案。
促销:描述促销的脚本文案。”
ai成片产品会从该脚本根据品牌车系车型、宽高比等条件中先把可用的素材筛选出来,按照标签把素材聚合分类;然后进行脚本语音合成,获取时长;这个时候视频的各个分镜需要的时长就确定了。
假设有一批视频生成任务,每个视频脚本的生成数量可以是1到5,会有多个视频脚本(不同视频脚本对应的标签也不一样,标签对应的可用素材数量也不一样),单次视频生成任务最多生产50条视频,那么合成出来的视频重复率和对应数量大概是怎样的呢,有什么算法或者类似场景能描述或解决这个问题么?

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-02-24 16:38
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题解答

    你遇到的问题是 AI 批量成片中如何选择素材,使得所有素材都被使用一遍,同时不同视频之间的素材不重复。这个问题可以被转化为一个 combinatorial optimization 问题。

    一个可能的解决方案是使用图论中的 clique detection 算法。首先,构建一个图,其中每个节点表示一个素材,每条边表示两个素材之间的相似性(可以根据时长、宽高比、品牌车型车系等特征计算)。然后,使用 clique detection 算法找到图中的最大 clique,这个 clique 中的素材可以被同时使用。

    具体实现可以使用 Python 中的 NetworkX 库和 SciPy 库。首先,使用 NetworkX 库构建图,然后使用 SciPy 库中的 clique detection 算法找到最大 clique。

    以下是一个简单的示例代码:

    import networkx as nx
    import scipy.optimize as optimize
    
    # 构建图
    G = nx.Graph()
    for material in materials:
        G.add_node(material)
    for material1 in materials:
        for material2 in materials:
            if material1 != material2:
                G.add_edge(material1, material2, weight=similarity(material1, material2))
    
    # 找到最大 clique
    cliques = list(nx.find_cliques(G))
    max_clique = max(cliques, key=len)
    
    # 使用最大 clique 中的素材
    used_materials = []
    for material in max_clique:
        used_materials.append(material)
    

    这个代码只是一个简单的示例,实际实现中可能需要更多的处理和优化。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月24日