見出し画像

【無料】寝ている間にスライドショー動画を生成してくれるツールの作り方

こんにちは!あずさです。
生成AIとプログラミングを活用して、皆さまの副業を応援する自動化ツールや画像生成・ツイート生成などに使えるプロンプトを作っています。

今回は画像からスライドショー動画を生成できるツールを作ってみました。
また、私の自動化ツールがどんな感じなのか知ってもらいたいのと、日ごろの感謝を込めて今回は無料で公開することにしました!

実際の挙動

スライドショーにしたい画像をまとめてフォルダに入れ、そのフォルダを指定してコマンドを実行するだけです。

生成した動画がこちらです。任意の解像度で出力できるので、縦動画も横動画も行けます。

画像1枚の表示時間、フェードの有無、動画サイズ、FPSが調整できます。使用できる画像はPNGのみです。コマンドは一括実行できるので、寝ている間にスライドショーを量産できます。コマンド作成用のエクセルシートも用意しています。

本当の自動化をしてみませんか?

スライドショーを作るのは動画編集初心者でも簡単ですし、スライドショーに特化して簡単に作ることができるアプリもあると思います。ですがそれらのアプリのほとんどは結局はGUIアプリ(一般的なボタンをクリックして操作するアプリ)なので、

「画像をセットして、、、仕様を選んで、、、生成ボタンを押して、、、生成されるのを待って、、、生成されたら書き出しボタンを押して、、、書き出されたら新しいプロジェクトを作って、、、」

という操作が必要な、パソコンの前にずっと座っていないといけない単純作業です。

私のツールはCLI(コマンドラインインターフェース)アプリと言って、コマンドプロンプトという黒い画面にコマンドを入力することで実行します。

GUIアプリのようなわかりやすい操作画面がない代わりに、書き出しまでの一連の操作が自動化されているので、コマンドを用意すれば寝ている間に大量の動画を生成することができます。ずっとパソコンの前に座ってなくていい、本当の自動化です。

「プログラミングよくわからない」「黒い画面怖い」という気持ちはわかりますので、今回は皆さまがお気軽に挑戦できるよう、ツールを無料で公開することにしました。

この記事を見てくださっている皆様は動画編集やAI画像生成にチャレンジしたことがある方々だと思いますので、そのような経験のある皆様ならCLIアプリを使いこなせると思いますし、Stable Diffusionをインストールできたレベルの人には丁寧すぎてクドいかもしれないくらい詳細な手順を解説しています。

一緒に本当の自動化を始めませんか?


必要な環境

まず私のマシン環境は以下の通りです。ご自身のPCスペックと比べてご判断ください。

OS:Windows11 Home
CPU:AMD Ryzen 5 4600H
メモリ:16gb

また、以下の2つのツールがインストールされた状態である必要があります。

Python:私の場合は3.10.6
FFMPEG:私の場合は6.1-essentials_build-www.gyan.dev

恐らく私より新しいバージョンであれば(もしくは多少古くても)動くと思いますが、不安な方は同じバージョンをダウンロードしてみてください。

Pythonは以下の手順が参考になります。
https://www.python.jp/install/windows/install.html

FFMPEGはこちらが参考になります。
https://jp.videoproc.com/edit-convert/how-to-download-and-install-ffmpeg.htm

私は試したことがないのですが、FFMPEGはこちらのようなより簡単なインストール方法もあるようです。
https://roboin.io/article/2024/02/25/install-ffmpeg-to-windows/

インストールが完了したら、コマンドプロンプト(windowsの検索窓で「cmd」と検索)でそれぞれ「Python」「ffmpeg」と入力してみて、バージョン情報が表示されれば完了です。(「Python」と入力するとPythonの対話モードが起動するので、バージョンが確認できたらコマンドプロンプトを閉じるか、「exit()」と入力して対話モードを抜けてください。)

ここまでできていれば、ツール構築の50%は完了したと言ってもいいでしょう。

諸注意

■生成時間
先ほど見せた動画サイズ720x1280の縦動画(YouTubeの720p相当)、1枚の表示時間5秒、フェードあり、24FPS、画像10枚の動画で約2分半でした。環境と設定によって異なります。

■利用規約
ソースコードやその他添付物の転載、再配布・再販売、貸出・複数人での利用、譲渡、再利用(派生物の作成)等、作者が不利益を被る利用はお控え下さい。また、このツールに関連して生じたトラブル等の責任も負いません。動画はバンバン作って好きに使ってください!

■配布ファイルのダウンロードについて
当方Chromeブラウザで試したところ、危険なファイルと誤判定されてしまいダウンロードができないことがあるようです。
危険なファイルと誤判定された場合でも、以下の方法でダウンロードが可能です。(同じくnoteで添付ファイルが危険と判定されてしまった人がダウンロード方法を解説してくれています。)

当然危険なものは入れてませんし、note側でもファイルのウイルス判定は行われているのでご安心ください。
一応ファイルの中身も以下に開示します。念のためお知らせでした。ご了承くださいませ。

README_slideshow_generator.html:ツールのドキュメントです。
requirements.txt:ツールに必要なライブラリをインストールするためのファイルです。
slideshow_generator.py:メインのスクリプトです。
_variables.py:設定ファイルです。
スライドショーコマンド作成シート.xlsx:コマンド作成用のエクセルシートです。

PythonとFFMPEGのインストールが完了し(完了している前提で進みます)、上記ご理解いただいた上で「挑戦したい!」と思ってくださる方は、ぜひ先へお進みください。一緒に頑張りましょう!

構築手順と基本的な実行手順を案内するので、実際に動かしてみるところから始めましょう。

知っておくと良い語句

その前に、知っておくと手順の理解が深まる語句について、簡単に説明しておきます。最初はさらっと読んで実際に構築してみて、その後もう一度読むとかなり理解が深まると思います。

  • コマンドプロンプト

    • Pythonやツールを実行するための黒い画面のインターフェイス。

  • パス

    • ファイルやフォルダが持っている、パソコン内のどこにそのファイルやフォルダがあるかという住所のような情報。
      コマンドプロンプトからツールを実行する際に、実行するツールの場所やツールの実行に必要な素材(今回のツールでは画像フォルダ)の場所を指定するために使います。
      パスには相対パス絶対パスがあり、相対パスがあなたが今開いているフォルダからの相対的な住所絶対パスはパソコン全体を見たときの絶対的な住所です。例えばあなたがデスクトップに作成した「Photo」というフォルダを開いていて、そこにはさらに「travel」というフォルダがあり、その中には「tokyo.png」というファイルがあったとします。
      あなたが「tokyo.png」の場所を把握するのには、あなたが既に「Photo」フォルダを開いていることを考慮すると、「travelの中のtokyo.png」という情報があれば十分ですね。これをパスに直すと「travel\tokyo.png」となり、これが相対パスです。
      あなたが「Photo」フォルダを開いていない場合は、「travel\tokyo.png」だけ教えられても、それがどこにあるかわかりません。なので、パソコンの大元のフォルダ(=Cドライブ)を起点とした住所が必要になります。「Photo」フォルダはデスクトップにあったので、「Cドライブのユーザー(あなた)のデスクトップのPhotoフォルダ内の、travelフォルダにあるtokyo.png」という詳細な情報が必要になるます。これをパスに直すと、「C:\Users\(あなたのユーザー名)\Desktop\Photo\travel\tokyo.png」となり、これが絶対パスです。

  • Python仮想環境

    • 例えばPythonで画像を編集したいと思ったら、デフォルトのPythonではできません。画像を編集するには、画像を編集するためのライブラリをインストールする必要があります。ライブラリは「道具」のようなイメージで、ライブラリをインストールするのは「道具を調達して道具棚に収納する」ようなものです。
      ここで問題になるのはライブラリの依存関係です。依存関係とは、「ライブラリAを使うには、バージョン1のライブラリBが必要」と言ったライブラリ同士の関係のことです。
      つまり、ライブラリを次々にインストールしていると、「ライブラリAを使うにはバージョン1のライブラリBが必要だけど、ライブラリCを使うにはバージョン2のライブラリBが必要だ」と言った具合に、ライブラリ同士の競合が起きるのです。
      これを解決するのが仮想環境です。ライブラリが道具で、ライブラリをインストールする場所が道具棚だとしたら、仮想環境は作業する部屋です。部屋ごとに道具棚が分かれているので、部屋1の道具棚にはライブラリAとバージョン1のライブラリBを、部屋2の道具棚にはライブラリCとバージョン2のライブラリBを入れておけば、作業部屋を変えることでライブラリA、ライブラリCの両方が使えて、ライブラリの依存関係による競合に悩まされません。

構築手順

構築は以下の流れで進めます。

  1. 必要なファイルを1つのフォルダにまとめる

  2. Pythonの仮想環境を作る

  3. ツールが実行できるように、仮想環境に必要なライブラリをインストールする

  4. スライドショー動画を作るための画像を用意する

  5. 設定ファイルに必要な情報を書き込む

  6. スライドショー動画を作るためのコマンドをテンプレートに沿って作成する

  7. コマンドを実行してスライドショー動画を作る

1.必要なファイルを1つのフォルダにまとめる

まず、必要なファイルの準備から始めます。こちらのzipファイルをダウンロードしてください。

先述したとおりブロックされてしまった場合は、先ほど紹介したnote記事を参考にダウンロードしてみてください。

ダウンロード後ファイルを解凍すると、中に「slideshow_generator」というフォルダが入っています。

そのフォルダをデスクトップにドラッグアンドドロップしてください。

移動されましたね。

「slideshow_generator」の中身は以下のようになってます。

2.Pythonの仮想環境を作る

次に、ツールを実行できるようにPythonの環境を整えます。まず、デスクトップにて、「slideshow_generator」フォルダを右クリックして、パスのコピーをクリックします。(フォルダをシングルクリックして選択された状態でShift+Ctrl+Cでもパスコピーできます。)

そしたら、「CMD」とWindowsロゴの隣の検索窓に入力して、コマンドプロンプトを開いてください。

コマンドプロンプトはこんな画面です。(ここからはコマンドプロンプトは閉じないでください。)

ここで、「cd 」(末尾に半角スペースあり)と入力した後、Ctrl+Vで先ほどコピーしたパスを張り付けて、エンターを押してください。(パスとcdの間に半角スペースが入っていることを確認してください。)

そうすると、最新行の表記が、「C:\Users\(あなたのユーザー名)\Desktop\slideshow_generator>」となるはずです。これは、先ほどデスクトップに作成した「slideshow_generator」フォルダをコマンドプロンプトで開いている状態です。

ここに、ツールを実行するためのPython仮想環境を作ります。以下のコマンドを実行してください。

python -m venv slideshow_generator_env

python(pythonで) -m(作る) venv(仮想環境を)slideshow_generator_env(slideshow_generator_envという名前で)、という意味のコマンドです。

実行すると一瞬待った後、何事もなかったかのように新しい行に進みます。

何事も起きていないようですが、「slideshow_generator」のフォルダを確認してみると、「slideshow_generator_env」というPython仮想環境のフォルダが作成されていることがわかります。(コマンドプロンプトは閉じないでください。)

仮想環境を起動します。作成された 「slideshow_generator_env」のフォルダを開くと、「Scripts」というフォルダがあります。そのフォルダをさらに開きます。

そうすると「activate.bat」というファイルがあるので、右クリックしてパスをコピーします。

パスがコピーできたら、コマンドプロンプトに戻ってパスを貼りつけます。
パスは「C:\Users\(あなたのユーザー名)\Desktop\slideshow_generator\slideshow_generator_env\Scripts\activate.bat」となっているはずです。

貼り付けてエンターを押すと、以下のように「(slideshow_generator_env)」で始まる画面に切り替わるはずです。これは先ほど作成したPythonの仮想環境、「slideshow_generator_env」を起動してその中にいるという状態です。

3.ツールが実行できるように、仮想環境に必要なライブラリをインストールする

ここからツールが実行できるように、必要なライブラリをインストールしていきます。とはいってもやることはコマンドプロンプトの以下のコマンドを実行するだけです。

pip install -r requirements.txt

「slideshow_generator」のフォルダ内に、「requirements.txt」というファイルがあるのがわかるでしょうか。こちらに必要なライブラリが記載してあるので、それに沿ってインストールするようにコマンドで指示を出しています。

「A new release of pip available」という通知が表示されることがありますが、Pythonのライブラリをインストールするツール(pip)の新しいバージョンが出てますよ、というお知らせなので気にしなくて大丈夫です。

以下のコマンドを実行すると、今の仮想環境の状態を確認することができます。以下と一致していればOKです。(pipとsetuptoolsは一致してなくても大丈夫です。)

pip list

これでツールを実行するためのPython環境は整いました。

4.スライドショー動画を作るための画像を用意する

スライドショーにしたい画像をフォルダにまとめます。フォルダの場所をパスで指定してツールを実行するのでフォルダの場所はどこでも大丈夫ですが、今回はわかりやすく「slideshow_generator」フォルダ内に画像用のフォルダを作ってそこに画像を入れます。

「slideshow_generator」内にて右クリックしてフォルダを作ってください。名前は「images」としました。

そしてスライドショーにしたい画像を「images」フォルダ内に格納してください。適当に10枚ほど格納しました。

画像はほとんどフォルダ内の順番でスライドショーに使われますが、例えば「2.png」「10.png」はフォルダ内では「2.png」「10.png」の順番で並びますが、Pythonでは「10.png」「2.png」として扱われて逆になってしまいます。その場合は、ファイル名を「02.png」「10.png」とすることで解決します。

5.設定ファイルに必要な情報を書き込む

次に動画の仕様を指定する設定を設定ファイルに書き込みます。

設定ファイルはお好きなエディタで開いていただいて構いませんが、私は全員使えるであろうメモ帳で開きます。「slideshow_generator」フォルダ内の設定ファイル「_variables.py」を右クリック→プログラムから開く→メモ帳、で開いてください。

以下のようなテキストファイルが開かれます。入力の前に、キーボードが半角英数入力の状態にあることを確認してください。(日本語や全角文字を入力するとエラーを起こしかねません。)

上から順番に説明しながら入力していきます。

動画サイズは「aspect_ratio」で設定します。(横, 縦) の形式で解像度を指定します。デフォルトは (720, 1280) で、YouTubeの720p相当の縦動画です。

aspect_ratio = (720, 1280)

画像一枚毎の表示時間は、「duration_per_image」で、整数で指定します。デフォルトは5秒です。

duration_per_image = 5

フェード(画像が切り替わるときに徐々に暗転、明転して切り替わる)の有無は「set_crossfade」でTrue, Falseで指定します。Trueでオン、Falseでオフです。デフォルトはオンです。

set_crossfade = True

動画のFPS(1秒間に何コマの動画にするか)は「fps」で指定します。デフォルトは24です。

fps = 24

今回はいずれもデフォルト値で行きます。必要に応じて変更後、Ctrl + Sを押して保存して、ファイルを閉じてください。

6.スライドショー動画を作るためのコマンドをテンプレートに沿って作成する

ツールを実行するコマンドを作ります。「slideshow_generator」内の「スライドショーコマンド作成シート.xlsx」をエクセルで開いてください。(特にエクセル特有の関数や新しい関数は使っていないので、GoogleスプレッドシートやLibreOfficeでも問題ないと思います。)

B列に関数が入っており、A列に画像を入れたフォルダのパスを貼りつければ、B列にコマンドが出来上がるようになっています。

先ほどの「images」フォルダのパスをコピーして、A2セルに貼り付けましょう。

そうするとB2セルにコマンドが出来上がります。完成したコマンドは以下のようになっていると思います。

python slideshow_generator.py "C:\Users\(あなたのユーザー名)\Desktop\slideshow_generator\images"

コマンドのフォーマットは以下のようになっています。コマンドを大量に作るとき以外はサクッと手打ちで作った方が早いかもですね。

python slideshow_generator.py (画像フォルダのパス)

7.コマンドを実行してスライドショー動画を作る

あとはコマンドを実行するだけです。作ったコマンドをコマンドプロンプトに貼り付けてエンターを押して実行しましょう。

実行すると動画の生成が始まります。進捗バーが表示されるので気長に待ちましょう。

生成が完了したら、「images」フォルダを確認してみましょう。そうすると「slideshow_000.mp4」という名前でスライドショー動画が生成されているはずです。

生成された動画はこんな感じです。

構築と基本的な使い方は以上です、お疲れ様でした!

終了、起動の仕方

Pythonの仮想環境は、「deactivate」コマンドで終了できます。実行すると先頭の「(sideshow_generator_env)」が消えて仮想環境が閉じていることがわかりますね。

再度仮想環境を起動して、ツールを実行できる状態にするには、以下の手順を参考にしてください。必要なライブラリはすでに仮想環境「slideshow_generator_env」にインストールされているので、もうツールを実行できる状態です。

  1. コマンドプロンプトで「cd (slideshow_generatorフォルダのパス)」を実行し、slideshow_generatorフォルダを開く

  2. slideshow_generatorフォルダ内に「slideshow_generator_env」というPython仮想環境のフォルダがあるので、その中の「Scripts」フォルダ内にある「activate.bat」ファイルのパスをコピーしてコマンドプロンプトで実行

仮想環境の簡単な起動方法

手順通りに構築を進めた人は、以下のコマンドで一気に仮想環境を起動できるはずです。コマンドは「&&」で繋げば1行で順番に実行できます。よく使うコマンドはメモなり、一緒に開くことが多いであろうコマンド作成シート等に保存しておくと便利です。

cd "C:\Users\(あなたのユーザー名)\Desktop\slideshow_generator" && "C:\Users\(あなたのユーザー名)\Desktop\slideshow_generator\slideshow_generator_env\Scripts\activate.bat"

コマンドの一括実行方法

大量のコマンドを一括で実行する方法を解説します。まずエクセルシートでコマンドを作ります。

Windowsの検索窓で「memo」と入力してメモ帳を起動します。

メモ帳にコマンドを貼りつけます。

Ctrl+Sを押して「slideshow_generator」内に保存します。このとき、拡張子を「.bat」(私はファイル名を「command_list.bat」としました)、エンコードを「ANSI」としてください。

あとは作成したbatファイルのパスをコピーして、

仮想環境を開いたコマンドプロンプトに貼り付けて実行するだけです。batファイルに記述したコマンドが順番に実行されます。

自動化ツールたくさん公開してます

いかがでしたか?無事動かせましたでしょうか?

私の自動化ツールはだいたいこんな感じで難易度が少し高め動作保証やサポートは無しの代わりに、
本当の自動化ができるCLIツールの形式で、1~2.5万字と30~70枚の画像による解説と一緒に、990円~2990円の爆安で提供しています。
また、雑学・解説動画を生成するツールには台本生成用のChatGPTプロンプトも付属してます。

新しいツールの方が洗練されているので、今現在一番クオリティが高いのはいわゆる「ずんだもん解説動画」を自動生成できる以下のツールですが、面白い長尺の解説動画を作るにはChatGPTが作った台本を手直しする必要があり、台本の工程含めて自動化するのはちょっと難しいです。

一方以下の流行りのフォーマットでの雑学動画生成ツールは、ChatGPTによる台本でもそこそこ面白い動画が作れます。実際一番人気で、たくさんの方にご利用いただいています。

また、皆さまの副業に役立ちそうな生成AIプロンプトもいくつか公開しています。

皆さまの副業自動化、生成AI活用の一助となれば嬉しいです!


この記事が気に入ったらサポートをしてみませんか?