Nodes/Eric Visual Research/Eric Gen-Searcher (Grounded Research)
ComfyUI Node

Eric Gen-Searcher (Grounded Research)

It googles your prompt so your image model doesn't have to guess

By EricRollei·Created 4 months ago·Updated 4 months ago· 1
Eric Gen-Searcher (Grounded Research)
    • grounded_prompt
    • reference_images
    • search_log
    • ref_image_1
    • ref_image_2
    • ref_image_3
    • ref_image_4
    base_prompt
    agent_api_urlhttp://localhost:30000
    search_query
    model_name
    max_hops8
    ref_image_count4
    enable_browsetrue
    fallback_on_errortrue
    use_instagramfalse
    use_facebookfalse

    The name undersells it. Eric Gen-Searcher doesn't search the web for you - you give it a subject, it quietly runs a handful of real web and image searches, and comes back with a finished generation prompt plus up to four downloaded reference images. It's the "grounded research" idea, packaged as a ComfyUI node that drops into any generation workflow.

    Reach for it the moment the model's parametric memory isn't good enough. A diffusion model will confidently invent what a real person's tennis outfit looks like, or the inside of an F1 cockpit. Gen-Searcher will go look.

    How it works

    This is the first node in the Eric Visual Research pack by EricRollei (Eric Hiss). You type into it, and it forwards your prompt to a Gen-Searcher-8B model served by SGLang at http://localhost:30000. Gen-Searcher-8B is a fine-tuned Qwen3-VL-8B - it comes from a real research line (CUHK/UC Berkeley/UCLA paper) that reported roughly 16 points of improvement on the KnowGen benchmark when paired with Qwen-Image.

    The node runs an agent loop, up to max_hops iterations (8 by default, 6–10 typical). The model gets three tools:

    • search - web search via Serper
    • image_search - image search via Serper's image endpoint
    • browse - full-page reads via Jina Reader

    When it decides it has enough, it writes a single 150–300 word paragraph. The node even watches for the model slipping into "From my analysis…" bullet-point mode and quietly re-prompts for a clean paragraph. Downloaded references are resized to 768px on the long side, aspect preserved - the individual ref_image_1..4 outputs stay native aspect, while the reference_images batch is letterboxed to a common size.

    The inputs that matter

    • base_prompt (required) - the creative direction: mood, lighting, style, camera angle. This is what the final prompt must fulfill.
    • search_query - the specific subject to research, kept visual and focused ("Zendaya Challengers tennis outfit"). Split these two fields and the agent searches the query but writes the prompt. Leave it blank and it falls back to single-field behavior, searching base_prompt directly.
    • max_hops - how many search rounds. 8 is a sane ceiling.
    • ref_image_count - 1–4 reference images to download.
    • enable_browse - page reading on/off; off is faster.
    • fallback_on_error - if the server is unreachable, returns your original prompt instead of failing. Quiet, know it's there.

    Leave use_instagram and use_facebook off unless you mean it - the tooltips warn to enable them only with a dedicated dummy account, because those sites will burn a real login.

    Outputs: grounded_prompt (STRING → any prompt input on Flux, SDXL, Qwen-Image…), reference_images (batch IMAGE), ref_image_1..4 (individual IMAGEs), and search_log (STRING) if you want to see what the agent actually did.

    Installing

    Via ComfyUI Manager (search "Visual Research" or the author EricRollei), or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/EricRollei/Visual_Research
    

    One trap: the README's own clone command says Eric_Visual_Research - that path 404s. The real repo is Visual_Research. Restart ComfyUI and the nodes appear under Eric/VisualResearch.

    Then the part that isn't a node install. The pack's requirements.txt is nearly empty (just Pillow and torch) because all the heavy lifting is external:

    • SGLang server running Gen-Searcher-8B - a ~17 GB model download, needs ~20 GB+ VRAM, and SGLang means Linux/WSL2 on Windows. The README's docs/SERVER_SETUP.md walks the whole thing: CUDA toolkit, pip install sglang[all], hf download GenSearcher/Gen-Searcher-8B, then sglang serve on port 30000 with --tool-call-parser qwen25.
    • A Serper API key (https://serper.dev, 2,500 free queries/month) - without it the agent can't search at all. Copy api_keys.ini.example to api_keys.ini, or set SERPER_API_KEY.
    • Optional: a Jina key and gallery-dl for social-site downloads.

    Common issues

    • "Cannot connect to Gen-Searcher server" - SGLang isn't running, or the URL is wrong. On Windows/WSL, localhost resolves differently; the README suggests http://127.0.0.1:30000 or the WSL IP.
    • Searches not firing - your serve command is missing --tool-call-parser qwen25. The node has a fallback parser for inline <tool_call> tags, but the server-side one is more reliable.
    • deep_gemm or FlashInfer errors at startup - export SGLANG_DISABLE_DEEP_GEMM=1, and add --attention-backend triton for Blackwell GPUs on CUDA 12.8.
    • Every run hits the web, burns Serper quota, and takes real time - the node re-executes each queue (no caching), so budget your free tier.

    The rig requirement is the filter - you need a 20 GB+ VRAM GPU to host the agent on top of whatever you generate with. But if you're sick of models hallucinating specifics, this is one of the few honest fixes, and the first ComfyUI wrapper around Gen-Searcher I've seen.

    CategoryEric/VisualResearch

    Inputs (10)

    NameTypeDefaultDescription
    base_promptSTRINGThe creative/compositional direction for the final image. Describe mood, lighting, style, camera angle, narrative. Examples: 'dramatic low-angle portrait, golden hour, shallow depth of field' 'fashion editorial, studio lighting, minimalist background' If search_query is blank, this is also used as the search prompt (original single-field behaviour).
    agent_api_urlSTRINGhttp://localhost:30000URL of the running SGLang server. See docs/SERVER_SETUP.md for setup instructions.
    search_queryoptSTRINGSpecific subject/terms to search for visually (recommended). Keep this focused and visual - it drives the web and image searches. Examples: 'Zendaya Challengers movie tennis outfit' 'Stephen Miller politician appearance' 'Ferrari SF-23 F1 car cockpit interior' 'Art Deco architecture New York Chrysler building' Leave blank to use base_prompt for searches (original behaviour).
    model_nameoptSTRINGModel name override. Leave blank to auto-detect.
    max_hopsoptINT81–20Maximum search iterations. 6-10 is typical.
    ref_image_countoptINT41–4Number of reference images to download (1-4).
    enable_browseoptBOOLEANtrueAllow reading full web pages via Jina. Disable for faster runs.
    fallback_on_erroroptBOOLEANtrueReturn original prompt if server unreachable, rather than failing.
    use_instagramoptBOOLEANfalseAllow gallery-dl to download from Instagram. WARNING: Use only with a dedicated dummy account.
    use_facebookoptBOOLEANfalseAllow gallery-dl to download from Facebook. WARNING: Use only with a dedicated dummy account.

    Outputs (7)

    NameTypeDescription
    grounded_promptSTRING
    reference_imagesIMAGE
    search_logSTRING
    ref_image_1IMAGE
    ref_image_2IMAGE
    ref_image_3IMAGE
    ref_image_4IMAGE