Gen-Searcher: Reinforcing Agentic Search for Image Generation
Paper: arXiv:2603.28767v2 Code: tulerfeng/Gen-Searcher Code reference:
main@e5078d31(2026-04-07)
1. Motivation (研究动机)
当前强 T2I 模型已经能生成高保真、照片级图像,但它们的知识主要冻结在预训练参数里;遇到新近事件、公众人物、特定地标、产品外观、奖杯徽章、场馆结构等真实世界约束时,模型需要的是可更新的外部事实和视觉参照,而不是只靠 prompt-following。
论文要解决的具体问题是:把图像生成前的知识获取变成一个可训练的多模态 search agent。这个 agent 不只做一次文本检索,而是能多轮 search、image_search、browse,把文本证据和参考图像汇总成 generation-ready prompt,再交给固定图像生成器。
这个问题值得做,是因为 search-grounded generation 能把“我知道某个实体长什么样 / 当前信息是什么”从生成模型参数里解耦出来:生成器可以保持固定,外部世界变化由检索与证据聚合处理;同时 visual reference search 弥补了纯文本搜索难以描述细粒度外观的短板。
2. Idea (核心思想)
核心洞察:知识密集型图像生成的瓶颈不是单纯的图像质量,而是生成前是否获得了足够、正确、可视觉落地的证据。Gen-Searcher 因此把 T2I 改写为“先搜索/浏览/找图,再生成”的 agentic pipeline,并用 SFT + GRPO 训练这个搜索策略。
相对静态 RAG,它不依赖固定知识库;相对手写 workflow,它把 search query、证据筛选、参考图选择和最终 prompt 组织都纳入可学习策略;相对只带文本搜索的闭源模型,它显式检索 visual references。
Figure 1 解读:图中展示 Gen-Searcher 面向真实世界知识密集 prompt 的定位:用户只给出高层目标,模型需要先查实体、事件、地点或风格细节,再把多源证据转成可执行生成提示和参考图像。它强调的是 test-time reasoning/search,而不是改造底层 diffusion/AR 图像生成器。
3. Method (方法)
3.1 总体框架
Gen-Searcher 初始化自 Qwen3-VL-8B-Instruct,输出不是最终图像,而是一个包含 gen_prompt 和 reference_images 的 JSON answer。下游 image generator(论文训练时主要用 Qwen-Image / Qwen-Image-Edit-2509 rollout service)保持固定;RL 只优化 search agent,让它更会收集证据、选择参考图、组织最终 prompt。
直觉上,这相当于把“生成模型必须凭空知道世界”转化为“agent 先把世界事实和视觉参照查清楚”。图像生成器仍可能随机失败,所以训练信号不能只看最终图像;论文后面引入 text reward 正是为了给 evidence gathering 本身更稳定的监督。
3.2 数据构造与 KnowGen
Figure 2 解读:数据流水线分四步:先构造需要深度搜索的文本 prompt,再由 Gemini 3 Pro 搭配搜索工具生成 agentic trajectories;随后用 Nano Banana Pro 合成 ground-truth images;最后由 Seed1.8 和规则过滤掉不需要搜索、搜索结果不一致、文本过长或生成质量差的样本。
论文最终得到约 17K 高质量样本:其中 630 个 human-verified 样本组成 held-out benchmark KnowGen,其余约 16K 分成 Gen-Searcher-SFT-10k 和 Gen-Searcher-RL-6k,并保证训练集与 benchmark 无重叠。
Figure 3 解读:KnowGen 覆盖多类真实世界知识任务,评估重点不是普通 prompt following,而是模型能否通过外部证据恢复正确的视觉属性、人物/物体身份、可读文本、场景关系和当前信息。
3.3 工具与推理轨迹
公开代码中的工具入口在 Gen-DeepResearch-RL/rllm/vision_deepresearch_async_workflow/gen_image_deepresearch_tools_executor.py,create_gen_image_tools() 注册三类工具:search、image_search、browse。论文描述里 browse 的网页摘要由 Qwen3-VL-30B-A3B-Instruct 生成;公开 README 说明开源版把原始 search / image_search 替换为 Serper 服务,因此复现性能可能受工具后端影响。
Figure 4 解读:推理轨迹是 ReAct 风格的多轮过程:每轮先 <think>,再二选一输出 <tool_call> 或 <answer>。agent 可根据已有 evidence 继续搜索文本、检索参考图、浏览网页,直到最终输出排序后的 reference image list 和 grounded prompt。
def gen_searcher_rollout(agent, question, tools, max_llm_calls=9):
messages = [agent.system_prompt, question]
image_bank = {}
for round_idx in range(max_llm_calls):
response = agent.rollout_engine.generate(messages)
if has_answer(response):
answer = parse_answer_json(response)
refs = enrich_reference_images(answer["reference_images"], image_bank)
return {"gen_prompt": answer["gen_prompt"], "reference_images": refs}
if has_tool_call(response):
call = parse_tool_call_json(response)
observation = tools[call["name"]](**call["arguments"])
image_bank.update(extract_img_ids(observation))
messages += [response, format_tool_response(observation)]
continue
messages.append(format_error_feedback())
return force_final_answer(messages)3.4 两阶段训练与双奖励
第一阶段 SFT 使用 Gen-Searcher-SFT-10k,学习多轮工具调用、解释检索反馈、选择有用参考图和构造最终 prompt。第二阶段在 Gen-Searcher-RL-6k 上用 GRPO 优化 agentic search trajectories;图像生成器不更新。
奖励由 image reward 与 text reward 混合:
其中 使用 KnowGen 的 K-Score; 由 GPT-4.1 以五档 判断最终文本是否包含足够、正确、与生成相关的信息。GRPO 内部用组内 reward 标准化得到优势:
def compute_gen_searcher_reward(prediction, sample, text_coef=0.5):
image = call_qwen_edit_to_generate_image(
prompt=prediction["gen_prompt"],
reference_images=prediction.get("reference_images", []),
)
image_reward = call_gpt41_worldgen_score(
prompt=sample["prompt"], gt_image=sample["gt_image"], generated=image,
)
text_reward = call_text_reward_score(
prompt=sample["prompt"], gt_image=sample["gt_image"], answer=prediction,
)
return (1.0 - text_coef) * image_reward + text_coef * text_rewarddef grpo_update(policy, old_policy, ref_policy, prompts, group_outputs, rewards):
advantages = normalize_within_group(rewards)
ratios = policy.prob(group_outputs, prompts) / old_policy.prob(group_outputs, prompts)
clipped = torch.clamp(ratios, 1 - eps, 1 + eps) * advantages
policy_term = torch.minimum(ratios * advantages, clipped)
kl_penalty = beta_kl * kl_div(policy, ref_policy)
loss = -(policy_term - kl_penalty).mean()
loss.backward()
optimizer.step()3.5 源码映射与 paper-code gap
Code reference:
main@e5078d31(2026-04-07) — pseudocode and mapping based on this commit
| Paper Concept | Source File | Key Class/Function |
|---|---|---|
ReAct search agent / final gen_prompt + reference_images | Gen-DeepResearch-RL/rllm/vision_deepresearch_async_workflow/gen_image_deepresearch_agent.py | GenImageDeepResearchAgent, SYSTEM_PROMPT_GEN_IMAGE, final answer parsing / image-id enrichment |
| Workflow wrapper, termination masking, async reward execution | Gen-DeepResearch-RL/rllm/vision_deepresearch_async_workflow/gen_image_deepresearch_workflow.py | GenImageDeepResearchWorkflow, _extract_action_from_response, _should_mask_episode |
| Tool registry | Gen-DeepResearch-RL/rllm/vision_deepresearch_async_workflow/gen_image_deepresearch_tools_executor.py | create_gen_image_tools() |
| Web / image / browse tools | Gen-DeepResearch-RL/rllm/vision_deepresearch_async_workflow/tools/gen_web_tools.py | WebTextSearchTool, UniversalImageSearchTool, JinaBrowseTool |
| Image generation + text/image reward blending | Gen-DeepResearch-RL/rllm/vision_deepresearch_async_workflow/gen_image_deepresearch_reward.py | GenImageRewardFn, call_qwen_edit_to_generate_image, call_text_reward_score, call_gpt41_worldgen_score |
| RL launch config | Gen-DeepResearch-RL/rllm/vision_deepresearch_async_workflow/run/gen_image_deepresearch_8B_fsdp_8gpu.sh | adv_estimator=grpo, batch / rollout / lr overrides |
| Reward coefficient / services | Gen-DeepResearch-RL/rllm/.env.gen_image | GEN_REWARD_TEXT_COEF=0.5, BROWSE_SUMMARY_MODEL=Qwen3-VL-30B-A3B-Instruct |
源码核对到的一个重要差异:gen_image_deepresearch_reward.py 中 GEN_REWARD_TEXT_COEF 默认是 0,只有在 .env.gen_image 显式设置 GEN_REWARD_TEXT_COEF=0.5 时才与论文的 对齐;因此复现实验必须加载该环境文件。README 还说明开源版 search/image_search 使用公开 Serper 服务替代原始内部工具,可能导致与论文结果存在工具后端差距。
4. Experimental Setup (实验设置)
Datasets / Benchmarks:训练数据为 Gen-Searcher-SFT-10k 与 Gen-Searcher-RL-6k;评估包括作者提出的 KnowGen(630 human-verified samples)和外部 WISE benchmark。
Metrics:KnowGen 使用 GPT-4.1 judge 计算 K-Score,维度包括 faithfulness、visual correctness、text accuracy、aesthetics;当 prompt 不要求可读文本时,text accuracy 不计入平均。WISE 汇报 Cultural、Time、Space、Biology、Physics、Chemistry 及 Overall。
Baselines:KnowGen 覆盖 GPT-Image-1/1.5、Nano Banana / Nano Banana Pro、Seedream 4.0/4.5、FLUX.1/2、HunyuanImage-3.0、Qwen-Image,以及 Gen-Searcher 接入 Qwen-Image / Seedream 4.5 / Nano Banana Pro。WISE 额外比较 LongCat-Image 等模型。
Training config:论文报告 Gen-Searcher-8B 用 8 张 NVIDIA H800 训练,base model 为 Qwen3-VL-8B-Instruct;SFT 与 RL 都用 AdamW,SFT lr=,RL lr=,batch size=8。RL rollout 额外部署 Qwen-Image-Edit-2509 于 16 张 H800,browse summary model Qwen3-VL-30B-Instruct-A3B 于 8 张 H800;group size=6,最大交互 10 turns,每轮最多 5 张返回图,最大 context 36K,每轮 response 4K,训练约 1 天。公开 launch script 对应 train_prompt_bsz=8、n_resp_per_prompt=6、max_prompt_length=4096、max_response_length=30000、temperature=0.7、top_p=0.95、actor_rollout_ref.actor.optim.lr=1e-6、trainer.total_epochs=5。论文测试时 decoding 使用 temperature=0.6、top-p=0.9、最大 context 64K。
5. Experimental Results (实验结果)
5.1 KnowGen 主结果
| Model | Overall K-Score |
|---|---|
| Qwen-Image | 14.98 |
| Gen-Searcher-8B + Qwen-Image | 31.52 |
| Seedream 4.5 | 31.01 |
| Gen-Searcher-8B + Seedream 4.5 | 47.29 |
| Nano Banana Pro | 50.38 |
| Gen-Searcher-8B + Nano Banana Pro | 53.30 |
| GPT-Image-1.5 | 44.97 |
Gen-Searcher + Qwen-Image 相比 Qwen-Image 提升 16.54 K-Score;接入 Seedream 4.5 也提升 16.28,说明搜索 agent 学到的证据聚合策略能迁移到不同图像生成器。Nano Banana Pro 本身已经很强,但接入 Gen-Searcher 仍从 50.38 到 53.30,说明 visual references 与多轮证据聚合还能补充闭源强模型。

Figure 5 解读:定性对比中,未搜索模型常能生成“看起来合理”的图,但会错过人物、事件、标志、文字或物体细节;Gen-Searcher 的优势在于把外部证据转换成具体视觉约束,减少幻觉式补全。
5.2 WISE 与消融
| Model | WISE Overall |
|---|---|
| FLUX.1-dev | 0.50 |
| Qwen-Image | 0.62 |
| HunyuanImage-3.0 | 0.57 |
| LongCat-Image | 0.65 |
| Gen-Searcher-8B + Qwen-Image | 0.77 |
在 WISE 上,Gen-Searcher + Qwen-Image 从 0.62 提升到 0.77,说明该方法不只针对 KnowGen 过拟合;在相对简单的知识型生成 benchmark 上也有效。
| Variant | KnowGen |
|---|---|
| Qwen-Image | 14.98 |
| Qwen-Image + workflow | 22.91 |
| Qwen-Image + Gen-Searcher-SFT | 28.15 |
| Qwen-Image + Gen-Searcher w.o. text reward | 29.59 |
| Qwen-Image + Gen-Searcher w.o. image reward | 29.36 |
| Qwen-Image + Gen-Searcher | 31.52 |
消融显示,手写 workflow 已能带来 +7.93,但 SFT 和 RL 继续显著提升;去掉 text reward 或 image reward 都会下降,验证双反馈必要性。参数分析中, 或 都变差,而 到 区间较稳定,论文默认 。
Figure 6 解读: 控制 text reward 与 image reward 的权重。只看 image 会被生成器随机性和能力上限污染;只看 text 会鼓励“文字证据看似充分但未必能生成好图”的策略。中间权重最好,符合双奖励设计动机。
局限性:方法依赖外部搜索、图搜、网页摘要、GPT-4.1 judge 与图像生成服务;开源代码用 Serper 替代原始搜索工具,复现实验要关注工具后端差异。最终图像质量仍受固定 generator 约束,因此 Gen-Searcher 更像一个 search/test-time reasoning layer,而不是直接提升图像生成器本体能力。