Stable Diffusion与OpenAI Whisper提示教程:基于语音生成图片-Whisper & 稳定扩散
人工智能世界的发展速度快得令人难以置信!多亏了最近发布的模型,我们才有能力从口语中创建图像。这为我们打开了很多可能性。本教程将为您提供创建自己的使用这些技术的应用程序的基础知识。
🚀 开始
🔑 注意:对于本教程,我将使用 Google Colab,因为我没有带 GPU 的计算机。您可以使用本地计算机。记得使用 GPU!
首先,我们需要安装我们需要的依赖项。我们将安装 FFmpeg – 用于录制、转换和流式传输音频和视频的工具。
!apt update !apt install ffmpeg
现在我将安装必要的包:
!pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116!pip install git+https://github.com/openai/whisper.git !pip install diffusers==0.2.4!pip install transformers scipy ftfy!pip install "ipywidgets>=7,<8"
🔑 注意:如果您在安装 Whisper 时遇到任何问题,请转到此处。
下一步是使用 Hugging Face 验证 Stable Diffusion。
from google.colab import outputfrom huggingface_hub import notebook_loginoutput.enable_custom_widget_manager()notebook_login()
现在我们将检查我们是否正在使用 GPU。
from torch.cuda import is_availableassert is_available(), 'GPU is not available.'
好的,现在我们准备开始了!
🤖 编码!
🎤 语音转文字
🔑 注意:为了不浪费时间,我记录了我的提示并将其放在主目录中。
我们将从使用 OpenAI 的 Whisper 小型模型从文件中提取我的提示开始。有一些更大和更小的型号,您可以选择使用哪个。
为了提取,我使用了官方存储库中的代码。我还在提示的末尾添加了一些“提示”。
import whisper# loading modelmodel = whisper.load_model('small')# loading audio fileaudio = whisper.load_audio('prompt.m4a')# padding audio to 30 secondsaudio = whisper.pad_or_trim(audio)# generating spectrogrammel = whisper.log_mel_spectrogram(audio).to(model.device)# decodingoptions = whisper.DecodingOptions()result = whisper.decode(model, mel, options)# ready prompt!prompt = result.text# adding tipsprompt += ' hd, 4k resolution, cartoon style'print(prompt) # -> fiery unicorn in a rainbow world hd, 4k resolution, cartoon style
🎨 文字转图片
现在我们将使用 Stable Diffusion 从文本生成图像。让我们加载模型。
import torchfrom diffusers import StableDiffusionPipelinepipe = StableDiffusionPipeline.from_pretrained( 'CompVis/stable-diffusion-v1-4', revision='fp16', torcj_dtype=torch.float16, use_auth_token=True)pipe = pipe.to("cuda")
使用pipe
我们可以从文本生成图像。
with torch.autocast('cuda'): image = pipe(prompt)['sample'][0]
让我们使用以下方法检查我们的结果:
import matplotlib.pyplot as pltplt.imshow(image)plt.title(prompt)plt.axis('off')plt.savefig('result.jpg')plt.show()
哇!也许我们的结果会更好,但我们没有改变任何参数。最重要的是我们能够用我们的声音生成图像。那不是很好吗?记住 10 年前我们能做什么,今天我们能做什么!
希望您和我创建这个程序时一样开心。谢谢你,我希望你会回来查看!– AI未来百科 ; 探索AI的边界与未来! 懂您的AI未来站