一遍关于自动AI小说推文的实现

PS: 市面上已经出现不少收费的软件工具, 类似极虎漫剪、速推之类封装好的工具, 但其核心功能实现都是一样, 要考验的还是GPT效果; 今年出现的Sora相当这个赛道方向的进化版本, 在以后更有可能冲击影视制作领域(UE4)

功能设计

1、提取分镜场景: 小说文本分句、SD生成图片和TTS文本转语音频

2、小说内容>推导提示词(SD绘画)

3、图片音频合并视频

模型:
TTS(edge)、SD绘画模型(这里使用:cetusMix_Whalefall2)、GPT(这里使用Gemini)

项目地址:story-vision

核心代码

小说分镜提取GPT

prompt = """我想让你对小说内容进行分镜,根据原文描述推断出的场景;推断和补充缺失或隐含的信息,包括但不限于:人物衣服,人物发型,人物发色,人物脸色,人物五官特点,人物体态,人物情绪,人物肢体动作等)、风格描述(包括但不限于:年代描述、空间描述、时间段描述、地理环境描述、天气描述)、物品描述(包括但不限于:动物、植物、食物、水果、玩具)、画面视角(包括但不限于:人物比例、镜头深度描述、观察角度描述),但不要过度。通过镜头语言描述,描绘更丰富的人物情绪和情感状态,你理解后通过句子生成一段新的描述内容。输出格式改为:插画一:原文描述:对应的原文全部句子;画面描述:对应的画面剧情内容;画面角色:画面中出现的角色名称;穿着:主角穿着便装;位置:坐在吧台前;表情:面部线条温和,表情惬意; 行为:手上轻轻晃动着手中的酒杯。环境:吧台的背景是暗调的,烛光在背景中摇曳,给人一种迷离的感觉。如果你理解了这一点要求,请确认这五点要求,返回结果只要这五点的内容,小说内容如下:"""

def split_text_into_chunks(text, max_length=ai_max_length):
    """
    Split text into chunks with a maximum length, ensuring that splits only occur at line breaks.
    """
    lines = text.splitlines()
    chunks = []
    current_chunk = ''
    for line in lines:
        if len(current_chunk + ' ' + line) <= max_length:
            current_chunk += ' ' + line
        else:
            chunks.append(current_chunk)
            current_chunk = line
    chunks.append(current_chunk)
    return chunks

def rewrite_text_with_genai(text, prompt="Please rewrite this text:"):
    chunks = split_text_into_chunks(text)
    rewritten_text = ''
    # pbar = tqdm(total=len(chunks), ncols=150)
    genai.configure(api_key=cfg['genai_api_key'])
    model = genai.GenerativeModel('gemini-pro')
    for chunk in chunks:
        _prompt=f"{prompt}\n{chunk}",
        response = model.generate_content(
            contents=_prompt, 
            generation_config=genai.GenerationConfig(
                temperature=0.1,
            ),
            stream=True,
            safety_settings = [
                {
                    "category": "HARM_CATEGORY_DANGEROUS",
                    "threshold": "BLOCK_NONE",
                },
                {
                    "category": "HARM_CATEGORY_HARASSMENT",
                    "threshold": "BLOCK_NONE",
                },
                {
                    "category": "HARM_CATEGORY_HATE_SPEECH",
                    "threshold": "BLOCK_NONE",
                },
                {
                    "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
                    "threshold": "BLOCK_NONE",
                },
                {
                    "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
                    "threshold": "BLOCK_NONE",
                },
            ]
        )
        for _chunk in response:
            if _chunk.text is not None:
                rewritten_text += _chunk.text.strip()
    #     pbar.update(1)
    # pbar.close()
    return rewritten_text

分镜输出
请添加图片描述

SD文生图

SD的提示词是通过上面输出的分镜文本让GPT编写的

from diffusers import StableDiffusionPipeline
from diffusers.utils import load_image
import torch



model_path = "./models/cetusMix_Whalefall2.safetensors"
pipeline = StableDiffusionPipeline.from_single_file(
    model_path,
    torch_dtype=torch.float16,
    variant="fp16"
    ).to("mps")
generator = torch.Generator("mps").manual_seed(31)

def sd_cetus(save_name, prompt):
    prompt = prompt
    image = pipeline(prompt).images[0]
    image.save('data/img/'+ save_name +'.jpg')

图片效果
请添加图片描述

TTS音频生成

网上有很多关于TTS的, 这里使用了edge提供的

import edge_tts
import asyncio



voice = 'zh-CN-YunxiNeural'
output = 'data/voice/'
rate = '-4%'
volume = '+0%'

async def tts_function(text, save_name):
    tts = edge_tts.Communicate(
        text,
        voice=voice,
        rate=rate,
        volume=volume
        )
    await tts.save(output + save_name + '.wav')

视频效果

第1章 进局子了_out

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 人工智能是一个发展迅速的领域,它被用于许多不同的领域,包括自动驾驶、语音识别和自然语言处理等。它可以通过使用机器学习、深度学习和其他技术来模拟人类智慧,从而实现自动化和智能化。人工智能领域正在快速发展,越来越多的企业正在利用这项技术来实现自动化,提高效率,并且实现未来的目标。 ### 回答2: 人工智能是一门研究如何使计算机能够模拟、延伸和扩展人的智能的学科。它的目标是研发出能够像人一样感知、学习、理解、推理和决策的智能系统。目前,人工智能已经广泛应用于各个领域,如医疗、金融、娱乐和交通等。 人工智能的发展离不开机器学习和深度学习这两个重要的领域。机器学习是通过给计算机提供大量数据和算法,让计算机能够自动学习和改进性能的过程。深度学习则是一种仿生学习方法,通过模拟人脑神经元之间的连接来实现信息的处理和理解。 人工智能的应用领域涵盖了很多方面。在医疗领域,人工智能能够帮助医生进行辅助诊断和治疗决策,提高医疗效率和准确性。在金融领域,人工智能能够通过大数据分析和风险预测,提供智能投资和财务建议。在娱乐领域,人工智能能够根据用户的兴趣喜好,推荐音乐、电影和游戏等内容。 然而,人工智能也带来了一些隐忧和挑战。由于人工智能技术的高度智能化和自主性,一些人担心它可能会取代人类的工作岗位。此外,人工智能也面临着安全性和隐私保护等问题,如何确保人工智能系统的可信度和安全性是亟待解决的问题。 尽管人工智能面临一些困难和问题,但其发展前景依然广阔。随着技术的不断进步和创新,人工智能有望在更多的领域发挥重要作用,改善人类的生活和工作环境。为了充分利用人工智能的潜力,我们需要加强在人工智能算法、伦理道德和法律法规等方面的研究和监管,以确保人工智能的合理和可持续发展。 ### 回答3: 人工智能(Artificial Intelligence,简称AI)是一门研究如何使机器能够模拟和实现人类智能的科学和技术。它关注如何使计算机能够像人一样思考、学习、理解和处理信息,并能够逐渐的提高性能和效率。 人工智能的发展经历了几个重要的阶段。在1950年代至1970年代初期,AI的研究主要集中在符号推理和专家系统上,取得了较为显著的进展。然而,由于当时计算机的处理能力和数据存储能力有限,AI的发展进程遇到了瓶颈。 近年来,随着计算机硬件和软件技术的快速发展,以及大规模数据的产生和存储能力的提高,人工智能迎来了新的发展机遇。机器学习(Machine Learning)成为AI的核心技术之一。通过让机器自动学习和适应数据,机器学习可以帮助机器从数据中识别模式、发现规律,并基于此做出预测和决策。 深度学习(Deep Learning),作为机器学习的分支,近年来得到了广泛关注。它通过构建神经网络模型来模拟人脑的工作方式,实现了在海量数据上进行高效的特征提取和模式识别。深度学习在图像识别、语音识别和自然语言处理等领域取得了重大突破。 人工智能广泛应用于各个领域,包括医疗健康、交通运输、金融投资、智能家居等。AI技术可以帮助医生进行疾病诊断、精确治疗,提高交通效率和安全性,优化投资策略,实现智能化的家居管理等。 然而,人工智能的发展也面临一些挑战和问题。其中之一是数据隐私和安全问题。大规模数据的收集和使用可能涉及个人隐私信息,需要确保数据的安全和合法使用。另外,人工智能的发展也可能导致部分工作的自动化和失业问题。 总之,人工智能作为一门新兴的关键技术,正在改变我们的生活方式和产业结构。虽然还有一些问题需要解决,但人工智能的发展前景仍然非常广阔。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值