SeaArtの画風をFal.aiで再現|AIイラスト生成を自動化した実録

Fal.aiで生成した短髪・丸メガネの美少女イラスト(顔アップ・真顔)

PR

AIで記事作成を効率化したいなら → 高品質SEO記事生成AIツール【Value AI Writer byGMO】

こんにちは!Conomacです。

当ブログ(Tech)ではこれまで、OpenClaw×DeepSeekでWordPressの記事生成を自動化する話や、AIモデル比較の話を書いてきました。今回はその「第3弾」として、画像生成まで全自動化した話を紹介します。

きっかけ:SeaArtで作っていた「あの画風」を自動化したい

メインサイト(conomacn.com)では、AIで生成した「アニメ風イケメン・美少女×世界旅行コーデ」のイラスト記事を多数公開しています。これまでは画像生成サービス「SeaArt」の画面で1枚ずつ手動生成していました。

記事1本につき画像が3〜7枚必要なので、「記事の自動化はできても画像生成がボトルネック」という状態でした。そこで、APIで画像を生成できるFal.aiに注目。問題はただ1つ、「SeaArtであの画風をFal.aiで再現できるのか?」でした。

画風再現のカギは「Checkpoint+LoRA3本」だった

SeaArtの画風は、サービス独自のモデルではなくFLUX.1ベースのCheckpoint(Flux Art Fusion)+LoRAの組み合わせで作られていました。

  • Checkpoint: Flux Art Fusion v1.0(FLUX.1 devベース)
  • LoRA: Sinozick Style(強度0.8)+ Blue Future(0.7)+ Gothica(0.7)

Fal.aiには同じFLUX.1 devをベースにしたfal-ai/flux-loraというAPIがあり、LoRAのURLを指定するだけで複数LoRAを重ねられます。CivitaiのLoRAはDL用URLをそのまま指定OK。tensor.artのLoRAだけはURL直指定できなかったので、ファイルをダウンロードしてFalのストレージにアップロードして使いました。

検証:SeaArtの実プロンプトでテスト生成

まず、メインサイトの記事に載せているSeaArtの実プロンプト(プラハの美少女)をそのままFal.aiに投げてみました。

SeaArtの実プロンプトで再現テストしたプラハの美少女イラスト

プロンプト・シード・サイズ・ステップ数をSeaArtの設定に合わせると、「いい感じ」の画風で再現できることを確認。続いて「短髪・丸メガネ・真顔・顔アップ」というリクエストで生成したのがこちらです。

Fal.aiで生成した短髪・丸メガネの美少女イラスト(顔アップ・真顔)

生成例をもう2枚

同じLoRA構成のまま、シチュエーションを変えても画風が安定します。

Fal.aiで生成した街角に立つ丸メガネ美少女の全身イラスト
Fal.aiで生成したノートPCで作業する丸メガネ美少女のイラスト

自動化フロー

最終的なフローはこうなりました。

  1. OpenClawが記事の構成とプロンプト案を組み立てる
  2. DeepSeek API(OpenClawの頭脳)がプロンプトを最適化
  3. Fal.ai API(fal-ai/flux-lora)が画像を生成
  4. 生成画像をWordPressメディアに自動アップロード
  5. 記事HTMLに画像を埋め込んで下書き自動作成

これで「記事を書く」から「イラスト生成」まで1つの会話で完結します。SeaArtの手動生成と比べると、1枚あたりのコストは約$0.035(Fal.aiの従量課金)で、時間も数十秒と大幅に短縮できました。

再現できた理由を分解する

「なんとなく似た画風になった」では再現性がありません。あとから同じ画風を量産するために、SeaArtとFal.aiで条件をそろえた項目を書き出しておきます。

項目SeaArtFal.ai
ベースモデルFlux Art Fusion v1.0(FLUX.1 dev系)fal-ai/flux-lora(FLUX.1 dev)
LoRASinozick Style 0.8+Blue Future 0.7+Gothica 0.7同じ3本を同じ強度で指定
プロンプトSeaArtで使っていた実プロンプトそのまま流用
サイズ・ステップSeaArtの設定値同じ値を指定
シード固定同じシードを指定

ポイントは、ベースモデルが完全に同じでなくても、同じ系統(FLUX.1 dev)+同じLoRA+同じ強度なら画風が寄るという点です。Checkpointのマージ差分より、LoRAの本数と強度のほうが画風への影響が大きい、というのが今回の実感でした。

Fal.aiに投げるまでの手順

  1. SeaArt側で使っているLoRAのモデルIDを控える
  2. CivitaiのAPIでモデル情報を引き、使うバージョンのIDを確認する
  3. バージョンIDからダウンロードURLを組み立て、そのURLをLoRAの path に渡す
  4. URL直指定できないLoRA(tensor.art等)は、ファイルを保存してFalのストレージにアップロードし、返ってきたURLを使う
  5. リクエストの loras 配列に、path と scale の組を並べる
  6. プロンプト・image_size・num_inference_steps・seed をSeaArt側とそろえて実行する

Civitaiのモデル情報は、認証なしで次のAPIから取れます。

curl -s "https://civitai.com/api/v1/models/<モデルID>" | grep -E '"id"|baseModel'

返ってきた modelVersions[].id を使うと、LoRAのURLは https://civitai.com/api/download/models/<バージョンID> になります。このURLはブラウザやローカルのcurlから開くとログイン画面に飛ばされますが、Fal側がサーバーで取得するのでそのまま渡して問題ありません。「ダウンロードできない=使えない」と判断すると、そこで手が止まってしまいます。

実行時のリクエストはこの形です。

{
  "prompt": "illustration art, anime, masterpiece, best quality, 1girl, solo, short hair, round glasses, ...",
  "loras": [
    { "path": "https://civitai.com/api/download/models/xxxxx", "scale": 0.8 },
    { "path": "https://.../blue-future.safetensors", "scale": 0.7 },
    { "path": "https://.../gothica.safetensors", "scale": 0.7 }
  ],
  "image_size": { "width": 1024, "height": 1024 },
  "num_inference_steps": 25,
  "seed": 123456
}

生成はキュー方式です。投げたらまず status_url を見て完了を待ち、そのあと response_url から画像URLを取り出します。先に response_url を読むと「まだ処理中」という文言が返り、失敗したように見えるので、読む順番に注意してください。

つまずいた点と直し方

  • LoRAのURLをブラウザで開くとログイン画面になる:CivitaiのダウンロードURLは直叩きでは弾かれます。Falに渡す分には問題ないので、ローカルでのダウンロード確認に時間を使わないのが正解でした。
  • Checkpointをそのまま持ち込もうとした:配布されているCheckpointは数GB〜20GB超で、FalのLoRA指定枠には載せられません。ベースはFLUX.1 devのまま、LoRAだけで寄せる方針に切り替えて解決しました。
  • 強度を少し変えただけで画風が崩れた:LoRAの scale は効きが強い部分です。まずSeaArtと同じ値で1枚出し、そこから動かす順番が安全でした。
  • tensor.artのLoRAはURLを取れない:ページが自動アクセスを拒否します。ファイルが手元にあるならアップロードして使い、無い場合は近い効果のLoRAで代用しました。

向いている人・向いていない人

  • 向いている人:すでに「自分の定番の画風」が固まっていて、同じ画風の画像を多く必要とする人。プロンプトとLoRAの設定が手元にあるなら、移行の手間は小さく済みます。
  • 向いている人:記事の生成から画像の生成・アップロードまでを1本の流れにまとめたい人。APIで完結するので、手作業の差し込みが減ります。
  • 向いていない人:画面を見ながら1枚ずつ作り込みたい人。生成サービス側のUIのほうが手軽です。
  • 向いていない人:特定のCheckpointの再現度を厳密に求めたい人。ベースモデルが異なる以上、完全一致は狙えません。

まとめ

SeaArtの画風は、「使っているモデル(Checkpoint+LoRA)さえ分かれば、Fal.aiでもほぼ再現できる」というのが今回の結論です。

  • Fal.aiのfal-ai/flux-loraはLoRAのURL直指定に対応
  • CivitaiのLoRAはDL URLをそのまま渡せる
  • tensor.art等、直指定できないLoRAはFalストレージ経由でOK
  • プロンプト・シード・サイズを揃えれば画風が安定する

この仕組みを応用すれば、ブログのアイキャッチ画像も、X(Twitter)投稿用のビジュアルも、ぜんぶ同じ画風で自動生成できます。興味があれば、また別の記事で詳しいAPIの使い方も紹介します!

PR・広告

画風の再現を試すなら

生成した画風の調整や微修正には、ペンタブレットがあると便利です。