AIがクリエイティブな動画を自動生成: ビッグモデルを活用する方法

AIがクリエイティブな動画を自動生成: ビッグモデルを活用する方法

著者 | 崔昊

レビュー | Chonglou

まとめ

この記事では、大規模な言語モデルと AI ビデオ生成モデルを活用して、高度にパーソナライズされたクリエイティブなビデオ コンテンツを作成する方法について説明します。この記事では、問題の分析、目標の設定、ツールとモデルの選択、実際の運用手順など、構想から実装までのプロセス全体を詳しく説明します。使用されるテクノロジーとツールには、OpenAI の GPT-3.5-turbo、Hugging Face の zerscope_v2_576w モデル、Langchain や PyTorch などの補助ツールが含まれます。

導入

科学技術の急速な発展に伴い、人工知能はデータ分析や自動運転などの分野に限定されるだけでなく、クリエイティブ産業における応用もますます広がっています。では、ビッグ言語モデルと AI ビデオ生成モデルを組み合わせることで、高度にパーソナライズされたクリエイティブなビデオ コンテンツを実現できるのでしょうか?この記事では、いくつかのキーワードを入力するだけで、ビッグモデルを利用してクリエイティブな動画を生成する方法を紹介します。 OpenAIとHuggingが使用された オープンソースライブラリ、LangChain、その他のテクノロジーやフレームワークに直面し、コードを記述し、情報を検索することで完全な開発プロセスを紹介します。

突然のひらめき

ソーシャルメディアを閲覧していると、さまざまな素晴らしいクリエイティブな動画をよく見かけます。これを見るたびに、こんな作品が作れたらどんなに素晴らしいだろう、と思わずにはいられません。しかし問題は、プログラマーとして、私は創造性に自信が持てなかったことです。では、独自のクリエイティブなビデオを作成するにはどうすればよいでしょうか?

突然、大規模言語モデルとAI動画生成技術を思いつきました。大規模言語モデルはテキストの生成に優れており、AI ビデオ生成モデルはテキストからビデオを生成できます。それで、彼らは協力してこの創造的ギャップを埋める手助けをしてくれるのでしょうか?

思考の整理:目標を明確にし、タスクを細分化する

いくつかの予備的なアイデアが浮かんだら、次のステップは考えを詳細に整理し、解決する必要がある問題を明確にすることです。これにより、実行可能な目標を設定できるだけでなく、その後の行動計画の明確な方向性も得られます。私たちの目標は、最終目的を念頭に置いて、コンピューターを利用してクリエイティブなビデオを自動的に生成することです。これは、アイデアの生成とビデオの生成という 2 つのステップに分けられます。

質問1: 創造性の欠如をどう解決するか?

ほとんどのプログラマーにとって、創造性は得意分野ではありません。しかし、幸いなことに、この点で役立つ大規模な言語モデルが現在存在します。プロンプトを適切に設定したり、既存のテンプレートを使用したりすることで、特定のクリエイティブ スクリプトを生成することもできます。

私の最初の考えは次のとおりです。

1. GPT-3.5-turbo などの適切な大規模言語モデルを見つけます。

2. 効果的なテキストプロンプトテンプレートを設計または見つけます。

3. 満足するまで、テキスト生成実験を複数回実行します。

質問 2: ビデオを生成するにはどうすればいいですか?

クリエイティブなテキストを生成した後、次のステップはこれらのテキストをビデオに変換することです。私たちはプロのビデオ制作者ではないので、既成のユーザーフレンドリーな AI ビデオ生成モデルを見つけることは非常に役立ちます。

これは私にとっては難しくありません。次の手順で目標を達成できるかもしれません。

1. 最大のモデルライブラリHuggingでオープンソースのAIビデオ生成モデルを検索する 顔で検索すれば必ず何かが見つかります。

2. モデルの入力要件とその使用方法を理解します。

3. 予備的なビデオ生成テストを実施し、必要に応じて調整を行います。

まず、大規模な言語モデルを使用して創造的な問題を解決します。次に、AI ビデオ生成モデルを使用して、特定のビデオ コンテンツに創造性を実現します。このように、私たちが「クリエイティブマスター」でなくても、印象的なクリエイティブビデオを作成することは十分に可能です。

情報を見つける: ツールボックスを装備する

目標の分析を通じて、2つの主要な問題をまとめ、それぞれの問題に対する基本的な解決策を得ました。次に、対応するツールを理解し、ツール、フレームワーク、ライブラリをテストしてアイデアを検証する必要があります。

次に次の技術を選択しました

大規模言語モデル: OpenAI の GPT-3.5-turbo

OpenAI は AI コミュニティにおいて非常に影響力のある組織であり、その GPT モデル ファミリは大規模言語モデルとほぼ同義になっています。同時に、他のバージョンと比較して、GPT-3.5-turbo のトークン料金はより手頃であり、個人や小規模プロジェクトに非常に適しています。

ここでは、GPT-3.5-turbo を使用してクリエイティブなテキストを生成する予定です。特定のプロンプトとパラメータを設定することで、モデルに創造的価値の高いテキスト コンテンツを生成させることができました。

AIビデオモデル: cerspense/zeroscope_v2_576w

Hugging Face のプラットフォームでは、このモデルは高い星評価で大きな注目を集めており、これは通常、コミュニティによるその有効性の認識です。では、このプラットフォーム上で必要なモデルをどのように見つけるのでしょうか?

まず、プラットフォームにログインし、ホームページで「タスク」を選択します。

タスク内のすべてのハグを一覧表示する モデルが顔に実行できるタスクハグ すべてのモデルが分類されました。テキストからビデオ」カテゴリを見つけてクリックして入ります。

次のページでは、このタイプのモデルについて簡単に紹介します。モデルにテキストを入力すると、ビデオが出力されると表示されます。 「参照」をクリックします 「モデル」ボタンをクリックすると、すべてのモデルを参照できます。

拡張モデル一覧では、トップモデルのzeroscope_v2_576wのダウンロード数28.5Kとなっています。多くの方にご利用いただいているようで、星の数もかなり多いです。

クリックするとモデルの詳細ページが表示されます。このページでは、モデルの簡単な説明とモデルの使用方法が示されます。抱きしめ合うから faceでホストされているモデルは無料で使えるので、指示に従って呼び出すだけで大丈夫です。 具体的な呼び出し方法については、次のコードの説明で説明します。

モデルを見て、基本的に問題は見つからなかったので、これを選ぶことにしました。テキストをビデオ コンテンツに変換する役割を担います。

補助ツール: Langchain、PyTorch、Diffusers

2 つの大きなモデル ツールの問題を解決した後も、まだ助けが必要です。

  • Langchain: 大規模モデルの足場として、Langchain のプロンプト テンプレートを使用すると、モデルの入力プロンプトをより効率的に設定および最適化できます。
  • PyTorch: 強力な機械学習ライブラリである PyTorch を使用すると、特定の機能をカスタマイズできるため、最初の 2 つをより柔軟に使用できます。
  • ディフューザー ライブラリ: `DiffusionPipeline` や `DPMSolverMultistepScheduler` などのツールを提供し、これらを使用してビデオ生成プロセスをさらに最適化できます。

Langchain は主に大規模言語モデルの入出力を最適化するために使用され、PyTorch はより高度なカスタマイズと最適化に使用され、Diffusers ライブラリを使用するとビデオ生成の品質をさらに向上させることができます。

ツールとモデルを選択することで、自分用のツールボックスを構築します。それぞれの選択は、特定の考慮事項とニーズを念頭に置いて行われ、クリエイティブなビデオ生成プロセスで遭遇する可能性のある問題を解決するように設計されています。こうすることで、たとえ私が「クリエイティブの第一人者」でなくても、印象的でクリエイティブなビデオを作成できるという自信が持てるようになります。

慎重な実験:遭遇した問題と調整

最初は、 「子猫」、「テクノロジーの感覚」、「実行中」など、 zeroscope_v2_576wモデルにいくつかの簡単なキーワードを与えてテキストを生成しようとしました。しかし、私が生み出した創造的なアイデアは十分に豊かではないことにすぐに気づきました。言語の感度: 英語入力の方がうまく機能します。これは私が以前予想していたことと似ています。単純なキーワードでビデオを生成するだけでは不十分な可能性があります。

以下のコードでクリエイティブなテキストの出力を実現しました

 from langchain.llms import OpenAI from langchain import PromptTemplate llm = OpenAI(model_name="gpt-3.5-turbo") template = """我想让大模型根据文字生成创意视频,我本身没有什么思路, 会输入几个关键词,你根据这几个词生成具有创意的一句话(英文),在15token以内。我把中文输入放到这里:{input},将你生成的这句话直接输出,由于我要用这句话直接生成视频,所以在输出的时候不要附加除了这句话之外的内容。 """ prompt = PromptTemplate( #接受用户输入input_variables=["input"], #定义Prompt tempalte template=template, ) #这里是真正的用户输入final_prompt = prompt.format(input='小猫科技感奔跑') response = llm(final_prompt) print (f"大语言模型的回应: {response}")

いつものように、コードを簡単に紹介します。

このコードは、OpenAI の GPT-3.5-turbo モデルと対話して、クリエイティブなビデオ コンセプトのテキストを生成するために使用されます。コードの各部分の説明は次のとおりです。

1. 必要なモジュールをインポートします。

- `from langchain.llms import OpenAI`: GPT-3.5-turbo と対話するために、Langchain ライブラリに OpenAI モジュールをインポートします。

- `from langchain import PromptTemplate`: モデルの入力を構築およびフォーマットするために使用される Langchain の PromptTemplate クラスをインポートします。

2. 大規模モデルを初期化します。

- `llm = OpenAI(model_name="gpt-3.5-turbo")`: OpenAIのGPT-3.5-turboモデルを初期化します。

3. テンプレートを定義します。

- `template = """..."""`: 大規模モデルを操作するための最終プロンプトを生成するために使用される文字列テンプレートを定義します。

4. PromptTemplate オブジェクトを作成します。

- `prompt = PromptTemplate(...)`: 以前に定義した文字列テンプレートと入力変数を使用して PromptTemplate オブジェクトを作成します。

5. 最後のプロンプトを生成します。

- `final_prompt = prompt.format(input='テクノロジー感覚で走る子猫')`: PromptTemplate オブジェクトをフォーマットし、実際のユーザー入力を挿入します。

6. 大きなモデルを操作する:

- `response = llm(final_prompt)`: フォーマットされたプロンプトを使用して GPT-3.5-turbo モデルと対話し、モデルの出力を取得します。

7. モデルの応答を出力します。

- `print (f"大規模言語モデルからの応答: {response}")`: モデルによって生成されたクリエイティブ テキストを出力します。

大语言模型的回应: "Technology-driven feline streaks across in a futuristic blur."

大きなモデルは上記の英語の文章で応答しました。創造性は感じられませんが、まだテストが必要です。

入力プロンプトの部分で長い間苦労しました。GPTモデルは時々、不要な「ナンセンス」を出力することがあります。最終的には、要件を満たすために創造的な文章のみを出力するように強制しました。ここでの応答はビデオ生成モデルに渡す必要があるため、無関係な情報が少ないほど良いです。

次のコードは、zeroscope_v2_576wビデオモデルへの応答を返します

 # 导入PyTorch库,这是一个用于机器学习和深度学习的开源库import torch # 从diffusers库中导入DiffusionPipeline和DPMSolverMultistepScheduler类# DiffusionPipeline用于处理扩散流程,DPMSolverMultistepScheduler用于调度多步解算器from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler # 从diffusers.utils模块中导入export_to_video函数,用于导出生成的视频帧from diffusers.utils import export_to_video # 使用from_pretrained方法从预训练模型"cerspense/zeroscope_v2_576w"中加载DiffusionPipeline # 并设置数据类型为float16以减少内存使用和提高计算速度pipe = DiffusionPipeline.from_pretrained("cerspense/zeroscope_v2_576w", torch_dtype=torch.float16) # 从当前管道的调度器配置中创建一个新的多步解算器调度器(DPMSolverMultistepScheduler) pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) # 启用CPU离线模型加载,在有限的GPU内存下运行更大的模型pipe.enable_model_cpu_offload() # 设置输入提示prompt = response # 使用管道进行推理,得到生成的视频帧# num_inference_steps设置为40,表示使用40步进行推理。 # 扩散模型需要通过扩散:添加噪声,收缩:去除噪声,最终生成数据。 # height和width设置生成视频的分辨率# num_frames设置生成视频的帧数video_frames = pipe(prompt, num_inference_steps=40, height=320, width=576, num_frames=24).frames # 使用export_to_video函数导出生成的视频帧,保存为视频文件video_path = export_to_video(video_frames)

このコードは主に、大規模モデルによって生成されたクリエイティブ テキストをビデオに変換するために使用されます。コードには複数のステップとコンポーネントが含まれており、コードの各部分の説明は次のとおりです。

必要なライブラリとモジュールをインポートする

1. PyTorch ライブラリをインポートします。PyTorch は、機械学習とディープラーニング用のオープンソース ライブラリです。

2. DiffusionPipeline と DPMSolverMultistepScheduler をインポートします。これら 2 つのクラスは、それぞれ拡散プロセスの処理とマルチステップ ソルバーのスケジュール設定に使用されます。

3. export_to_video 関数をインポートします。この関数は、生成されたビデオ フレームをビデオ ファイルとしてエクスポートするために使用されます。

4. 事前トレーニング済みの DiffusionPipeline をロードします。`from_pretrained` メソッドを使用して、事前トレーニング済みのモデル「cerspense/zeroscope_v2_576w」をロードします。

5. スケジューラの設定: 現在のパイプラインのスケジューラ構成から、新しいマルチステップ ソルバー スケジューラを作成します。

6. CPU オフライン モデルの読み込みを有効にする: この手順により、限られた GPU メモリで大規模なモデルを実行できるようになります。

7. 入力プロンプトを設定します。大規模モデルによって生成されたテキスト (変数 `response` に格納) を入力として使用します。

8. 推論を実行する: DiffusionPipeline を使用して推論を実行し、ビデオ フレームを生成します。

- `num_inference_steps=40`: 推論プロセスは 40 ステップ実行されます。

- `height=320, width=576`: 生成されるビデオの解像度を設定します。

- `num_frames=24`: 生成されるビデオのフレーム数を設定します。

9. 生成されたビデオ フレームをエクスポートします。`export_to_video` 関数を使用して、生成されたビデオ フレームをビデオ ファイルとして保存します。

全体的なロジックは、まず必要なコンポーネントとライブラリを初期化し、次に適切なパラメータと入力プロンプトを設定し、最後に推論を実行して結果をエクスポートすることです。

結果:終わりは新たな出発点でもある

上記のすべてのトラブルの後、 video_path ディレクトリにファイルを生成しました上記のコードはco - lab仮想マシンを使用して実装されました。

Google Colaboratory (略して Colab) は、Python コードを記述および実行するためのクラウドベースの Jupyter Notebook 環境です。データサイエンス、機械学習、ディープラーニングなどの分野の研究や教育に便利なプラットフォームを提供します。主な機能と利点は次のとおりです。

主な特徴:

1. 無料で使用可能: Colab は無料のサービスであり、使用するには Google アカウントのみが必要です。

2. 便利な共有とコラボレーション: Google ドライブと統合されており、ファイルのアップロード、ダウンロード、共有が容易になります。複数の人が同じノートブックをリアルタイムで編集することもできます。

3. GPU サポート: Colab は無料の GPU リソースを提供しており、複雑な機械学習やデータ処理タスクを実行するのに非常に役立ちます。

4. *使いやすい: 設定は不要で、Web ブラウザーを開いてコードを記述して実行するだけなので、初心者にも専門家にも適しています。

5. *豊富なライブラリ サポート*: NumPy、Pandas、TensorFlow、PyTorch など、多数の Python ライブラリがプリインストールされており、手動でインストールしなくても直接使用できます。

video_path配置されているディレクトリを出力します

 print(video_path)

tmp で見つかりました ディレクトリ、ビデオをダウンロードして開いて再生しました。この猫の抽象的な鳴き声を見てください。走っているからでしょうか前足はどこにあるのでしょうか?

プロンプトワードは不正確ですか?そこで、大規模なビデオ モデル用に生成された文章を提供していることをgpt -3.5- turbo に知らせるために、プロンプトの単語を次のように調整しました

大きなモデルでテキストに基づいてクリエイティブなビデオを生成したいと考えています。ビデオを生成するために使用するモデルは、Hugging face の zeroscope_v2_576w です。このモデルが、あなたが与えるプロンプトを理解できることを願っています。

私自身はアイデアがありません。いくつかのキーワードを入力し、15 トークン以内でこれらの単語に基づいた創造的な文章 (英語) を生成するようにお願いします。

中国語の入力をここに置きます: {input}、生成された文章を直接出力します。この文章を使って直接ビデオを生成したいので、出力時にこの文章以外は何も追加しないでください。

それで、私は次のような創造的なテキストを得ました。

 A futuristic, tech-savvy cat swiftly dashes through time.

良い結果が得られることを期待して、緊張しながらもう一度動画を作成しました。

今回はもっと猫っぽくて、青い「スカーフ」を巻いてます。これがテクノロジー感でしょうか?

最終的には、「子猫」「テクノロジー感」「走る」といった要素を盛り込んだクリエイティブな動画が完成しましたが、期待通りの仕上がりにするには継続的な調整が必要です。つまり、これはまだ始まりに過ぎません。今後は、アプローチをさらに最適化し、より多様なタイプのクリエイティブ コンテンツに挑戦していく予定です。

要約する

さまざまな AI テクノロジーとツールを統合することで、たとえ「クリエイティブマスター」でなくても、クリエイティブでパーソナライズされたビデオ コンテンツを生成できます。実験中、言語の感度や入力効果などのいくつかの問題に遭遇しましたが、継続的な調整と最適化を通じて、最終的に目標を達成しました。これは、クリエイティブ業界で貢献したいが自信がない人々に可能な道を提供するだけでなく、クリエイティブ分野における AI の大きな可能性を示しています。これらの高度なテクノロジーを合理的に組み合わせて適用することで、従来の限界を打ち破り、より魅力的で個性的な作品を生み出すことができます。

著者について

51CTO コミュニティ エディター兼シニア アーキテクトの Cui Hao 氏は、ソフトウェア開発とアーキテクチャで 18 年の経験があり、分散アーキテクチャでは 10 年の経験があります。


<<:  作業員にとって、端末に大きなモデルをインストールすることは、祝福でしょうか、それとも呪いでしょうか?

>>:  マイクロソフト、AIアシスタントCopilotを搭載したWindows 11のメジャーアップデートをリリース

ブログ    

推薦する

シンプルで効率的なアルゴリズムが衛星IoTを現実に近づける

背景モノのインターネット (IoT) の継続的な発展は、ここ数年にわたって現実のものとなってきました...

たくさん学びました!世界で最も遅いソートアルゴリズム!

今日は、世界で最も遅いソートアルゴリズムである Bogo ソートについてお話ししたいと思います。では...

...

パスワードを解読する方法: 暗号ハッシュアルゴリズムの識別

Q: パスワードのビットシーケンスから暗号化アルゴリズムを識別することは可能ですか? A: 外部ソー...

指紋認証は本当に安全ですか?答えはそうではないかもしれない

科学技術の継続的な発展に伴い、ますます多くのブラックテクノロジーが私たちの生活に浸透し始めており、そ...

世界がH100を奪い合っている! Nvidia が GPU の優位性を達成、主任科学者が成功の 4 つの要素を明らかに

現在、NVIDIA は GPU の優位性の座にしっかりと座っています。 ChatGPT の誕生により...

人工知能が医師の「映画鑑賞」を支援:診断精度は95%を超える

[[233292]]最近、北京天壇病院は、世界初のCTおよびMRI神経画像人工知能支援診断製品「Bi...

...

これは本当に天才的ですね!パーセプトロンを組み合わせると、ニューラル ネットワークになるのではないでしょうか。

[[354709]]みなさんこんにちは。今日もディープラーニングについてお話していきましょう。クラ...

...

人工知能はディープラーニング技術を使用して先進運転支援システム(ADAS)を強化します

翻訳者 |李睿レビュー | Chonglou人工知能と機械学習は、ディープラーニング技術の力を活用し...

失敗が頻発する中、AI 翻訳者はどのように進歩の道を続けるべきでしょうか?

[[248512]]当時、英語に支配されていた恐怖を覚えている人がどれだけいるでしょうか?前日に覚...

低速自動運転と高速自動運転に関する議論

前回の記事「自動運転車に「道路を認識」させる方法」では、主に自動運転車における高精度地図の重要性につ...