アセットと出力 (Assets and Outputs)
ワークフロー内のノードが画像、動画、音声クリップ、その他のファイルを生成した際、そのファイルはディスク上のどこかに保存され、エディタからプレビューやダウンロードができるようアクセス可能になっている必要があります。このページでは、それらのファイルがデフォルトでどこに保存されるか、その場所を変更する方法、および外部ファイルがどのようにワークフローに取り込まれるか(アップロードやドラッグ&ドロップ)について解説します。
生成されたファイルの保存場所
ノードはハードコードされた場所にファイルを直接書き込むことはありません。すべての保存処理はプロジェクト (Project) を介して実行されます:プロジェクトは名前付きディレクトリ群(inputs、outputs、temp など)と、特定の種類のファイルがどのディレクトリにどんな名前で保存されるかを決定するシチュエーション (situations) と呼ばれるファイル保存シナリオを定義します。デフォルトプロジェクトにおける動作は以下の通りです:
- ノードのレンダリング出力(画像、レンダリングされた動画、生成された音声)は、
save_node_outputシチュエーションを通じて、プロジェクトのoutputsディレクトリに保存されます。 - エディタにドラッグしたファイルやプロジェクト外からコピーしたファイルは、
copy_external_fileシチュエーションを通じて、inputsディレクトリに保存されます。 - ノードが処理中に一時的に書き込み、後で自動削除するスクラッチファイルは
tempに保存されます。 - エディタが生成するサムネイルやプレビュー画像は、非表示の
.griptape-nodes-previews/.griptape-nodes-thumbnailsフォルダに保存されます。
これらのパスはいずれもエンジンにハードコードされているわけではありません — プロジェクトから提供されるものであり、プロジェクトファイルによって任意のパス(共有ドライブ、別のサブフォルダ、プラットフォーム固有のパスなど)に変更したり、同名のファイルがすでに存在する場合の挙動をカスタマイズしたりできます。名前付きディレクトリの完全なリストについては ディレクトリ を、各種ファイルが従う保存ルールについては シチュエーション を、これらをカスタマイズする方法については プロジェクト を参照してください。
エディタによるファイルのプレビューとダウンロードの仕組み
エンジンがファイルを表示したりダウンロードさせたりする際、ブラウザに生のファイルシステムパスをそのまま渡すことはありません — 代わりに URL を生成します。ワークスペース内のファイルに対しては、通常、ローカル静的ファイルサーバーへの直接 URL(デフォルトでは http://localhost:8124/workspace/...)が作成されます。それ以外のファイル(ワークスペース外のパス、file:// パス、または {outputs}/render.png のようなマクロパス)に対しては、エンジンはリクエストに応じて一時的な事前署名付きダウンロード URL (presigned download URL) をオンデマンドで発行します。どちらの場合も仕組みは同一です:エディタが URL を要求し、エンジンが実際のファイルの配置場所に基づいて解決し、ブラウザはその URL を使用してファイルを取得またはダウンロードします。これらの URL を手動で管理する必要はありません。必要な時に動的に生成されるものであり、セッション外で長期的に共有することを意図したものではありません。
また、ワークスペース内に staticfiles フォルダが見つかる場合があります(正確な名前は static_files_directory 設定で指定されます)。これは現在多くのノードが使用しなくなった旧式の保存パスに属するものですが(現在は上述のプロジェクトシステム経由で保存されます)、エンジンの静的ファイル API 経由で保存されたファイルは依然としてそこに保存されます。
ワークフローへのファイルのアップロード
外部ファイル(リファレンス画像、ソース動画、音声クリップなど)をワークフローに取り込む処理も、逆方向の同一の仕組みで動作します:ファイルをノード上にドラッグするか、ノードのファイルピッカーを使用すると、エディタがそのファイルをプロジェクトにアップロードします。保存先はプロジェクトの copy_external_file シチュエーションによって決定されます。デフォルトプロジェクトの場合、ファイルの拡張子が認識されると、inputs ディレクトリ内のタイプ別サブフォルダ(images、videos、audio、text)に分類して配置されます。同名のファイルがすでに存在する場合は、上書きする代わりに連番サフィックス(photo_001.png など)が付与されます。
裏側では、ブラウザが直接ファイルシステムにアクセスするのではなく、2 段階のハンドオフが行われています:エディタがエンジンにアップロード用 URL を要求し、その URL に対してファイルのバイナリデータを PUT リクエストで送信します。
関連ページ
- ディレクトリ — 名前付きディレクトリ(
inputs、outputs、tempなど)の完全なリストとパスのカスタマイズ方法。 - シチュエーション — ノードが書き込むあらゆる種類のファイルに対応する保存ルール(保存先、名前の衝突時の挙動)。
- シーケンス — 連番ファイル(
render.0001.exr、render.0002.exrなど)のディレクトリを 1 つの順序付きセットとして読み込む方法。 - マクロ — 保存場所をカスタマイズしたい場合にシチュエーションがファイルパスを構築するために使用するパステンプレート構文(
{outputs}/{file_name_base}.{file_extension})。 - 設定リファレンス — 正確な設定項目(
static_files_directory、workspace_directoryなど)、デフォルト値、および環境変数によるオーバーライド。