[{"data":1,"prerenderedAt":361},["ShallowReactive",2],{"navigation":3,"\u002Fproviders\u002Fgpt":99,"\u002Fproviders\u002Fgpt-surround":356},[4,23,44,78],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"MCP Setup","\u002Fgetting-started\u002Fmcp-setup","1.getting-started\u002F3.mcp-setup","i-lucide-plug","i-lucide-rocket",{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":43},"CLI","i-lucide-terminal","\u002Fcli","2.cli",[29,33,38],{"title":30,"path":31,"stem":32,"icon":25},"Usage","\u002Fcli\u002Fusage","2.cli\u002F1.usage",{"title":34,"path":35,"stem":36,"icon":37},"Options","\u002Fcli\u002Foptions","2.cli\u002F2.options","i-lucide-sliders-horizontal",{"title":39,"path":40,"stem":41,"icon":42},"Batch & JSON","\u002Fcli\u002Fbatch-json","2.cli\u002F3.batch-json","i-lucide-package",false,{"title":45,"icon":46,"path":47,"stem":48,"children":49,"page":43},"Providers","i-lucide-cpu","\u002Fproviders","3.providers",[50,55,60,65,70,74],{"title":51,"path":52,"stem":53,"icon":54},"Claude (Area-Based)","\u002Fproviders\u002Fclaude","3.providers\u002F1.claude","i-lucide-square",{"title":56,"path":57,"stem":58,"icon":59},"GPT-4o & GPT-5 (Tiling)","\u002Fproviders\u002Fgpt","3.providers\u002F2.gpt","i-lucide-grid-2x2",{"title":61,"path":62,"stem":63,"icon":64},"Gemini (Large Tiles)","\u002Fproviders\u002Fgemini","3.providers\u002F3.gemini","i-lucide-grid-3x3",{"title":66,"path":67,"stem":68,"icon":69},"Llama Vision (Tiles)","\u002Fproviders\u002Fllama","3.providers\u002F4.llama","i-simple-icons-meta",{"title":71,"path":72,"stem":73,"icon":64},"Qwen-VL (Patch Grid)","\u002Fproviders\u002Fqwen","3.providers\u002F5.qwen",{"title":75,"path":76,"stem":77,"icon":59},"DeepSeek-VL (Open Weights)","\u002Fproviders\u002Fdeepseek","3.providers\u002F6.deepseek",{"title":79,"icon":80,"path":81,"stem":82,"children":83,"page":43},"Guides","i-lucide-book-open","\u002Fguides","4.guides",[84,89,94],{"title":85,"path":86,"stem":87,"icon":88},"Python Bindings","\u002Fguides\u002Fpython-bindings","4.guides\u002F1.python-bindings","i-lucide-file-code",{"title":90,"path":91,"stem":92,"icon":93},"Sandbox (Think in Code)","\u002Fguides\u002Fsandbox","4.guides\u002F2.sandbox","i-lucide-flask-conical",{"title":95,"path":96,"stem":97,"icon":98},"Crawler Integration","\u002Fguides\u002Fcrawler-integration","4.guides\u002F3.crawler-integration","i-lucide-globe",{"id":100,"title":56,"body":101,"description":349,"extension":350,"links":351,"meta":352,"navigation":353,"path":57,"seo":354,"stem":58,"__hash__":355},"docs\u002F3.providers\u002F2.gpt.md",{"type":102,"value":103,"toc":338},"minimark",[104,109,113,138,145,150,157,187,191,194,252,267,271,274,301,308,311,318,334],[105,106,108],"h2",{"id":107},"gpt-4o-gpt-45-tiling","GPT-4o \u002F GPT-4.5 (Tiling)",[110,111,112],"p",{},"OpenAI processes images in three steps:",[114,115,116,125,131],"ol",{},[117,118,119,120,124],"li",{},"Fit the image within ",[121,122,123],"strong",{},"2048×2048",".",[117,126,127,128,124],{},"Rescale the ",[121,129,130],{},"short side to 768px",[117,132,133,134,137],{},"Chop the result into ",[121,135,136],{},"512px tiles"," — each tile is billed.",[110,139,140,141,144],{},"The trap is ",[121,142,143],{},"spill-over",": a few extra pixels on the long side can push the image into an entire new tile row, doubling the cost for almost no extra information.",[146,147,149],"h3",{"id":148},"optimization-strategy","Optimization strategy",[110,151,152,153,156],{},"Reverse-calculate the 768px scaling, then snap the long side to a 512px boundary ",[121,154,155],{},"after"," the internal scale factor is applied. This lands the image exactly on a tile boundary with no spill-over.",[158,159,165],"pre",{"className":160,"code":161,"filename":162,"language":163,"meta":164,"style":164},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","vision-squeezer image.png --model gpt4o\n","Terminal","bash","",[166,167,168],"code",{"__ignoreMap":164},[169,170,173,177,181,184],"span",{"class":171,"line":172},"line",1,[169,174,176],{"class":175},"sBMFI","vision-squeezer",[169,178,180],{"class":179},"sfazB"," image.png",[169,182,183],{"class":179}," --model",[169,185,186],{"class":179}," gpt4o\n",[146,188,190],{"id":189},"example","Example",[110,192,193],{},"A 4096×3072 photo (12MP) targeted at GPT-4o snaps perfectly into a contained grid:",[195,196,197,213],"table",{},[198,199,200],"thead",{},[201,202,203,207,210],"tr",{},[204,205,206],"th",{},"Metric",[204,208,209],{},"Before",[204,211,212],{},"After",[214,215,216,228,241],"tbody",{},[201,217,218,222,225],{},[219,220,221],"td",{},"Tokens",[219,223,224],{},"16,777",[219,226,227],{},"11,182",[201,229,230,233,236],{},[219,231,232],{},"Savings",[219,234,235],{},"—",[219,237,238],{},[121,239,240],{},"5,595 tokens (-33.3%)",[201,242,243,246,249],{},[219,244,245],{},"File size",[219,247,248],{},"2.2 MB",[219,250,251],{},"1.2 MB",[253,254,257],"callout",{"color":255,"icon":256},"warning","i-lucide-triangle-alert",[110,258,259,262,263,266],{},[121,260,261],{},"OpenAI Aspect-Ratio Anomaly:"," stripping padding can make an image \"wider\", which ironically pushes the long side into a new grid row. Always pass ",[166,264,265],{},"--model gpt4o"," so Squeezer accounts for the tiling math instead of optimizing agnostically.",[105,268,270],{"id":269},"gpt-5-gpt-55-tiling-capped","GPT-5 \u002F GPT-5.5 (Tiling, Capped)",[110,272,273],{},"GPT-5 raises the limits dramatically:",[275,276,277,283,289,295],"ul",{},[117,278,279,282],{},[121,280,281],{},"6000px"," max dimension",[117,284,285,288],{},[121,286,287],{},"10.24M"," total pixel cap",[117,290,291,294],{},[121,292,293],{},"512×512"," tiles",[117,296,297,300],{},[121,298,299],{},"1536 token"," hard cap",[110,302,303,304,307],{},"Because tokens above the cap are wasted, a 1536-token image and a 5000-token image are billed ",[121,305,306],{},"identically",". Grid-tiling optimization is rarely needed.",[146,309,149],{"id":310},"optimization-strategy-1",[110,312,313,314,317],{},"Snap to 512px boundaries where it helps, but the real win for GPT-5 is ",[121,315,316],{},"stripping heavy padding and compressing file size"," (MBs → KBs) for faster uploads and lower latency — not token reduction.",[158,319,321],{"className":160,"code":320,"filename":162,"language":163,"meta":164,"style":164},"vision-squeezer image.png --model gpt5\n",[166,322,323],{"__ignoreMap":164},[169,324,325,327,329,331],{"class":171,"line":172},[169,326,176],{"class":175},[169,328,180],{"class":179},[169,330,183],{"class":179},[169,332,333],{"class":179}," gpt5\n",[335,336,337],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":164,"searchDepth":172,"depth":339,"links":340},2,[341,346],{"id":107,"depth":339,"text":108,"children":342},[343,345],{"id":148,"depth":344,"text":149},3,{"id":189,"depth":344,"text":190},{"id":269,"depth":339,"text":270,"children":347},[348],{"id":310,"depth":344,"text":149},"How OpenAI tiles images and how VisionSqueezer avoids spill-over tiles.","md",null,{},{"icon":59},{"title":56,"description":349},"JiboUMclCDYQ2xhcECu7mxfFH2-ixDEVKYetatvGuFk",[357,359],{"title":51,"path":52,"stem":53,"description":358,"icon":54,"children":-1},"How Anthropic Claude bills image tokens and how VisionSqueezer minimizes area cost.",{"title":61,"path":62,"stem":63,"description":360,"icon":64,"children":-1},"How Google Gemini tiles images and why snapping to 768px boundaries halves the cost.",1782053692263]