attachment
attachment

How to color this picture.. send reference image for same painting

analyse_media
Generating Image

A finished colored-pencil reference illustration for a simple landscape coloring-book page: a square framed scene with a pale blue sky, two soft white clouds and a small crescent moon; distant layered mountains in slate blue, lavender, and pale gray with snowy cream highlights; a winding light-blue river; patchwork farm fields in alternating golden yellow, light green, olive green, and warm ochre; rows of dark green trees and shrubs; foreground rolling hills in fresh greens; a few cypress-like trees in deep green. Preserve the clear black coloring-book outlines and the same approximate composition: mountains at the top, river winding from upper right through center to bottom, patterned fields on both sides. No text.

Use this reference color scheme. Start with the sky and mountains, then the river, then fill each farm field with alternating colors so neighboring sections contrast.
Colored landscape painting reference
Easy coloring order
  1. Sky: very light blue. Leave clouds white, or shade them lightly with pale gray.
  2. Moon: pale yellow or cream.
  3. Distant mountains: use light blue, lavender, gray, and cream for snow-like lines.
  4. Main mountain: medium blue-gray or purple, with cream highlight stripes.
  5. River: light blue, with darker blue along one side of each curve.
  6. Fields: alternate light green, olive green, yellow, golden brown, and pale orange.
  7. Trees and bushes: light green base, dark green dots or shading near the bottom.
  8. Foreground grasses and plants: dark green with a few yellow-green strokes.
  9. Bottom-right hill: layers of green, olive, and yellow-green to show the curved lines.
Tip: Keep distant areas lighter. Make the foreground plants, trees, and closest fields darker for depth.

Doodling colors

Generating Image

A finished reference for the same landscape coloring-book page colored in a bright doodle-art palette. Preserve clear black outlines and the same approximate composition: mountains at the top, winding river across the center to the bottom, patterned farm fields, trees and foreground hills. Use playful alternating vivid colors: turquoise sky, coral-pink and purple mountains, lemon-yellow moon, aqua-blue river, fields in lime green, sunny yellow, orange, magenta, violet and teal, trees in emerald green with colorful dot details. Use colored-pencil or marker fill with small doodle accents such as dots, short stripes and tiny stars, but keep all original landscape regions recognizable. No text.

Here is a bright doodling-color reference. Use different colors for each field and add dots, stripes, and tiny patterns inside large areas.
Doodle-color landscape reference
Doodle palette
  • Sky: turquoise or light blue
  • Clouds: white with pale pink or lavender outlines
  • Moon: yellow
  • Mountains: purple, pink, blue, and orange sections
  • River: aqua blue with dark-blue wavy lines
  • Fields: alternate lime green, yellow, orange, coral, pink, violet, and teal
  • Trees: dark green with yellow or pink dots
  • Bushes: green with colored dots
  • Foreground plants: green leaves, purple/pink stems
Keep two touching sections in different colors, and repeat the same 5 to 7 colors across the page for a neat doodle look.

Share same image as I shared

Browsing Directory

/tmp/workspace

Reading File
Running Command

mkdir -p "/tmp/workspace/doodle-reference/output"  python - <<'PY' from PIL import Image im=Image.open('/tmp/workspace/attachments/62b16c17-92f0-4246-88ae-7312c9c8c22e/photo-1790917045417.jpg') print(im.size) PY

Running Command

python - <<'PY' from PIL import Image im=Image.open('/tmp/workspace/attachments/62b16c17-92f0-4246-88ae-7312c9c8c22e/photo-1790917045417.jpg') print(im.size) PY

Running Command

python - <<'PY' import cv2, numpy as np, os src='/tmp/workspace/attachments/62b16c17-92f0-4246-88ae-7312c9c8c22e/photo-1790917045417.jpg' out='/tmp/workspace/doodle-reference/output/same_landscape_doodle_colored_reference.png' im=cv2.imread(src) # Four inner-page corners estimated from photograph, ordered TL TR BR BL pts=np.float32([[127,237],[1044,187],[1060,1192],[116,1194]]) S=1000 dst=np.float32([[0,0],[S,0],[S,S],[0,S]]) H=cv2.getPerspectiveTransform(pts,dst) page=cv2.warpPerspective(im,H,(S,S),flags=cv2.INTER_CUBIC,borderValue=(255,255,255)) # Find ink, make it a continuous boundary for region filling gray=cv2.cvtColor(page,cv2.COLOR_BGR2GRAY) ink=(gray<150).astype(np.uint8) ink=cv2.dilate(ink,np.ones((3,3),np.uint8),iterations=1) # retain page border, then label all white enclosed regions white=(1-ink).astype(np.uint8) n, lab, stats, cents=cv2.connectedComponentsWithStats(white,8) # Start lightly cream, color meaningful enclosed drawing compartments result=np.full((S,S,3),(248,246,235),dtype=np.uint8) palette=[(236,190,82),(132,202,112),(82,181,182),(203,116,181),(244,143,78),(129,139,209),(205,187,100),(104,166,105),(236,111,112),(116,186,218)] # BGR-ish? actually colors still pleasing # RGB desired mapped BGR palette=[(100,220,245),(110,205,150),(205,190,95),(185,115,225),(85,170,230),(205,115,110),(115,190,170),(100,140,215),(150,205,240),(135,165,105)] # components touching edges/exterior left as light cream. Fill regions within border and reasonable size for i in range(1,n): x,y,w,h,area=stats[i] if x<=2 or y<=2 or x+w>=S-2 or y+h>=S-2: continue if area<65: continue cx,cy=cents[i] # sky regions mostly pale aqua, river-like wide central curve blue; colors via location/geometry if cy<155: col=(235,225,165) # sky BGR pale blue elif 155<cy<360 and area>1100: col=(190,175,130) # distant mountains lavender elif 365<cy<850 and (cx>430 and cx<740) and area>1200: col=(235,195,115) # blue river else: col=palette[(int(cx//70)+int(cy//60)+i*3)%len(palette)] result[lab==i]=col # small doodle details: use original dots/lines as dark brown; overlay transparent ink # brighten/fill unconnected tiny white interior leaves naturally still cream # line art mask, preserve slightly softened dark outlines result[ink>0]=(45,48,50) # light color pencil texture subtly; only non-ink rng=np.random.default_rng(8) noise=rng.normal(0,2.0,(S,S,1)).astype(np.int16) mask=ink==0 rr=result.astype(np.int16) rr[mask]=np.clip(rr[mask]+noise[mask],0,255) result=rr.astype(np.uint8) cv2.imwrite(out,result,[cv2.IMWRITE_PNG_COMPRESSION,3]) print(out, os.path.getsize(out)) PY

Reading File
Running Command

python - <<'PY' from PIL import Image src='/tmp/workspace/doodle-reference/output/same_landscape_doodle_colored_reference.png' out='/tmp/workspace/doodle-reference/output/preview.jpg' im=Image.open(src); im.thumbnail((600,600)); im.convert('RGB').save(out,quality=78,optimize=True) PY

Reading File
Running Command

python - <<'PY' import cv2, numpy as np, os src='/tmp/workspace/attachments/62b16c17-92f0-4246-88ae-7312c9c8c22e/photo-1790917045417.jpg' colored='/tmp/workspace/doodle-reference/output/same_landscape_doodle_colored_reference.png' out='/tmp/workspace/doodle-reference/output/your_same_picture_doodle_colored.jpg' photo=cv2.imread(src); art=cv2.imread(colored) S=1000 pts=np.float32([[127,237],[1044,187],[1060,1192],[116,1194]]) dst=np.float32([[0,0],[S,0],[S,S],[0,S]]) Hi=cv2.getPerspectiveTransform(dst,pts) warped=cv2.warpPerspective(art,Hi,(photo.shape[1],photo.shape[0]),flags=cv2.INTER_CUBIC) mask0=np.full((S,S),255,np.uint8) mask=cv2.warpPerspective(mask0,Hi,(photo.shape[1],photo.shape[0])) # feather boundaries mask=cv2.GaussianBlur(mask,(5,5),0).astype(np.float32)/255 mask=np.clip(mask,0,1)[...,None] res=(photo*(1-mask)+warped*mask).astype(np.uint8) cv2.imwrite(out,res,[cv2.IMWRITE_JPEG_QUALITY,93]) print(out,os.path.getsize(out)) PY

I made the same picture you shared into a bright doodle-color reference, keeping its original landscape design and outlines.

your same picture doodle colored

Image · JPG

Make a softer pastel version of the same picture

Browsing Directory

/tmp/workspace

Running Command

python - <<'PY' import cv2, numpy as np, os src='/tmp/workspace/attachments/62b16c17-92f0-4246-88ae-7312c9c8c22e/photo-1790917045417.jpg' outdir='/tmp/workspace/doodle-reference/output' os.makedirs(outdir, exist_ok=True) flat_out=outdir+'/same_landscape_soft_pastel_reference.png' photo_out=outdir+'/your_same_picture_soft_pastel.jpg' photo=cv2.imread(src) # Correct the photographed colouring page to a clean square pts=np.float32([[127,237],[1044,187],[1060,1192],[116,1194]]) S=1000 dst=np.float32([[0,0],[S,0],[S,S],[0,S]]) H=cv2.getPerspectiveTransform(pts,dst) page=cv2.warpPerspective(photo,H,(S,S),flags=cv2.INTER_CUBIC,borderValue=(255,255,255)) gray=cv2.cvtColor(page,cv2.COLOR_BGR2GRAY) # Connected, thickened outline keeps all individual colouring areas separate ink=(gray<158).astype(np.uint8) ink=cv2.dilate(ink,np.ones((3,3),np.uint8),iterations=1) white=(1-ink).astype(np.uint8) n,labels,stats,cents=cv2.connectedComponentsWithStats(white,8) # Warm ivory paper base result=np.full((S,S,3),(248,246,238),np.uint8) # gentle pastel colors BGR, intentionally low saturation fields=[(194,224,224), # peach (203,230,197), # sage (231,218,190), # butter (222,202,220), # lilac (214,229,190), # soft yellow (231,211,190), # pale aqua (207,221,225), # blush (196,220,204)] # mint for i in range(1,n): x,y,w,h,area=stats[i]; cx,cy=cents[i] # do not paint exterior page/background if x<=3 or y<=3 or x+w>=S-3 or y+h>=S-3 or area<50: continue # visual geographic colors, retaining same drawing regions if cy<155: col=(238,230,211) # powder blue sky elif cy<355 and area>450: col=(220,209,198) # misty blue-gray/lilac mountains elif 330<cy<875 and 410<cx<730 and area>700: col=(232,218,196) # river, pastel blue elif cy>790 and cx>450 and area>900: col=(202,224,207) # foreground rolling hill, pale green elif area<280 and cy>330: col=(187,211,181) # small trees/shrubs soft green else: col=fields[(int(cx//85)+int(cy//62)+i)%len(fields)] result[labels==i]=col # Reapply graceful charcoal outlines rather than harsh black result[ink>0]=(75,77,76) # subtly soften all color blocks for a matte pastel finish without blurring linework # Add very mild paper grain only in color areas rng=np.random.default_rng(41) grain=rng.normal(0,0.85,(S,S,1)) nonink=ink==0 work=result.astype(np.float32) work[nonink]=np.clip(work[nonink]+grain[nonink],0,255) result=work.astype(np.uint8) cv2.imwrite(flat_out,result,[cv2.IMWRITE_PNG_COMPRESSION,3]) # Place clean pastel artwork back in the user's original photograph Hi=cv2.getPerspectiveTransform(dst,pts) warped=cv2.warpPerspective(result,Hi,(photo.shape[1],photo.shape[0]),flags=cv2.INTER_CUBIC) page_mask=cv2.warpPerspective(np.full((S,S),255,np.uint8),Hi,(photo.shape[1],photo.shape[0])) page_mask=cv2.GaussianBlur(page_mask,(5,5),0).astype(np.float32)[...,None]/255.0 composite=(photo*(1-page_mask)+warped*page_mask).astype(np.uint8) cv2.imwrite(photo_out,composite,[cv2.IMWRITE_JPEG_QUALITY,94]) print(flat_out, os.path.getsize(flat_out)) print(photo_out, os.path.getsize(photo_out)) PY

Reading File
Here is the soft pastel version of your same picture, with gentle sky blue, sage green, peach, pale yellow, lavender, and light aqua tones.

your same picture soft pastel

Image · JPG

This is a shared conversation. Sign in to Orris to start your own chat.