{"course":{"slug":"ai-images","title":"Image Generation, in Practice","url":"https://addaly.com/learn/ai-images","level":"beginner","track":"create"},"lesson":{"slug":"aspect-ratio-and-the-native-bucket","title":"The ratios the model was trained on, and what happens outside them","url":"https://addaly.com/learn/ai-images/aspect-ratio-and-the-native-bucket","position":13,"of":69,"minutes":8,"answer":"Models are trained at a specific set of resolutions, and generating far outside those buckets produces duplicated subjects and stretched anatomy, so you pick the nearest trained ratio and crop to the delivery size afterwards.","keyIdea":"Models are trained at a specific set of resolutions, and generating far outside those buckets produces duplicated subjects and stretched anatomy, so you pick the nearest trained ratio and crop to the delivery size afterwards."},"body":{"format":"markdown","text":"## Why a tall image grows a second head\n\nAsk an SDXL model for 1024 × 2048 and you will often get two torsos stacked, or a figure with an extra set of legs. This is not the model being stupid. It is a direct consequence of how it learned.\n\nTraining images are grouped into **buckets**: a fixed set of resolutions with roughly constant total pixel count. SDXL's bucket list is built around 1,048,576 pixels, which is why the familiar sizes are:\n\n- 1024 × 1024 (1:1)\n- 1152 × 896 and 896 × 1152 (roughly 9:7)\n- 1216 × 832 and 832 × 1216 (roughly 3:2)\n- 1344 × 768 and 768 × 1344 (roughly 7:4)\n- 1536 × 640 and 640 × 1536 (12:5)\n\nInside those, the model has seen thousands of examples of how a person fits the frame. Outside them, it has seen almost none, and its behaviour is an extrapolation. The specific failure (repeated subjects) happens because the network's receptive field covers a certain span of the latent; stretch the canvas well beyond what it saw and two regions independently decide they are each looking at the centre of a portrait. You get two centres.\n\nSD 1.5 has the same structure around 512 × 512 and degrades much faster outside it; anything past about 768 in either dimension repeats reliably. FLUX and other newer architectures are considerably more tolerant and will hold together at ratios SDXL cannot, but they still have a comfortable range and still degrade outside it.\n\n## The working rule\n\n**Generate at the nearest native bucket. Crop or extend to the delivery size afterwards.**\n\nTwo worked examples:\n\n- You need 1080 × 1350 (4:5) for Instagram. The nearest SDXL bucket is 896 × 1152 (7:9, which is 0.778 against your 0.8). Generate there, upscale to 1080 × 1389, crop 39 pixels. Nothing distorts.\n- You need 1200 × 630 (1.905:1). The nearest bucket is 1344 × 768 (1.75:1). Generate there and **outpaint** the sides rather than cropping the top and bottom, because cropping a 1.75 frame to 1.9 throws away composition you wanted. Outpainting is covered later in the course, and this is the commonest reason to reach for it.\n\nFor a very wide or very tall final format, a roll-up banner at 1:2.35, a web skyscraper ad, do not try to generate it in one go. Generate the interesting part at a native ratio and extend outwards in steps. The result is coherent; the single-shot attempt is a stack of duplicated torsos.\n\n> Figure: Where SDXL composes, and where the work is delivered. Generate here: the trained buckets: 1024 × 1024, square; 1152 × 896, about 9:7; 1216 × 832, about 3:2; 1344 × 768, about 7:4; 1536 × 640, 12:5 and the widest that holds. Deliver here: crop or extend afterwards: 1080 × 1350 feed portrait: upscale, crop 39 px; 1200 × 630 link card: outpaint the sides; 1280 × 720 thumbnail: crop from 1344 × 768; 2480 × 3508 A4 at 300 dpi: enlarge separately; 5020 × 11811 roll-up: extend outwards in steps. Every bucket on the left is about 1,048,576 pixels. Outside them the network's receptive field covers more canvas than it ever saw, two regions each decide they are the centre of a portrait, and you get two torsos.\n\n## Checking a model rather than trusting a table\n\nBucket lists differ between model families and the table above is only for SDXL. A four-minute test tells you any model's real range: fix the seed and prompt, generate a simple single-subject portrait at 1:1, 4:5, 3:2, 16:9 and 2:1, and look at which ones hold. Write the answer next to the model in your notes. This is the sort of thing everybody re-learns from forum posts every few months and nobody measures once.\n\n## What this does not fix\n\nBucketing explains duplicated subjects at extreme ratios. It does not explain a duplicated subject at 1:1, which has a different cause: usually a prompt that describes a scene wide enough that the model reasonably renders several people, or a composition control pushing in two directions.\n\nAnd there is an honest limit to the \"generate native, crop later\" rule. Cropping changes the composition the model chose. A frame that was well balanced at 3:2 can lose its subject's breathing room when taken to 4:5, and the fix is not a better crop but generating with the final crop in mind, which is what the next lesson is about. Ratio arithmetic gets you a frame with no duplicated limbs. It does not get you a frame that still works after the crop.\n\n## Resolution is a separate question from ratio\n\nPeople conflate the two and then generate a 2048 × 2048 image expecting more detail. Past the trained pixel count you do not get a more detailed picture; you get the same failure as an extreme ratio, because the canvas is again larger than anything the model composed for. A 2048-square SDXL render very often contains two horizons, two suns, or a subject assembled from two overlapping attempts.\n\nThe route to a large image is therefore always the same: **generate at native size, then enlarge in a separate step**. An upscaler (an ESRGAN-family model, which is free, tiny and needs no GPU worth speaking of) takes a good 1024 frame to 4096 without inventing a second horizon, because it is doing a different job. The finishing block covers what upscalers add and what they fabricate.\n\nThere is one partial exception. Some newer models handle larger canvases far better than SDXL does, and a few are trained at 1536 or 2048 natively. The test from the section above tells you which you have in four minutes. Do not assume from a version number."},"check":{"question":"An SDXL render at 832 × 1600 produces a figure with two sets of shoulders. What is the correct response?","options":[{"text":"Raise the guidance scale so the model adheres more strictly to the single-subject description given in the prompt.","correct":false,"tempting":"Guidance changes how hard the model follows the text, not how it handles a canvas shape it has no training examples for; the duplication persists at every CFG value."},{"text":"Add \"one person, single subject, solo\" to the prompt and \"two people, duplicate, twins\" to the negative prompt in order to suppress the extra figure.","correct":false,"tempting":"Occasionally helps by luck, but it is fighting a geometric cause with vocabulary; the second torso comes from canvas size rather than from an ambiguous description of the subject."},{"text":"Generate at 832 × 1600 with a substantially higher step count, since the duplication is an artefact of the image not having fully converged at the number of steps currently set.","correct":false,"tempting":"Extra steps refine what is already being formed, so they will produce a better-finished pair of shoulders rather than removing the second one."},{"text":"Generate at a native bucket such as 832 × 1216, then outpaint upward in steps to the final height.","correct":true}]},"prev":{"slug":"what-the-image-is-for","title":"Start at the placement, not the picture","url":"https://addaly.com/learn/ai-images/what-the-image-is-for"},"next":{"slug":"crop-safe-composition","title":"Designing for the crop you will not control","url":"https://addaly.com/learn/ai-images/crop-safe-composition"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'The ratios the model was trained on, and what happens outside them', in Image Generation, in Practice. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/ai-images/aspect-ratio-and-the-native-bucket (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"The ratios the model was trained on, and what happens outside them","courseTitle":"Image Generation, in Practice","module":{"index":2,"slug":"the-brief","title":"From a request to a specification you can generate against"},"answer":null,"keyIdea":"Models are trained at a specific set of resolutions, and generating far outside those buckets produces duplicated subjects and stretched anatomy, so you pick the nearest trained ratio and crop to the delivery size afterwards.","hero":{"kind":"figure","figure":{"t":"figure","label":"Figure","figure":{"left":{"title":"Generate here: the trained buckets","items":["1024 × 1024, square","1152 × 896, about 9:7","1216 × 832, about 3:2","1344 × 768, about 7:4","1536 × 640, 12:5 and the widest that holds"]},"type":"compare","right":{"title":"Deliver here: crop or extend afterwards","items":["1080 × 1350 feed portrait: upscale, crop 39 px","1200 × 630 link card: outpaint the sides","1280 × 720 thumbnail: crop from 1344 × 768","2480 × 3508 A4 at 300 dpi: enlarge separately","5020 × 11811 roll-up: extend outwards in steps"]},"title":"Where SDXL composes, and where the work is delivered","caption":"Every bucket on the left is about 1,048,576 pixels. Outside them the network’s receptive field covers more canvas than it ever saw, two regions each decide they are the centre of a portrait, and you get two torsos."},"alt":"Figure: Where SDXL composes, and where the work is delivered. Generate here: the trained buckets: 1024 × 1024, square; 1152 × 896, about 9:7; 1216 × 832, about 3:2; 1344 × 768, about 7:4; 1536 × 640, 12:5 and the widest that holds. Deliver here: crop or extend afterwards: 1080 × 1350 feed portrait: upscale, crop 39 px; 1200 × 630 link card: outpaint the sides; 1280 × 720 thumbnail: crop from 1344 × 768; 2480 × 3508 A4 at 300 dpi: enlarge separately; 5020 × 11811 roll-up: extend outwards in steps. Every bucket on the left is about 1,048,576 pixels. Outside them the network’s receptive field covers more canvas than it ever saw, two regions each decide they are the centre of a portrait, and you get two torsos."}},"blocks":[{"t":"h2","id":"why-a-tall-image-grows-a-second-head","runs":[{"text":"Why a tall image grows a second head"}]},{"t":"p","runs":[{"text":"Ask an SDXL model for 1024 × 2048 and you will often get two torsos stacked, or a figure with an extra set of legs. This is not the model being stupid. It is a direct consequence of how it learned."}]},{"t":"p","runs":[{"text":"Training images are grouped into "},{"text":"buckets","b":true},{"text":": a fixed set of resolutions with roughly constant total pixel count. SDXL’s bucket list is built around 1,048,576 pixels, which is why the familiar sizes are:"}]},{"t":"ul","items":[[{"text":"1024 × 1024 (1:1)"}],[{"text":"1152 × 896 and 896 × 1152 (roughly 9:7)"}],[{"text":"1216 × 832 and 832 × 1216 (roughly 3:2)"}],[{"text":"1344 × 768 and 768 × 1344 (roughly 7:4)"}],[{"text":"1536 × 640 and 640 × 1536 (12:5)"}]]},{"t":"p","runs":[{"text":"Inside those, the model has seen thousands of examples of how a person fits the frame. Outside them, it has seen almost none, and its behaviour is an extrapolation. The specific failure (repeated subjects) happens because the network’s receptive field covers a certain span of the latent; stretch the canvas well beyond what it saw and two regions independently decide they are each looking at the centre of a portrait. You get two centres."}]},{"t":"p","runs":[{"text":"SD 1.5 has the same structure around 512 × 512 and degrades much faster outside it; anything past about 768 in either dimension repeats reliably. FLUX and other newer architectures are considerably more tolerant and will hold together at ratios SDXL cannot, but they still have a comfortable range and still degrade outside it."}]},{"t":"h2","id":"the-working-rule","runs":[{"text":"The working rule"}]},{"t":"p","runs":[{"text":"Generate at the nearest native bucket. Crop or extend to the delivery size afterwards.","b":true}]},{"t":"p","runs":[{"text":"Two worked examples:"}]},{"t":"ul","items":[[{"text":"You need 1080 × 1350 (4:5) for Instagram. The nearest SDXL bucket is 896 × 1152 (7:9, which is 0.778 against your 0.8). Generate there, upscale to 1080 × 1389, crop 39 pixels. Nothing distorts."}],[{"text":"You need 1200 × 630 (1.905:1). The nearest bucket is 1344 × 768 (1.75:1). Generate there and "},{"text":"outpaint","b":true},{"text":" the sides rather than cropping the top and bottom, because cropping a 1.75 frame to 1.9 throws away composition you wanted. Outpainting is covered later in the course, and this is the commonest reason to reach for it."}]]},{"t":"p","runs":[{"text":"For a very wide or very tall final format, a roll-up banner at 1:2.35, a web skyscraper ad, do not try to generate it in one go. Generate the interesting part at a native ratio and extend outwards in steps. The result is coherent; the single-shot attempt is a stack of duplicated torsos."}]},{"t":"h2","id":"checking-a-model-rather-than-trusting-a-table","runs":[{"text":"Checking a model rather than trusting a table"}]},{"t":"p","runs":[{"text":"Bucket lists differ between model families and the table above is only for SDXL. A four-minute test tells you any model’s real range: fix the seed and prompt, generate a simple single-subject portrait at 1:1, 4:5, 3:2, 16:9 and 2:1, and look at which ones hold. Write the answer next to the model in your notes. This is the sort of thing everybody re-learns from forum posts every few months and nobody measures once."}]},{"t":"h2","id":"what-this-does-not-fix","runs":[{"text":"What this does not fix"}]},{"t":"p","runs":[{"text":"Bucketing explains duplicated subjects at extreme ratios. It does not explain a duplicated subject at 1:1, which has a different cause: usually a prompt that describes a scene wide enough that the model reasonably renders several people, or a composition control pushing in two directions."}]},{"t":"p","runs":[{"text":"And there is an honest limit to the “generate native, crop later” rule. Cropping changes the composition the model chose. A frame that was well balanced at 3:2 can lose its subject’s breathing room when taken to 4:5, and the fix is not a better crop but generating with the final crop in mind, which is what the next lesson is about. Ratio arithmetic gets you a frame with no duplicated limbs. It does not get you a frame that still works after the crop."}]},{"t":"h2","id":"resolution-is-a-separate-question-from-ratio","runs":[{"text":"Resolution is a separate question from ratio"}]},{"t":"p","runs":[{"text":"People conflate the two and then generate a 2048 × 2048 image expecting more detail. Past the trained pixel count you do not get a more detailed picture; you get the same failure as an extreme ratio, because the canvas is again larger than anything the model composed for. A 2048-square SDXL render very often contains two horizons, two suns, or a subject assembled from two overlapping attempts."}]},{"t":"p","runs":[{"text":"The route to a large image is therefore always the same: "},{"text":"generate at native size, then enlarge in a separate step","b":true},{"text":". An upscaler (an ESRGAN-family model, which is free, tiny and needs no GPU worth speaking of) takes a good 1024 frame to 4096 without inventing a second horizon, because it is doing a different job. The finishing block covers what upscalers add and what they fabricate."}]},{"t":"p","runs":[{"text":"There is one partial exception. Some newer models handle larger canvases far better than SDXL does, and a few are trained at 1536 or 2048 natively. The test from the section above tells you which you have in four minutes. Do not assume from a version number."}]}],"check":{"question":[{"text":"An SDXL render at 832 × 1600 produces a figure with two sets of shoulders. What is the correct response?"}],"options":[{"text":[{"text":"Raise the guidance scale so the model adheres more strictly to the single-subject description given in the prompt."}],"correct":false,"tempting":[{"text":"Guidance changes how hard the model follows the text, not how it handles a canvas shape it has no training examples for; the duplication persists at every CFG value."}]},{"text":[{"text":"Add “one person, single subject, solo” to the prompt and “two people, duplicate, twins” to the negative prompt in order to suppress the extra figure."}],"correct":false,"tempting":[{"text":"Occasionally helps by luck, but it is fighting a geometric cause with vocabulary; the second torso comes from canvas size rather than from an ambiguous description of the subject."}]},{"text":[{"text":"Generate at 832 × 1600 with a substantially higher step count, since the duplication is an artefact of the image not having fully converged at the number of steps currently set."}],"correct":false,"tempting":[{"text":"Extra steps refine what is already being formed, so they will produce a better-finished pair of shoulders rather than removing the second one."}]},{"text":[{"text":"Generate at a native bucket such as 832 × 1216, then outpaint upward in steps to the final height."}],"correct":true,"tempting":null}],"order":[2,3,0,1],"why":null},"prev":{"slug":"what-the-image-is-for","title":"Start at the placement, not the picture","minutes":8},"next":{"slug":"crop-safe-composition","title":"Designing for the crop you will not control","minutes":8}}}