🤖

ローカル無制限Computer Use構成ガイド (2026年版)

RTX 3090 / ComfyUI環境における、コンテンツ制限に阻まれない自律デスクトップ自動化スタック

⏱️ 30秒結論

2026年現在、大手クラウドAPI(Claude 3.5/3.7 Sonnet, GPT-4o等)のComputer Useは、画面キャプチャ内のNSFW要素(同人ゲーム、成人向けアート、プライベートな創作物など)を検知すると即座にセーフティフィルター(Safety Block)が作動し、制御が停止します。

これを回避するためのプロンプトハックは対策されやすく、アカウントBANのリスクが伴います。そのため、「最初から制限が存在しないローカルVision-Language Model (VLM) + pyautogui」の完全ローカル構成が唯一の現実的な本命解となります。RTX 3090 (24GB) 環境であれば、Qwen2.5-VL (7B/14B) とComfyUIを同一VRAM上で高スループットかつ安全に共存・運用可能です。

1. 大手クラウドAPIにおける「NSFW制限」の現状と限界

2026年時点における、主要クラウドAIモデルのComputer Use(画面操作)機能におけるセーフティ挙動は以下の通りです。

モデル/API 検知トリガー フィルター作動時の挙動 規約上のリスク
Anthropic Claude (Sonnet) 送信されたスクリーンショット内の肌露出、成人向け表現、暴力描写 APIが 400 Bad Request または Safety Policy Violation を返して即時切断 アカウントの即時一時停止、または永久BAN
OpenAI GPT-4o / Operator 入力画像および出力テキスト(DOM解析結果含む)のマルチモーダル検知 「このコンテンツはポリシーに反します」等のエラーを返し、実行エージェントが停止 API利用規約(ToS)違反によるAPIキーの剥奪
Google Gemini (Pro) Safety Settings(調整可能だがNSFWは完全解除不可)による自動ブロック レスポンスの finishReasonSAFETY となり、座標データが返らない プロジェクト全体の停止措置

重要 フィルター回避術(画像のモザイク処理や、プロンプトでの欺瞞)は、APIプロバイダ側のマルチモーダル検知の進化により2026年現在ほぼ無効化されています。また、規約違反によるアカウントBANは、開発・運用パイプライン全体の崩壊を招きます。

2. ローカル無制限構成 vs 大手クラウド 徹底比較

フィルター回避ではなく、「最初から検知・制限システムが存在しないローカル設計」との比較です。

比較項目 大手クラウドAPI構成 (Claude等) ローカルVLM構成 (Qwen2.5-VL + pyautogui) 判定
コンテンツ制限 極めて厳格(NSFW、ゲーム画面、個人情報で停止) 完全無制限(ローカルモデルのため検知機構なし) ローカル勝利
ランニングコスト 従量課金(画面送信頻度が高いため、1時間あたり数ドル〜数十ドル) 電気代のみ(完全無料) ローカル勝利
画面認識・座標精度 非常に高い(OSWorldベンチマーク上位) 実用レベル(Qwen2.5-VL-7B/14BはUI座標特定に特化) クラウド優位
ネットワーク依存 必須(オフライン動作不可) 不要(完全スタンドアロンで動作可能) ローカル勝利
初期導入コスト APIキー取得のみ(即時利用可能) GPU(RTX 3090等)の用意、環境構築の手間が必要 クラウド優位

3. RTX 3090 / ComfyUI環境向け推奨技術スタック

VRAM 24GBを搭載した RTX 3090 および ローカルComfyUI 環境に最適化された、2026年現在の推奨オープンソーススタックです。

1. 画面キャプチャ
MSS (Python-mss)
2. 意思決定 / 座標出力
Qwen2.5-VL-7B-Instruct (INT4/FP16)
3. OS操作実行
pyautogui / PyDirectInput
🔄 ComfyUI連携: 生成された画像やUIアセットをComfyUI API経由で直接処理・フィードバック

推奨スタック詳細

4. ミニマル実装コード例(Qwen2.5-VL + pyautogui)

以下は、ローカルで起動したQwen2.5-VLに対してスクリーンショットを送信し、指定した要素(例: 「ログインボタン」)の座標を取得して pyautogui でクリックするPythonコードの実装例です。

import time
import pyautogui
from mss import mss
from openai import OpenAI

# 1. ローカルvLLM / Ollamaサーバーへの接続設定 (OpenAI互換API)
client = OpenAI(
    base_url="http://localhost:11434/v1",  # Ollamaのデフォルトポート
    api_key="local-no-limit"
)

def capture_screen():
    with mss() as sct:
        # メインモニターのスクリーンショットを取得し保存
        monitor = sct.monitors[1]
        screenshot = sct.grab(monitor)
        img_path = "screenshot.png"
        import mss.tools
        mss.tools.to_png(screenshot.rgb, screenshot.size, output=img_path)
        return img_path, monitor["width"], monitor["height"]

def get_click_coordinate(image_path, target_element):
    # Qwen2.5-VL等に対して、座標出力を要求するプロンプト
    # モデルは [ymin, xmin, ymax, xmax] の形式(0-1000正規化)で座標を返す特性を持つ
    response = client.chat.completions.create(
        model="qwen2.5-vl:7b-instruct",
        messages=[
            {
                "role": "user",
                "content": [
                    {"type": "text", "text": f"Locate the '{target_element}' on the screen and return its bounding box in [ymin, xmin, ymax, xmax] format."},
                    {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{encode_image(image_path)}"}}
                ]
            }
        ],
        temperature=0.0
    )
    return response.choices[0].message.content

def encode_image(image_path):
    import base64
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

# 実行フロー
if __name__ == "__main__":
    print("📸 画面をキャプチャ中...")
    img, width, height = capture_screen()
    
    target = "Play Button"
    print(f"🧠 ローカルVLMで「{target}」の座標を解析中...")
    raw_coords = get_click_coordinate(img, target)
    
    # 解析された座標(例: [500, 450, 550, 550])をピクセル座標に変換
    # (※ 簡易パース処理は省略。実際には正規表現等で数値を抽出します)
    # 仮に中央値が x=0.45, y=0.52 と判定された場合:
    target_x = int(width * 0.45)
    target_y = int(height * 0.52)
    
    print(f"🖱️ 座標へ移動してクリック: ({target_x}, {target_y})")
    pyautogui.moveTo(target_x, target_y, duration=0.5)
    pyautogui.click()

5. 実装に向けた推奨次アクション

RTX 3090環境で「制限なしComputer Use」を構築するための、具体的なステップです。

フェーズ 具体的なタスク 推奨ツール / コマンド 目的・効果
1. 推論基盤の準備 OllamaまたはvLLMをインストールし、Qwen2.5-VLをローカルにデプロイ ollama run qwen2.5-vl:7b 外部APIに依存しない、無制限の画像解析APIサーバーの確保
2. 操作モジュールの検証 Python環境で画面キャプチャとマウス制御の疎通テストを実施 pip install pyautogui mss opencv-python 指定座標への正確な移動と、ゲーム等での入力検知回避の確認
3. ComfyUIとの統合 ComfyUIのAPIモードを有効化し、Pythonスクリプトからワークフローを呼び出す構成を構築 ComfyUIの「Enable Dev mode」からAPI用JSONを出力 画像生成・加工パイプラインと、自動操作エージェントのシームレスな連携
4. エージェントループ実装 「画面キャプチャ ➔ VLM解析 ➔ 操作実行 ➔ 待機」の自律ループを構築 カスタムPythonスクリプト(上記コードの拡張) 人間が介入しない、完全自動化タスクの実行

※ 本ドキュメントは2026年現在のオープンソースLLM/VLMの仕様およびハードウェア性能に基づき作成されています。

※ ローカル環境での自動化実行時は、対象アプリケーションの利用規約を事前にご確認ください。