本地部署AI音乐生成:从零制作游戏配乐的完整指南
1. 项目概述:当游戏配乐遇上本地AI
最近在独立游戏开发圈里,一个话题讨论得特别热:如何低成本、高效率地搞定游戏配乐。传统方式要么是请专业作曲家,预算动辄上万;要么是去素材库找,但风格和适配度总差那么点意思。直到我上手折腾了Local AI MusicGen,才发现这条路子真的走通了。这玩意儿能让你在自己的电脑上,用几句文字描述,就生成一段风格、情绪、时长都符合你需求的原创音乐,而且完全免费、完全本地,不用担心版权问题。
简单来说,Local AI MusicGen是一个可以部署在你个人电脑上的开源音乐生成模型。你不需要懂乐理,也不需要会编曲,只需要告诉它你想要什么样的音乐,比如“一段紧张刺激的8-bit风格地牢探索BGM”,或者“一首宁静悠扬、带有竖琴音色的精灵村落主题曲”,它就能在几分钟内给你生成对应的音频文件。对于独立开发者、游戏爱好者,甚至是视频创作者来说,这相当于把一个私人作曲助理请回了家。
我花了大概两周时间,从环境搭建、模型选择到实际生成和后期微调,完整地跑通了整个流程。过程中踩了不少坑,也总结出了一套能让“技术小白”也能顺利上手的操作指南。这篇文章,我就把自己从零开始,用Local AI MusicGen制作出可用游戏配乐的全过程、核心原理、参数调优心得以及避坑指南,毫无保留地分享出来。
2. 核心思路与工具选型解析
2.1 为什么选择本地部署而非在线服务?
市面上已经有不少在线的AI音乐生成工具,它们通常界面友好,上手即用。但我最终选择Local AI MusicGen,核心原因有三个:成本、版权和可控性。
在线服务要么按次收费,要么订阅制,对于需要大量尝试和生成多个版本的游戏项目来说,长期成本不低。更重要的是版权,很多在线服务的用户协议里,对于生成内容的商业使用权规定模糊,用在商业游戏里存在潜在风险。而本地部署的模型,生成的所有音频文件都完全属于你,没有任何后顾之忧。
可控性则是更深层的需求。在线服务是个黑盒,你无法控制它用哪个模型、什么参数。本地部署允许你选择不同大小的模型(直接影响生成质量和速度),精细调整每一个生成参数(如时长、温度、top-k等),甚至未来可以用自己的音乐数据集进行微调,让生成的音乐更贴合你的游戏风格。这种“深度定制”的能力,是在线服务无法提供的。
2.2 MusicGen模型的工作原理浅析
虽然我们不需要成为AI专家,但了解一点基本原理,能帮助我们更好地使用它。MusicGen是由Meta(前Facebook)AI团队开发的一个单阶段自回归Transformer模型。说人话就是,它像是一个接受了海量音乐数据训练的“预测大师”。
它的工作流程是这样的:首先,它将音频(比如MP3、WAV文件)通过一个叫EnCodec的神经网络压缩成一系列离散的“音频令牌”,这就像把一首歌翻译成一种特殊的密码。然后,模型学习这些令牌之间的出现规律和顺序。当你输入一段文字描述(Prompt)时,模型会先将文字转换成它理解的向量,然后基于这个向量,一个接一个地“预测”出最可能跟随的音频令牌序列,最后再将这个令牌序列解码回我们听得见的音频。
所以,你给的文字描述越精准,模型“想象”的画面就越清晰,生成的音乐也就越符合你的预期。这解释了为什么“紧张刺激的8-bit地牢BGM”比“好听的游戏音乐”能生成好得多的结果。
2.3 本地部署的软硬件准备
在开始之前,我们需要准备好战场。Local AI MusicGen对电脑有一定要求,主要是显卡。
硬件要求:
- 显卡(GPU):这是最重要的部分。推荐拥有至少8GB显存的NVIDIA显卡(如RTX 3070, 4060Ti及以上)。使用GPU生成速度比CPU快几十倍。显存大小决定了你能加载的模型大小,显存越大,能用的模型越强大,生成质量通常也越好。
- 内存(RAM):建议16GB或以上。
- 硬盘空间:需要预留约10-20GB空间用于存放模型文件和各种依赖库。
软件与环境准备:
- 安装Python:确保你的电脑安装了Python 3.8到3.10版本。可以从Python官网下载安装,安装时务必勾选“Add Python to PATH”。
- 安装CUDA和cuDNN(仅NVIDIA显卡用户):这是让PyTorch(深度学习框架)能够调用你显卡算力的关键。你需要根据你的显卡型号,去NVIDIA官网下载对应版本的CUDA Toolkit(如11.7, 11.8)和匹配的cuDNN库。这一步稍显繁琐,但网上有大量详细的图文教程。
- 安装Git:用于从代码仓库克隆项目。
注意:如果你是AMD显卡或苹果M系列芯片用户,虽然也可以通过CPU或特定转译层(如ROCm for AMD, MPS for Apple Silicon)运行,但速度和体验会大打折扣,甚至可能遇到更多兼容性问题。本文主要围绕NVIDIA GPU环境展开。
3. 一步步搭建你的本地AI音乐工作室
3.1 环境配置与依赖安装
环境配置是第一步,也是最容易出错的一步。我们一步步来,确保每个环节都清晰。
首先,打开你的命令行终端(Windows用CMD或PowerShell,macOS/Linux用Terminal)。
步骤一:创建并激活虚拟环境虚拟环境可以隔离项目依赖,避免不同Python项目之间的包版本冲突。这是专业开发者的好习惯。
# 创建一个名为‘musicgen_env’的虚拟环境 python -m venv musicgen_env # 激活虚拟环境 # Windows: musicgen_env\Scripts\activate # macOS/Linux: source musicgen_env/bin/activate激活后,你的命令行提示符前面应该会出现(musicgen_env)字样。
步骤二:安装PyTorch这是最核心的深度学习框架。我们必须安装与之前准备的CUDA版本匹配的PyTorch。 访问PyTorch官网(pytorch.org),使用它的安装命令生成器。选择你的系统、包管理工具(pip)、CUDA版本。例如,对于CUDA 11.8,你可能会得到如下命令:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118复制并执行它。安装过程可能会比较慢,取决于你的网络。
步骤三:克隆并安装MusicGen仓库现在我们来获取MusicGen的本地运行代码。
# 克隆官方仓库(这里我们使用一个维护良好的第三方实现,通常比直接跑原始研究代码更易用) git clone https://github.com/facebookresearch/audiocraft.git cd audiocraft # 安装项目依赖 pip install -e .这个-e参数代表“可编辑模式”安装,方便后续如果有代码修改能直接生效。
步骤四:安装额外的必要库我们还需要一个友好的界面来操作,而不是每次都写Python脚本。这里我推荐使用Gradio,它能快速生成一个Web界面。
pip install gradio3.2 模型下载与加载策略
安装好环境后,运行前需要下载模型权重文件。MusicGen提供了多种大小的模型:
small(300M参数):速度最快,质量尚可,适合快速原型验证,显存要求低(约2GB)。medium(1.5B参数):质量、速度、显存占用(约5GB)的平衡之选,我最推荐新手使用。large(3.3B参数):生成质量最高,细节最丰富,但速度慢,显存要求高(约10GB+)。melody(1.5B参数):在medium基础上,额外支持根据输入的旋律音频(如哼唱)来生成音乐。
模型文件很大(从几百MB到几个GB不等),首次运行时会自动从Hugging Face服务器下载。但由于网络原因,国内下载可能非常慢甚至失败。
解决方案:手动下载与路径配置
- 访问Hugging Face的模型库,搜索“facebook/musicgen-”。找到对应的模型(如
facebook/musicgen-medium)。 - 在模型页面,找到“Files and versions”标签页,下载里面所有的
.bin或.safetensors文件(主要是pytorch_model.bin)。 - 在你的电脑上创建一个文件夹专门存放模型,例如
D:\ai_models\musicgen。 - 将下载的文件放入对应子文件夹,如
D:\ai_models\musicgen\facebook--musicgen-medium。 - 在运行代码时,通过环境变量或代码指定模型本地路径,避免在线下载。
这里我提供一个整合了手动加载模型的简单Python脚本,你可以保存为run_musicgen.py:
import os import torch from audiocraft.models import MusicGen from audiocraft.data.audio import audio_write import gradio as gr # 1. 设置模型本地路径(请修改为你的实际路径) MODEL_PATH = "D:/ai_models/musicgen/facebook--musicgen-medium" os.environ['TRANSFORMERS_CACHE'] = MODEL_PATH os.environ['HF_HOME'] = MODEL_PATH # 2. 加载模型 print("正在加载模型,首次加载可能需要几分钟...") # 使用 `medium` 模型,并指定缓存目录 model = MusicGen.get_pretrained('medium', cache_dir=MODEL_PATH) # 将模型设置为评估模式并移动到GPU model.set_generation_params(duration=30) # 默认生成30秒 device = "cuda" if torch.cuda.is_available() else "cpu" model.to(device) print(f"模型已加载到 {device}") # 3. 定义生成函数 def generate_music(prompt, duration=30, temperature=1.0, top_k=250, top_p=0.0): try: # 设置本次生成的参数 model.set_generation_params( duration=duration, temperature=temperature, top_k=top_k, top_p=top_p ) # 生成音乐 # 注意:prompt需要是列表形式,即使只有一个描述 res = model.generate([prompt], progress=True) # 保存音频文件 output_path = "./output" os.makedirs(output_path, exist_ok=True) filename = f"generated_{hash(prompt) % 10000}.wav" full_path = os.path.join(output_path, filename) audio_write( full_path, res[0].cpu(), # 将音频数据移回CPU并保存 model.sample_rate, strategy="loudness", loudness_compressor=True ) return full_path, f"生成成功!文件已保存至: {full_path}" except Exception as e: return None, f"生成失败: {str(e)}" # 4. 创建Gradio界面 interface = gr.Interface( fn=generate_music, inputs=[ gr.Textbox(label="音乐描述", placeholder="例如:欢快、活泼的卡通风格平台跳跃游戏主旋律,以钢琴和贝斯为主", lines=2), gr.Slider(minimum=10, maximum=120, value=30, step=5, label="时长(秒)"), gr.Slider(minimum=0.5, maximum=2.0, value=1.0, step=0.1, label="温度 (Temperature) - 控制随机性"), gr.Slider(minimum=50, maximum=500, value=250, step=10, label="Top-K - 采样池大小"), gr.Slider(minimum=0.0, maximum=1.0, value=0.0, step=0.05, label="Top-P - 核采样阈值 (0表示禁用)"), ], outputs=[ gr.Audio(label="生成的音乐", type="filepath"), gr.Textbox(label="状态信息") ], title="Local AI MusicGen 音乐生成器", description="输入文字描述,生成你的游戏配乐。首次生成需要加载模型,请耐心等待。" ) # 5. 启动界面 if __name__ == "__main__": interface.launch(share=False, server_name="127.0.0.1") # 本地运行,不生成公网链接运行这个脚本python run_musicgen.py,稍等片刻(首次加载模型时间较长),浏览器会自动打开一个本地网页(通常是http://127.0.0.1:7860),你的本地AI音乐工作室就建好了!
4. 从描述到音乐:Prompt工程与参数调优实战
有了操作界面,下一步就是学会如何与AI“有效沟通”。描述(Prompt)写得好不好,参数调得对不对,直接决定了输出音乐的质量。
4.1 撰写高效音乐Prompt的黄金法则
不要把它想象成对作曲家下指令,而是像在向一个拥有海量音乐记忆但不太懂人类语言的外星朋友描述你脑海中的“声音画面”。以下是几个核心技巧:
1. 结构分层描述法:最有效的Prompt遵循“风格/情绪 + 乐器/音色 + 节奏/速度 + 具体场景”的结构。
- 反面例子:“战斗音乐”(太笼统)。
- 正面例子:“史诗感、紧张激烈的管弦乐战斗音乐,以急促的弦乐、沉重的铜管和持续的定音鼓为驱动,节奏快,适用于大型Boss战场景。” 后者的信息量远超前者,AI“理解”起来容易得多。
2. 使用AI熟悉的“音乐词汇”:多使用在音乐数据集中常见的风格标签和形容词。例如:
- 风格:8-bit, chiptune, orchestral, cinematic, ambient, lo-fi, synthwave, jazz, funky, rock, electronic。
- 情绪:happy, uplifting, sad, melancholic, tense, suspenseful, calm, peaceful, energetic, powerful。
- 乐器:piano, guitar (acoustic/electric), violin, cello, trumpet, flute, synthesizer, bass, drums。
- 质感/场景:epic, dreamy, mystical, dark, heroic, adventurous, exploration, menu, victory, game over。
3. 融合与限定:你可以组合多种风格,并加以限定来获得独特效果。
- 例子:“将东方笛箫旋律与轻柔的电子氛围音乐结合,节奏缓慢,带有水滴声效,用于水下关卡。”
- 例子:“以钢琴独奏为主的、悲伤而优美的角色死亡主题,旋律简单但感人。”
4. 借鉴与“咒语”分享:社区里积累了很多有效的Prompt,可以直接借鉴或微调:
- “Upbeat and catchy chiptune melody for a retro puzzle game, featuring square wave leads and a bouncing bassline.”
- “Suspenseful ambient drone with deep pulsing bass and occasional metallic textures, for a stealth game.”
- “Calm and peaceful village theme with acoustic guitar and flute, 90 BPM.”
4.2 关键生成参数详解与调优指南
界面中的几个滑动条参数,是精细控制生成结果的钥匙。
时长 (Duration):生成音频的长度。建议从30秒开始尝试。生成长音乐(>60秒)时,模型可能难以保持一致的旋律和结构,有时会出现主题迷失或重复不当的问题。对于游戏循环BGM,生成30-45秒的片段再进行后期循环处理是更佳策略。
温度 (Temperature):这是最重要的参数之一,控制生成的随机性(创造力)。
- 低温度 (如 0.7-0.9):模型更“保守”,输出更可预测、更稳定、旋律性可能更强,但也可能更平淡、缺乏惊喜。适合当你有一个非常明确的风格需求时。
- 高温度 (如 1.1-1.3):模型更“大胆”,输出更多样、更有创意,但可能产生不和谐音或结构混乱。适合用于头脑风暴,寻找灵感。
- 默认值 1.0是一个不错的起点。我的经验是,在生成主旋律或主题音乐时,可以尝试0.8-0.9来获得更扎实的旋律线;生成环境音效或氛围音乐时,可以尝试1.1-1.2来增加变化。
Top-K:在生成每个音符(令牌)时,模型只从概率最高的K个候选中选择。降低Top-K(如50)会使输出更集中、更“安全”;提高Top-K(如500)会增加多样性,但也可能引入不和谐元素。通常保持默认250即可。
Top-P (核采样):另一种采样方式,从累积概率超过P的最小候选集中选择。当Top-P > 0时,Top-K参数会被忽略。设置
top_p=0.9是一种常见的平衡做法,它能动态调整候选集大小。如果你希望严格控制,就设top_p=0.0,然后使用Top-K。
我的常用参数组合:
- 寻找灵感/生成背景氛围:
温度=1.1, top_k=250, top_p=0.0 - 精炼主旋律/主题:
温度=0.85, top_k=200, top_p=0.0 - 生成节奏明确的战斗/动作音乐:
温度=1.0, top_k=250, top_p=0.0
4.3 生成策略:迭代与融合
不要指望一次生成就能得到完美成品。把AI当成一个不知疲倦的创作伙伴,采用“生成-筛选-再生成”的迭代流程。
- 批量生成:针对同一个Prompt,保持其他参数不变,连续生成5-10个版本。你往往会发现,其中一两个版本有特别出彩的乐句或节奏型。
- 片段截取:一个30秒的生成结果,可能前10秒很平庸,但中间15秒的旋律非常棒。用音频编辑软件(如免费的Audacity)把精彩部分截取出来。
- Prompt进化:基于一个较好的结果,反推并优化你的Prompt。例如,生成了一段不错的音乐,你发现其中的小号音色很棒,那么下次Prompt中可以强调“with a prominent trumpet line”。
- 外部引导(使用Melody模型):如果你有一段哼唱的旋律或一个简单的MIDI片段,可以使用
melody模型。先将你的旋律录成音频文件,然后在生成时,模型会尽力围绕你提供的旋律进行发展和配器。这是让AI更贴近你个人想法的高级玩法。
5. 后期处理:让AI音乐真正融入游戏
直接从MusicGen生成的WAV文件,通常还不能直接丢进游戏引擎。它缺少了专业音乐制作的最后一步:后期处理。这一步能让音乐听起来更饱满、更专业,并且适配游戏音频系统的要求。
5.1 基础音频编辑与循环制作
游戏背景音乐(BGM)大多需要无缝循环。而AI生成的音乐首尾乐句很可能不匹配。
使用Audacity制作无缝循环:
- 导入音频:用免费软件Audacity打开生成的WAV文件。
- 寻找循环点:播放音频,找到一段节奏、和弦、情绪都相对稳定的段落(通常避开明显的旋律起始或终止句)。在波形图上,寻找波形零点交叉且前后波形模式相似的位置。这需要一些乐感和耐心。
- 剪切与淡入淡出:
- 在选定的循环结束点剪切音频。
- 关键技巧:对循环的结尾(最后几毫秒)应用一个非常短暂的“淡出”(Fade Out),同时对开头应用一个同样短暂的“淡入”(Fade In)。例如,分别应用一个10-50毫秒的线性淡化。这能极大地平滑循环接缝处的微小不连续感,避免“啪”的跳音。
- 导出:导出为游戏引擎支持的格式,如OGG Vorbis或MP3(OGG通常性能更好)。
5.2 简单的母带处理技巧
你不需要成为混音师,但几个简单的操作能显著提升音质。
- 标准化 (Normalize):确保音频音量达到一个标准水平(如-1dB True Peak),避免声音过小或 clipping(爆音)。在Audacity的“效果”菜单中可以找到。
- 均衡 (EQ) 微调:
- 提升低频 (60-250 Hz):如果音乐听起来单薄,可以稍微提升一点,增加厚重感。
- 削减中低频 (200-500 Hz):如果声音听起来“闷”或“浑浊”,可以适当削减。
- 提升高频 (8kHz以上):如果想让音乐更“亮”、更有空气感,可以轻微提升。但注意不要过度,否则会刺耳。
注意:EQ调整要非常克制,每次增减最好在3dB以内。最好的方法是找一段你喜欢的商业游戏音乐作为参考,对比着调。
- 压缩 (Compression):对于动态范围过大(声音忽大忽小)的音乐,可以施加轻微的压缩(比例2:1或3:1,低阈值,快启动/慢释放),让音量更平稳,在游戏环境中听起来更舒服。Audacity的“压缩器”效果可以尝试。
5.3 在游戏引擎中的应用
以Unity为例:
- 将处理好的音频文件(如.ogg)导入Assets。
- 创建一个Audio Source组件,将音频文件拖入。
- 勾选
Loop选项,使其循环播放。 - 根据场景需要,调整Audio Source的
Spatial Blend(2D音乐设为0,3D定位音乐可以调整)、Volume等参数。 - 可以通过脚本控制Audio Source的播放、暂停、淡入淡出(通过协程修改
volume属性)来实现不同场景音乐的切换。
一个实用的Unity音频管理器脚本片段:
using UnityEngine; using System.Collections; public class MusicManager : MonoBehaviour { public static MusicManager Instance; public AudioSource audioSource; public AudioClip mainMenuMusic; public AudioClip levelMusic; public float fadeDuration = 1.0f; private void Awake() { if (Instance == null) Instance = this; else Destroy(gameObject); DontDestroyOnLoad(gameObject); } public void PlayMusic(AudioClip clip, bool loop = true) { StartCoroutine(CrossFadeMusic(clip, loop)); } private IEnumerator CrossFadeMusic(AudioClip newClip, bool loop) { if (audioSource.isPlaying) { // 淡出当前音乐 float startVolume = audioSource.volume; for (float t = 0; t < fadeDuration; t += Time.deltaTime) { audioSource.volume = Mathf.Lerp(startVolume, 0, t / fadeDuration); yield return null; } audioSource.Stop(); } // 切换音频并淡入 audioSource.clip = newClip; audioSource.loop = loop; audioSource.volume = 0; audioSource.Play(); for (float t = 0; t < fadeDuration; t += Time.deltaTime) { audioSource.volume = Mathf.Lerp(0, 1, t / fadeDuration); yield return null; } audioSource.volume = 1; } }这样,你就可以在游戏中通过MusicManager.Instance.PlayMusic(levelMusic);来平滑切换背景音乐了。
6. 常见问题、排查技巧与进阶思路
6.1 安装与运行问题速查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
ImportError或ModuleNotFoundError | 依赖库未安装或虚拟环境未激活。 | 1. 确认命令行前有(musicgen_env)。2. 在项目目录下重新运行pip install -e .。 |
| 运行后卡在“Loading model...”无反应 | 模型文件下载失败或路径错误。 | 1. 检查网络,或按上文手动下载模型并配置MODEL_PATH。2. 检查CUDA和PyTorch版本是否匹配。 |
报错CUDA out of memory | 显卡显存不足。 | 1. 换用更小的模型(如从large换到medium或small)。2. 在代码中减少duration(生成时长)。3. 关闭其他占用显存的程序。 |
| 生成速度极慢 | 可能在使用CPU运行。 | 检查torch.cuda.is_available()是否为True。确保CUDA和PyTorch安装正确。 |
| 生成的音乐有爆音或严重失真 | 采样率问题或模型生成异常。 | 1. 尝试降低temperature。2. 检查audio_write函数中model.sample_rate是否正确(应为32000)。3. 换个Prompt或随机种子重试。 |
| Gradio界面无法打开 | 端口被占用或防火墙阻止。 | 1. 在launch()中更换端口,如server_port=7861。2. 检查防火墙设置。 |
6.2 生成内容不理想的优化方向
- 问题:音乐风格混杂,不纯粹。
- 排查:Prompt可能包含了冲突的描述词(如同时“calm”和“energetic”)。
- 解决:精简Prompt,聚焦于一个核心风格,用逗号分隔补充描述,而非矛盾词汇。
- 问题:旋律单调或重复。
- 排查:
temperature可能设得太低,或者模型过小(如small)。 - 解决:适当提高
temperature到1.1-1.3;尝试使用medium或large模型;在Prompt中加入“with a varying and expressive melody”等引导。
- 排查:
- 问题:缺乏低音或整体听感单薄。
- 排查:AI生成有时会忽略低频部分。
- 解决:在Prompt中明确加入“with a strong bassline”、“deep bass”、“full-bodied”等词。后期用EQ适当提升低频。
- 问题:结构混乱,没有起承转合。
- 分析:这是当前自回归生成模型的通病,不擅长规划长结构。
- 解决:不要期待生成完整的3分钟交响乐。生成30-60秒的片段,在DAW(数字音频工作站)中手动进行结构编排,将多个生成的精彩片段拼接、发展。
6.3 进阶玩法与扩展思路
当你熟悉基础操作后,可以尝试这些进阶玩法:
- 种子控制:MusicGen的生成具有随机性,但可以通过设置固定的
seed值来复现某次满意的结果。在生成函数中传入seed=某个整数,即可让每次生成都相同。这有利于微调Prompt后做A/B测试。 - 连续生成与拼接:用同一段Prompt但不同seed生成多个30秒片段,在Audacity或Reaper等DAW中挑选出最好的部分,拼接成更长的、结构更丰富的曲目。
- 分层生成与混音:这是一种“分轨”思路。你可以分多次生成:
- Prompt A: “A steady electronic drum beat with kick and snare, 120 BPM.”
- Prompt B: “A warm and pulsing synth bassline, following the drum beat from previous context.”
- Prompt C: “Ethereal and atmospheric pad sounds in the background.” 然后将生成的三条音轨分别导入DAW,对齐后混合在一起,你就能获得层次感更强的音乐。这需要一些音频编辑基础,但效果远超单次生成。
- 结合传统采样与MIDI:将AI生成的音乐作为灵感来源或氛围层,再结合自己录制或采样库中的真实乐器音色、MIDI编曲进行叠加和修饰,形成“AI打底,人工精修”的高效工作流。
折腾Local AI MusicGen的这段时间,我最大的体会是,它不是一个“一键生成神曲”的魔法按钮,而是一个强大的“创意加速器”和“灵感引擎”。它降低了音乐创作的技术门槛,但并没有剥夺创作中最重要的部分——你的审美、你的想法和你的坚持迭代。它最适合的场景,是为独立开发者、游戏 jam 参与者或内容创作者提供快速原型、填补音频空白、激发创作灵感。当你不再为“完全没有音乐”而发愁,而是可以专注于“从10个版本中挑选和打磨最好的那一个”时,整个创作的心态和效率都会截然不同。最后一个小建议,建立一个自己的“Prompt库”和“素材库”,把每次成功的描述词和生成的好片段保存下来,它们会成为你未来项目宝贵的起点。
