tufty.aitufty.ai CLI
CLI

ローカルファイルとアップロード

入力した画像や動画のアップロードと切り抜きの仕組み、および上限。

入力に使えるもの

--product--model--stilltufty uploadはいずれも次の形式を受け付けます。

  • ローカルのパス
  • data: URL
  • http(s)のURL

サーバーはtuftyのストレージにあるファイルしか受け付けないため、CLIはまず各入力をtuftyストレージのURLに変換します。

入力CLIの処理
ローカルファイル、data: URLtuftyのストレージにアップロード
static.tufty.ai上のURLそのまま使用し、再アップロードしない
その他のhttp(s)のURLダウンロードしてからtuftyのストレージにアップロード

アップロードは、サーバーが署名したURLを使ってストレージに直接送られます。APIキーが送られる先はtufty.aiだけで、ストレージや第三者からのダウンロードに送られることはありません。

アップロード前の検証

次の検証はすべて最初のアップロードより前に行われます。いずれかに失敗した場合、アップロードも課金も行われません。

  • 入力の数がツールの要件に合っているか(missing_input / too_many_inputs
  • ローカルファイルが存在するか(file_not_found
  • 1回の実行での画像の合計枚数が上限以内か(too_many_images
  • オプションの値が許可された範囲内か(usage_error

自動切り抜き

画像の入力は、デフォルトで認識・切り抜きが行われ、生成前に被写体と背景が分離されます。入力画像1枚につき1クレジットかかります。

  • 画像ツール:商品画像(+でつないだ各画像を含む)とモデル画像それぞれ1枚につき1クレジット。
  • 動画ツール:静止画1枚につき1クレジット。

被写体が見つからない場合や切り抜き結果が使えない場合は、CLIが標準エラー出力でその旨を伝え、アップロードした元の画像で処理を続けます。すでに被写体だけのきれいな画像であれば、--no-cutoutでこの手順を省略できます。

tufty pet-dressup --product ./sweater.jpg --model ./corgi-cutout.png --no-cutout

1つの商品の複数カット

同じ商品の画像を+でつなぐと、1つの商品として送信できます(最大4枚)。

tufty pet-dressup --product ./hoodie-front.jpg+./hoodie-back.jpg --model ./corgi.jpg
  • ファイル名自体に+が含まれていても、そのファイルが存在する場合は分割されません。data: URLが分割されることもありません。
  • URL内で+そのものを使う場合は%2Bと書いてください。

上限

項目上限
1回の--productで指定できる商品数(+でつないだものは1つとして数える)8
1商品あたりの画像枚数4
1回の--modelで指定できるモデル画像8
1回の実行での画像枚数(商品数 × モデル数 × --count16
--stillの画像画像から動画ではちょうど1枚

動画の整合性チェック

mp4、mov、m4vをアップロードする前に、CLIはファイル構造をチェックします。途中で切れているファイルやmoovインデックスがないファイルは、壊れたままアップロードせずにinvalid_video(終了コード2)を返します。

tufty upload

tufty upload ./corgi.jpg
tufty upload https://example.com/sweater.jpg --format url

{ tool: "upload", data: { url } }を出力します。すでにstatic.tufty.ai上にあるURLはそのまま返され、この場合はログインも不要です。得られたURLはそのままツールに渡せるため、何度も使う画像を毎回アップロードし直す必要がありません。

On this page