見出し画像

Deforum Diffusion v04のクイックガイド

本noteはDeforum DiffusionのdeveloperであるScottieFox氏、huemin
氏の著作になります。
原文はこちらになります。基本的には原文に沿った内容に訳しています。何か誤った訳や情報があれば、までご報告お願いいたします。


このクイックユーザーガイドは、Deforum Diffusionのノートブックにある様々な項目の軽めのリファレンスとして作成されています。
2022年9月11日にリリースされたVer.04を対象としています。
このリファレンスガイドには、パラメータに関する様々な説明が含まれていますが、完全なトラブルシューティングのリソースとして使用されるものではありません。
ユーザーの方々には、このガイドを羅針盤として、より良いインスピレーションを得るために、自分自身のスタイルを探求し、創造することが推奨されます。
このガイドを効果的にする最善の方法は、あなたの発見と経験をコミュニティと共有することです。-ScottiFox

AIアートのシーンは急速に進化しています。このガイドは軽く参照してください。手法、モデル、ノートブックは変化していくでしょう。
このガイドの情報はすべて無意味になります。
悲しいことですが、事実です :' ( -huemin


始める前に!

huggingfaceでアカウントを作成し、.ckptファイルをダウンロードし、Google Driveにファイルを置いてください。

Deforum Stable Diffusionノートブックでは、モデル(~4GB)をダウンロードし、Colab Notebookに正しくリンクすることが必要です。
以下のステップで、モデルをダウンロードし、google driveにアップロードする手順を説明します。

1.https://huggingface.co にアクセスし、サインアップしてアカウントを作成します。

2.アカウントにサインインしたら、https://huggingface.co/CompVis に移動してください。
ここでは、ダウンロード可能なすべてのチェックポイントに「-original」マークが付けられています。

3.「CompVis」ライブラリから「-original」モデル(stable-diffusion-v-1-4-original)を選択し、ダウンロードします。
使用条件に同意する必要があります。この記事を書いている時点では、sd-v1-4.ckptが最も良いモデルです。

4.モデルがコンピュータにダウンロードされるのを待っている間に、Deforum Notebookを開き、再生ボタンをクリックして「Model and Output Paths」セルを実行します。
このセルを実行することで、Google Driveに正しいフォルダとファイル構造が設定されます。
または、googleドライブに以下のフォルダを作成します。

5.モデルのダウンロードが完了したら、このmodelsフォルダにダウンロードしたモデルをアップロードする必要があります。

6.準備完了!




ノートブック・オーバービュー

https://colab.research.google.com/github/deforum/stable-diffusion/blob/main/Deforum_Stable_Diffusion.ipynb

1.Setup

NVIDIA GPU

コードを実行すると、割り当てられた GPU に関する情報が表示されます。
このセルは、ランセッションで接続されたGPUに関する情報を提供します。
Diffusionは一般に、画像のレンダリングにVRAM(ビデオRAM)を多用しています。
Colab GPUのtier listのベストからワーストは以下になります。
A100 (40gb Vram), V100 (16gb Vram), P100 (16gb Vram), T4, K80.

Model and Output Paths

・models_path:アップロードされたランタイムファイルを探す場所を指定します。
・output_path:ランタイム内で画像やファイルを出力する場所になります。

Google Drive Path Variables (Optional)

・mount_google_drive :これチェックすると、ランタイムの代わりにGoogleドライブにパスをリダイレクトします。
・models_path_gdrive:Google Drive上のモデルを指定する場所になります。
・output_path_gdrive:Google Drive上に出力される画像/ファイルの場所を指定する場所になります。

Deforumノートブックでは、models_pathとoutput_pathのパス変数を指定することが前提となっています。
これらの場所は、それぞれStable Diffusion .pthにアクセスし、出力のレンダリングを保存するために使用されます。
パスはローカル上で使用するか、Google Driveに保存するかを選択することができます。
Google Drive上のパスを使用する場合は、mount_google_driveをチェックしTrueにすることが必要となります。
Google Driveをマウントすると、画像の読み書きや保存のためにGoogle Driveにアクセスするよう促されます。

Setup Environment

setup_enviroment をチェックすると、pip/installs を処理する環境を構築します。
print_subprocessをチェックすると、pulledとbuild中のアイテムを表示するかどうかを選択します。

このセルを実行すると、githubリポジトリのダウンロード、pythonライブラリのインポート、Stable Diffusionモデルの設定に必要なフォルダとファイルの作成が行われます。
Setup Environmentのセルが正しくロードされず、実行開始時にエラーが発生する問題が発生する場合があります。
Setup Environmentのセルがエラーなく実行されていることを確認します。

Python Definitions

実行時に使用する関数や定義をビルド環境に取り込みます。
ライブラリから変数を定義し、ランタイムにロードします。

このセルを実行すると、画像作成を進めるために必要な関数が定義されます。
Python Definitionsセルがエラーなく実行されたことを確認します。

Select and Load Model

model_config:実行するファイルのタイプです。デフォルトは.yamlファイルになります。もしくはcustomで選択できます。
・model_checkpoint:選択するとダウンロードした.ckptファイルとデータセットをマッチングできます。
・custom_config_path:.yamlファイルをcustomしていない場合は空欄にしてください。
・custom_checkpoint_path:.cpktファイルをcustomしていない場合は空欄にしてください。

・load_on_run_all:チェックするとcellを含めた全ての機能を実行します。
・check_sha256:チェックサムとの比較を行います(ハッシュをチェックしてファイルの整合性を確認します)
・map_location:GPUコアを使用する場合はcuda(デフォルト)を選択、または使用しない場合はcpuを選択します(非推奨)

Stable Diffusionモデルをロードするためには、model_configファイルとmodel_checkpointがどこにあるかを知る必要があります。
model_config ファイルは、モデルアーキテクチャに関する情報を含んでいます。
model_checkpointは、モデル・アーキテクチャに対応するモデルが含まれています。
トラブルシューティングとしては、configとweightのパス変数の両方が正しいかどうか確認してください。
デフォルトでは、ノートブックはモデルの設定と重みがmodel_pathにあることを想定しています。
model_configとmodel_checkpointのドロップダウンでcustomを選択すると、カスタムモデルの設定パスを提供することができます。
時々、モデルのダウンロードに問題があり、ファイルが破損していることがあります。
check_sha256関数は、モデルの完全性を検証し、使用しても問題がないかを知らせます。
map_locationは、モデルをロードする場所を指定します。
ほとんどのcolabユーザーにとって、デフォルトの "GPU "マップロケーションが最適です。

2.Settings

2a.Animation Settings

animation_modeはnone, 2D, 3D, Video Input, Interpolationから選択できます

NONE
このモードを選択すると、アニメーションモードのすべての機能を無視し、promptリストによって指定された、互いに関連性のない画像のバッチを出力します。
使用されるpromptは、non scheduled 、 non animation listに従います。出力する画像の数は、後のセルの "n_batches "で定義します。

2D
このモードを選択すると、「None mode」のpromptは無視され、フレーム番号でスケジュールされたpromptを参照します。
2Dモードは、生成される画像を一連のまとまった出力につなげようとします。
作成される出力イメージの数は、"max_frames "で定義されます。
2Dモードで制御できる項目は以下になります。

Border, angle, zoom, translation_x, translation_y, noise_schedule, contrast_schedule, color_coherence, diffusion_cadence, and save depth maps
その他のアニメーションパラメータは、2Dモード時には効果はありません。
2DモードではResume_from_timestringが使用可能です。(詳細は後述)

3D
このモードを選択すると、「None mode」のpromptは無視され、フレーム番号でスケジュールされたpromptを参照します。
3Dモードは、生成される画像を一連のまとまった出力につなげようとします。
作成される出力イメージの数は、"max_frames "で定義されます。
3Dモードで制御できる項目は以下になります。

Border, translation_x, translation_y, rotation_3d_x, rotation_3d_y, rotation_3d_z, noise_schedule, contrast_schedule, color_coherence, diffusion_cadence, 3D depth warping, midas_weight, fov, padding_mode, sampling_mode, and save_depth_map. 
3DモードではResume_from_timestringが使用可能です。(詳細は後述)

video_input
このモードを選択すると、すべてのモーションパラメータを無視され、video_init_pathで指定された、ランタイムに読み込まれたビデオを参照します。
video_inputモードでは、「None mode」のpromptは無視され、フレーム番号でスケジュールされたpromptを参照します。
"Max_frames "は、video_inputモードでは無視され、代わりにビデオの長さから参照されたフレーム数に従います。

"extract_nth_frame "で、動画から抽出するフレーム数を指定します。
デフォルトの1では、ビデオのすべてのフレームが抽出されます。
2を指定すると、1つおきにフレームをスキップします。
3 以上の値は、これらのフレーム間を効果的にスキップし、より短い画像バッチを生成します。
現在のところ、video_input モードは他のすべてのcoherenceパラメータを無視し、各フレームにのみ影響を与えます。
Video_Input モードでは、Resume_from_timestring は使用できません。

interpolation_mode
このモードを選択すると、全てのモーションパロメータとcoherenceパラメータを無視し、スケジュールフレーム番号でリストされた、アニメーションpromptで出力フレームをブレンドします。

interpolate_key_frame モードがチェックされている場合、出力フレーム数はpromptのスケジュールに従います。
未選択の場合、interpolationモードはpromptのスケジュールに関係なく、 "interpolate_x_frames" で指定したフレームのスケジュールに従って行われます。
デフォルト値の 4 は、promptの間に 4 フレームの補間を行います。


Animation Parameters:
animation_mode

アニメーションの種類を選択します。

max_frames:
2Dまたは3Dモードで出力する画像の枚数を指定します。

border
画像がフレームより小さい場合に生成されるピクセルの処理を制御します。
"wrap"モードを選択した場合、画像の反対側の端からピクセルを引き寄せます。
"Replicate"モードを選択した場合、ピクセルの端を繰り返し拡張します。
早い動きのあるアニメーションでは、このborder機能が空いたスペースにピクセルを配置するため、「線」ができることがあります。


Motion Parameters

motionパラメータは、キャンバスを1フレーム単位で動かすための命令です

angle
キャンバスを時計回り/反時計回りに1フレーム単位で回転させる2Dオペレーターです。

zoom
キャンバスの大きさを1フレーム単位で乗算的に拡大する2Dオペレーターです。 【不動=1.0】です。

translation_x
キャンバスを1フレーム単位で左右に移動する2D/3Dオペレーターです。

translation_y
キャンバスを1フレーム単位で上下に移動する2D/3Dオペレーターです。

translation_z
キャンバスを遠ざける/近づける移動をする3Dオペレーターです。(スピードはFOVで設定された速度)

rotation_x
キャンバスを1フレーム単位で上下に移動する3Dオペレーターです。

rotation_y
キャンバスを1フレーム単位で左右に移動する3Dオペレーターです。

rotation_y
キャンバスを時計回り/反時計回りに1フレーム単位で回転させる3Dオペレーターです。

noise_schedule
拡散処理の際に1フレーム単位で追加するノイズ量を決定します。

strength_schedule
前のフレームが次のフレームに与える影響の量を決定します。
次の計算式によってstepを制御します。
(strength_schedule * steps)] (stepsの詳細は後述)

contrast_schedule
1フレームごとの全体的なコントラストを調整します(デフォルトのニュートラルは1)

Coherence:

color_coherence
NONE, LAB, HSV, RGBから選択します。

LAB
A * B *軸で示されるカラーバランスです。(cielabで検索してください。)

HSV
色相(Hue)、彩度(Saturation)、明度(Value)によって示されるカラーバランスです。

RGB
赤(Red)、緑(Green)、青(Blue)によって示されるカラーバランスです。

color_coherenceは全体のピクセルカラー情報をサンプリングし、最初のフレームで分析された値を後のフレームに適用するよう傾向付けます。
HSVは鮮やかな色の存在感をバランスよく表現するのに適した手法ですが、非現実的な結果を生むことがあります(例:青いリンゴ)。
RGBは、赤、緑、青の各チャンネルの色の量を偏りなく表現するのに適しています。

diffusion_cadence
diffusionによって影響を受けるフレームの頻度を制御します。

diffusion cadenceは、モーションパラメータで指定された2Dまたは3Dの動きのスケジュールに従って、指定されたフレームにdiffusionを強制的に適用します。
デフォルトの1では、画像出力のシーケンスにおいて、すべてのフレームにdiffusionが適用されます
2 に設定すると、1 フレームおきにしかdiffusionは適用されませんが、モーションは有効なままです。
cadenceのシーケンス中の画像出力は、自動的にブレンドされ、加算され、指定されたドライブに保存されます。
これは、画像のコンテンツとコンテキストが、スキップされたフレーム中に変化したり拡散したりしないため、一部のワークフローで一貫性の錯覚を改善する可能性があります。
4から8などのcadence の高い値を設定すると、より多くのフレームをスキップし、設定された「N」番目のフレームのみをdiffusionします。
これはアニメーションに連続性をもたらしますが、その代償として、コンテンツを追加する余裕はほとんどありません。
極端な例では、フレーム内のモーションがpromptコンテキストを生成することができず、空間はラインまたはコンテンツの近似値で満たされ、予期しないアニメーションパターンやアーティファクトになる可能性があります。
video inputモードとinterpolationモードは、diffusion_cadenceの影響を受けません。

3D Depth Warping:

use_depth_warping
チェックすると画像を動的にワープする命令を行います(3Dモードのみ)。

midas_weight
depthmapを描画する中間点を設定します。範囲は[-1 から +1]です。

fov
キャンバス内を3Dで移動させる際のスケールをtranslation_zの値で調整します。

FOV (field of view/vision) は、translation_z の値がキャンバスにどのような影響を与えるかについて、具体的な指示を与えます。
範囲は -180 から +180 です。この値は曲線の逆二乗則に従っており、0 FOVは未定義で空白の画像出力となります。
180のFOVは、キャンバス平面を平らにし、ビューと一直線に配置し、Z方向の動きを引き起こさないようにします。
FOV の値をマイナスにすると、translation_z 命令が反転し、他の正常な機能を維持したまま、Z 平面に対して反対方向に移動します。
30 fov がデフォルトですが、100 では Z 方向の移行がよりスムーズで遅くなります。
アートやコンテクストの種類によって、FOVの値を変えることで得られる効果は異なります。(例:「リンゴの静物写真」と「植物のある広い部屋」では反応が異なります)。

padding_mode
画角外のピクセルがシーンに入ってきたときの処理を指示します。
"Border" はキャンバスの縁を描画するピクセルとして使用します。
"Reflection"は、画像とタイル・ピクセルの繰り返しにより描画を近づけます。
"Zero"は新たな画素情報を追加しません。

sampling_mode,
"Bicubis"、"Bilinear"、"Nearest"モードから選択します。

速度を重視しない画像リサンプリングでは、BilinearやNearestではなく、Bicubisが選択されることが多いです。
Bilinearが4画素(2×2)しか考慮しないのに対して、Bicubisは16画素(4×4)を考慮します。
Bicubisでリサンプリングされた画像は、より滑らかになり、補間によるアーチファクトも少なくなります。

save_depth_map
チェックすると、出力される画像と一緒にグレイスケールのdepth mapの画像を出力します。

Video Input

video_init_path
Video Inputモードでのみ、ビデオファイルが置いてあるディレクトリを参照します。

extract_nth_frame
この値で指定されたフレームのみが抽出、保存、およびdiffusionされます。
1を指定すると、すべてのフレームに適用されます。
2では、シーケンスのために1つおきにフレームを使用します。それ以上の値は、それぞれその数のフレームをスキップします。

Interpolation

interpolate_key_frames 
promptスケジュールか _x_frames のどちらを無視するかを選択します。

interpolate_x_frames
prompt間を遷移するフレーム数を指定します。
(interpolate_key_frames = true の場合、アニメーションpromptの値に基づいて画像をガイドします。
falseに設定すると、promptの数値を無視しinterpole_x_framesの値を強制します)。

Resume Animation:

resume_from_timestring
チェックすると、指定した地点から作成を開始するよう指示します。

resume_timestring
アニメーション生成の再開時に参照するタイムスタンプを指定します。

現在、resume_animationは2Dと3Dモードでのみ利用可能で、タイムスタンプは設定.txtファイル名として保存され、前回の実行時に生成された画像も保存されます。
フォーマットは以下の通りです。
yyyymmddhhmmss - diffusionを開始した時刻のタイムスタンプ。



2b. PROMPTS

上記例では、2つのpromptのグループがあります。
上は静止状態のpromptsで、下はanimation_promptsです。
animation modeで"NONE"を選択している場合、上のpromptsを参照して、画像を生成します。
その他のモード(2D、3Dなど)を選択している状態では、下のpromptsを参照します。

これらのpromptの構文に注意することは、Diffusionを実行する際に重要です。
静止画を出力する場合、promptの前に数字を配置してはいけません。画像処理中は「スケジュール」は利用できないからです。
上の例のpromptでは、森の画像と女性の画像を別々に生成して表示します。

2D/3Dアニメーションの実行中は、prompt番号のついている、下のグループの指示を参照します。
上記の例では、フレーム0から開始します。例ではリンゴの画像が生成されます。
フレームが進むと、20フレーム目まではリンゴが出力されたままですが、20フレーム目になると、今度はバナナを主役としたDiffusionが始まり、リンゴは参照されなくなります。

Interporationモードでは、まずpromptのリストから1枚ずつ画像を生成するように、promptsを「tween(繋ぐ)」します。
上記例では、リンゴ、バナナ、ココナッツ、ドリアンが描かれます。次に、Diffusionはpromptの間に存在するはずのフレームを描き始め、リンゴとバナナのハイブリッドを作り、バナナとココナッツの間のギャップを埋めていき、最後にドリアンの画像を分解して停止します。
(この特殊なモードでは max_frames を無視し、代わりに interpolate_key_frame/x_frame スケジュールで描画することを覚えておいてください。)

プロンプトが含むべき文脈については、多く資料が存在します。
あなたの作品にふさわしいと思うpromptsを選ぶのは、夢想家であるあなた自身です。
現在、deforumではpromptの重みはまだ実装されていませんが、以下のテンプレートに従えば公正な結果が得られるはずです。

[媒体] [テーマ] [アーティスト] [詳細] [リポジトリ]
例:“A Sculpture of a Purple Fox by Alex Grey, with tiny ornaments, popular on CGSociety”,
(アレックス・グレイによるパープルフォックスの彫刻、小さな装飾付き、CGSocietyで人気)


3. Run

Image settings


W

画像出力の「幅」をピクセル単位で定義します.

H
画像出力の「高さ」をピクセル単位で定義します.

出力される寸法は64ピクセルの倍数でなければなりません。
そうでない場合は解像度は最も近い互換性のある値に切り捨てられます。
適切な推奨される値は、128, 192, 256, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1024です。
これらの推奨値を超える値も可能ですが、OOM(メモリ不足)の問題が発生したり、Midasの計算が正しく行われない可能性があります。
モデルは512x512のデータセットでトレーニングされたため、キャンバスサイズをカバーするために、この「フットプリント」の外までDiffusionを拡張する必要があります。
画像を広く指定した風景画像では、2本の木が横に並んでいたり、空の両側に2つの月があったりすることがあります。
背の高いポートレート画像では、顔が中心ではなく重なってしまうことがあります。

Sampling Settings

seed
特定の出発点を指定します、(-1 = ランダムな出発点)

sampler
空間から画像を符号化・復号化する方法を選択します。

  • klms = Kernel Least Mean Square

  • dpm2 = Denoise Probabilistic Model

  • dpm2_Ancestral = dpm2 with reverse sampling path

  • heun = founded off of Euler by Karl Heun (maths & derivative solving)

  • euler =  fractional-order anisotropic denoise (Euler-Lagrange equations)

  • euler_ancestral = reverse sampling path to Euler

  • plms = Pre-trained Language Model(s)

  • ddim = Denoising Diffusion Probabilistic Models

steps
モデルがpromptに達するまでに命令を反復する回数を指定します。

1フレームの中で、モデルはそのフレームの最終stepでpromptに到達しようとします。
stepを増やすことで、モデルが完成に近づくにつれ、フレームはより小さな刻みに切り分けられます。
stepに多い値を指定すると、時間を費やす事で、出力により多くの定義的な特徴を追加します。
低い値を指定すると、モデルは目標に向かって急ぎ、あなたの指示に対して漠然とした結果をもたらします。

stepがある値を超え、モデルがpromptを達成した場合、それ以上のstepは最終的な出力にほとんど影響を与えなくなります。それは時間は無駄にすることになります。
また、promptによっては、より少ないstepで、望ましい許容範囲内の出力を達成できるものもあります。

2Dおよび3Dアニメーションモードでは、ビデオ中のモーションの連続性を生成するために、coherenceの指定が重要です。
Motion Parameters の "strength_schedule" の値は、前のフレームの割合を利用することで、この一貫性を実現します。
この比率は0〜1.0のスケールで、0は全くまとまりがないことを意味し、全く新しい無関係な画像が拡散されます。
1.0は、前のフレームのすべてが次のフレームに利用され、Diffusionは不要であることを意味します。
この前フレームと新規Diffusionの関係は、以前にDiffusionされたstepで構成されているため、その差を適正化するために残りのstepを補正する計算式が作られました。その式は次のようなものです。
Target Steps - (strength_schedule * Target Steps)
最初のフレームは、すべてのステップに影響します。数式はその後で有効になります。

scale
prompt全体に対してどの程度の効力を発揮するかを指定します。

ほとんどのシーンでは7〜10の範囲が適切ですが、スタイルやアートによってはもっと極端な値が必要になる場合もあります。
3以下のスケール値では、モデルは多くの領域をスキップして面白くないままにするか、単にグレーアウトした状態で、promptを緩く適用します。
25以上の値では、プロンプトが過剰に適用され、過度の彩度、アーティファクト、アンバランスなディテールなどの極端な色彩を引き起こす可能性があります。
いくつかの使用例では、これは望ましい効果かもしれません。
アニメーションモードでは、スケールが高すぎると、色が偏り、露出オーバーになることがあります。

ddim_eta
samplerがddim モードである時のみ有効で、ddim と ddpm のサンプリング方法の比率を -1 から +1 の範囲で制御します。
0 はよりランダムな決定性であることを意味します。

Save & Display Settings:

save_samples
チェックすると出力画像を指定されたドライブに保存します(cadenceフレームを含みます)

save_settings
チェックすると実行時のすべての設定をsnapshot .txtとして、タイムスタンプ付きで保存します。

display samples
チェックすると完成した出力のイメージを画面に表示します。


Batch Settings:

n_batch 
アニメーションモードが"none"の場合においては、promptごとに n 回出力します。

batch_name
フォルダを作成し、そのディレクトリの場所に出力内容を保存します。

seed behavior
以下の設定に基づき、seedに段階的な変更を行います。
・Iter
seedに増分的な変化を行います(例 77, 78, 79 ,80, 81, 82, 83…)
Fixed
seedを変更しません (例33, 33, 33, 33, 33, 33…)
Random
ランダムにseedを変更します (例472, 12, 927812, 8001, 724…)

注意:seedを-1にしている場合ランダムな開始点を選択し、それ以降はseedの操作に従います。
トラブルシューティング: 2D/3Dモードで「fixed」シードを使用すると、出力がオーバーブロウします。"iter"に切り替えてください。

make_grid
静止画をキャプチャして、プレビュー用のグリッドにつなぎ合わせます。

grid_rows
make_gridで設定した画像の配置の数を指定します。

Init_Settings

use_init
チェックすると、カスタムした画像をDiffusionの起点として使用します。

strength
0-1 のスケールで init_image/video の存在の量を決定し、0 は完全にdiffusionによる生成を意味し、1 は完全に init したソースによる生成を意味します

注意:use_initがチェックされていない場合でも、Video inputの場合は影響を受けます。

init_image
使用する init_image の場所を指定します。


注意:アニメーションモードが"none"の場合では、ここで画像のフォルダを参照します。

use_mask
画像のどの部分をグレースケールでDiffusionするかを指示するための画像を追加します。

mask_file
使用するmaskファイルの位置を指定します。

invert_mask
チェックするとマスクのグレースケールを "0 から 1" から、 "1 から 0" に変更します。

mask_brightness_adjust
マスクのフロアの値を変更し、Diffusionの範囲を最適に制御します。

mask_constract_adjust
マスクの最小値/最大値を設定して、 diffusion の領域を制限します。

注:マスクの明るい領域は diffusionが弱く、暗い領域は diffusion が強くなります。



4. Create video from frames

skip_video_for_run_all
notebookを自動実行している場合、手動でチェックしてセルを再実行するまで、ビデオ作成がスキップされます。
デフォルトではオフになっています。

fps
映像がレンダリングされるフレームレートです。

image_path
順番に連結する場合に、イメージの位置を指定します。
必要なタイムスタンプを反映させるためには、ユーザーはこのパラメータを更新する必要があります。

mp4_path
作成したビデオを保存する場所です。

max_frames
生成に必要な画像の枚数を指定します。

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