# Difference Between perform_writeup.py and perform_icbinb_writeup.py in AI-Scientist-v2

> Understand the differences between perform_writeup.py and perform_icbinb_writeup.py in AI-Scientist-v2. Generate LaTeX papers for ML conferences and ICBINB workshops with specific optimizations.

- Repository: [Sakana AI/AI-Scientist-v2](https://github.com/SakanaAI/AI-Scientist-v2)
- Tags: internals
- Published: 2026-03-28

---

**Both scripts automate LaTeX paper generation for the AI Scientist v2 system, but [`perform_writeup.py`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/perform_writeup.py) targets standard double-column ML conferences like ICML, while [`perform_icbinb_writeup.py`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/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`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/perform_writeup.py) and [`perform_icbinb_writeup.py`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/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`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/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`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/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.py`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/perform_writeup.py)** copies the `blank_icml_latex` template into the working folder (lines 14-15) and uses a `writeup_system_message_template` (starting at line 44) that describes double-column constraints, permits an Acknowledgements section, and references ICML style guidelines.

- **[`perform_icbinb_writeup.py`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/perform_icbinb_writeup.py)** copies the `blank_icbinb_latex` template (lines 93-94) and employs a specialized `writeup_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`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/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`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/perform_icbinb_writeup.py) (lines 34-46) adds two VLM-driven quality checks:
- **`perform_imgs_cap_ref_review`** – Reviews figure captions for clarity and relevance
- **`detect_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`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/perform_writeup.py), citations are collected and inserted in a single pass after the initial generation (lines 43-49).

- In [`perform_icbinb_writeup.py`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/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:**

```bash
python -m ai_scientist.perform_writeup \
    --folder /path/to/project \
    --num-cite-rounds 15 \
    --page-limit 8

```

**Running the ICBINB workshop pipeline:**

```bash
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`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/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.py`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/perform_writeup.py)** targets standard double-column conferences (ICML-style) with 8-page limits and standard reflection workflows.
- **[`perform_icbinb_writeup.py`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/perform_icbinb_writeup.py)** targets the ICBINB workshop with 4-page single-column constraints, prohibited Acknowledgements, and additional VLM-based figure validation.
- Both use different LaTeX templates (`blank_icml_latex` vs `blank_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`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/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`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/perform_writeup.py) the default is 8 (set at line 62), while in [`perform_icbinb_writeup.py`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/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`](https://github.com/SakanaAI/AI-Scientist-v2/blob/main/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.