Difference Between perform_writeup.py and perform_icbinb_writeup.py in AI-Scientist-v2
Both scripts automate LaTeX paper generation for the AI Scientist v2 system, but perform_writeup.py targets standard double-column ML conferences like ICML, while perform_icbinb_writeup.py is optimized for the single-column ICBINB workshop with stricter constraints and additional VLM-based figure validation.
The SakanaAI/AI-Scientist-v2 repository provides two distinct write-up pipelines that share a common architecture but diverge significantly in their formatting rules, validation workflows, and intended publication venues. Understanding the difference between perform_writeup.py and perform_icbinb_writeup.py is essential for researchers selecting the appropriate automation pipeline for their specific submission target.
Target Venues and Format Constraints
The primary distinction lies in the intended publication venue, which dictates page limits and column layout.
Standard Conference Format (perform_writeup.py)
In ai_scientist/perform_writeup.py (line 62), the default page limit is 8 pages for the main text, excluding references, impact statements, and appendices. This script targets general top-tier ML conferences such as ICML, utilizing a double-column LaTeX format that requires specific styling constraints.
ICBINB Workshop Format (perform_icbinb_writeup.py)
In ai_scientist/perform_icbinb_writeup.py (line 66), the default page limit is strictly 4 pages for the main text. This script is tailored for the "I Can't Believe It's Not Better" (ICBINB) workshop at ICLR, which mandates a single-column layout and focuses on negative results or insightful failures rather than positive breakthroughs.
LaTeX Templates and System Prompts
Each script loads a distinct LaTeX skeleton and corresponding LLM system prompt to enforce venue-specific rules.
-
perform_writeup.pycopies theblank_icml_latextemplate into the working folder (lines 14-15) and uses awriteup_system_message_template(starting at line 44) that describes double-column constraints, permits an Acknowledgements section, and references ICML style guidelines. -
perform_icbinb_writeup.pycopies theblank_icbinb_latextemplate (lines 93-94) and employs a specializedwriteup_system_message_template(beginning at line 33) that explicitly prohibits Acknowledgements, stresses minimal use of itemize/enumerate environments, and emphasizes the workshop's focus on negative results and single-column formatting.
Reflection Workflow and Validation
While both scripts implement LaTeX error checking via chktex, the ICBINB variant includes additional validation steps.
Standard reflection in perform_writeup.py (lines 53-84) runs a fixed number of iterations checking LaTeX compilation errors and impact statement compliance.
Enhanced reflection in perform_icbinb_writeup.py (lines 34-46) adds two VLM-driven quality checks:
perform_imgs_cap_ref_review– Reviews figure captions for clarity and relevancedetect_duplicate_figures– Identifies redundant or near-identical figures in the generated paper
Citation Handling Differences
Both scripts utilize the gather_citations helper function, but their insertion timing differs.
-
In
perform_writeup.py, citations are collected and inserted in a single pass after the initial generation (lines 43-49). -
In
perform_icbinb_writeup.py, the script pre-loads cached citations early (lines 21-31) and inserts them before the primary LLM generation call (lines 44-50), allowing the model to reference existing bibliography entries during the initial draft creation.
Command-Line Usage
Both scripts expose similar CLI interfaces but with different default values for the --page-limit parameter.
Running the standard conference pipeline:
python -m ai_scientist.perform_writeup \
--folder /path/to/project \
--num-cite-rounds 15 \
--page-limit 8
Running the ICBINB workshop pipeline:
python -m ai_scientist.perform_icbinb_writeup \
--folder /path/to/project \
--num-cite-rounds 20 \
--page-limit 4
Both commands expect a project directory containing research_idea.md, JSON logs in the logs/ directory, a figures/ folder, and optionally a cached_citations.bib file. The --no-writing flag is available in both scripts to skip the generation phase for debugging purposes.
Summary
perform_writeup.pytargets standard double-column conferences (ICML-style) with 8-page limits and standard reflection workflows.perform_icbinb_writeup.pytargets the ICBINB workshop with 4-page single-column constraints, prohibited Acknowledgements, and additional VLM-based figure validation.- Both use different LaTeX templates (
blank_icml_latexvsblank_icbinb_latex) and system prompts tailored to their respective venue requirements. - The ICBINB variant includes pre-generation citation loading and duplicate figure detection that the standard script lacks.
Frequently Asked Questions
Which script should I use for a NeurIPS submission?
Use perform_writeup.py. The standard conference script provides the double-column formatting and 8-page limit compatible with NeurIPS submission guidelines, whereas the ICBINB script enforces single-column constraints that would violate standard conference formatting requirements.
Can I override the default page limits in either script?
Yes. Both scripts accept the --page-limit CLI argument. In perform_writeup.py the default is 8 (set at line 62), while in perform_icbinb_writeup.py the default is 4 (set at line 66). You can specify alternative values such as --page-limit 6 or --page-limit 9 depending on specific venue requirements, though the LaTeX templates themselves define the hard structural constraints.
What is the VLM-based figure validation in the ICBINB script?
The perform_icbinb_writeup.py script calls perform_imgs_cap_ref_review and detect_duplicate_figures during its reflection phase (lines 34-46). These functions use a Vision-Language Model to evaluate whether figure captions accurately describe their content and to detect redundant visualizations that might waste space in the strict 4-page single-column format required by the ICBINB workshop.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →