Skip to main content

Photo to Storybook

Turn a person’s photo into an editable storybook/anime-inspired 3D character in Blender. Runs locally, with no API key, subscription, or image upload.

This is an experimental photo-guided template generator. The photo guides colors and broad face proportions; hair, clothing, and the standing pose use adjustable presets. It does not reconstruct an exact likeness or arbitrary outfits. See limitations.

Get it

Install the Python package from PyPI, or download the Blender add-on and standalone script from GitHub Releases. The repository and release downloads are public.

Blender users — no Python setup

  1. Download photo_to_storybook_blender-1.0.1.zip from the release.
  2. In Blender, open Edit → Preferences → Add-ons → Install from Disk, select the ZIP, and enable Photo to Storybook 3D.
  3. Open the 3D viewport’s N sidebar → Storybook.
  4. Select a photo and save folder, adjust the presets, and click Create Storybook Character.

The generated project is created in a separate Blender process. Your current project is left open. Save your current work before opening the result.

Alternatively, download photo_to_storybook.py and run it from Blender’s Text Editor. The Blender guide explains that workflow and the controls.

Command line

Install directly from PyPI:

python -m pip install photo-to-storybook
photo-to-storybook doctor
photo-to-storybook generate --image person.jpg --output results

Or install from a clone:

gh repo clone binaydhakal/photo-to-storybook
cd photo-to-storybook
python -m pip install .

Blender must be installed separately. The launcher finds it on your PATH or in common macOS/Windows locations. If needed:

photo-to-storybook generate \
  --blender "/Applications/Blender.app/Contents/MacOS/Blender" \
  --image "/path/to/person.jpg" \
  --output "/path/to/results" \
  --hair swept --sunglasses off --head-scale 1.25

BLENDER_BIN is another way to select the executable. Use photo-to-storybook generate --help for all options.

What it creates

  • .blend: separate body, clothes, hair, face details and optional accessories; Eevee cel materials, outline meshes, lights, cameras, and a packed photo reference.
  • .glb: optional portable export with simpler PBR materials. It does not preserve Blender-specific cel shading.
  • PNG preview: optional render from the generated scene.
  • Recipe JSON: reusable input settings, plus a separate diagnostic settings file.

Existing outputs receive numbered names unless --overwrite is explicitly supplied. The character uses a static standing pose, with no animation rig. Unseen surfaces and lower legs are inferred.

Customization

Presets include neutral/masculine/feminine adult body templates, swept/bob/long/bald hair, sunglasses, a short beard, and a wristwatch. Adjust head proportions, eye size, shirt lettering, and sampled colors.

photo-to-storybook generate --image person.jpg --output results \
  --config examples/config.json --hair bob --sunglasses off

Colors in JSON are sRGB triples from 0–1; null samples the photograph. --face-box LEFT TOP WIDTH HEIGHT selects a face manually using normalized image coordinates with a top-left origin.

On macOS, local Apple Vision can locate a face through the system Swift toolchain. OpenCV is optional on other platforms if already available inside Blender. Otherwise, manual framing and color overrides work without either detector. Multiple-face photos use the largest detected face unless overridden.

Other commands

photo-to-storybook doctor
photo-to-storybook addon --output storybook-addon.zip
photo-to-storybook script --output storybook.py
python -m photo_to_storybook --version

The Python package contains no host-runtime dependencies. Blender supplies its own Python and NumPy. All base assets are included; nothing is downloaded during generation.

Compatibility

  • Host Python 3.10+ for the optional command-line launcher.
  • Blender 4.2+. The generator was tested with Blender 5.2.1 on macOS.
  • Package tests cover Windows, macOS and Linux in CI; that does not imply the full Blender rendering workflow has been validated on each platform.
  • Use Eevee for the native cel-shaded look.

Limitations

A clear frontal portrait works best. Profiles, children, occlusion, complex costumes and unusual poses need substantial manual modeling. Facial identity, precise expression, hair geometry, logos, clothing patterns and pose are not automatically reconstructed. Color sampling can include photo lighting and filters. The result is a starting point for further editing.

Generated outline meshes are separate; update or remove them after substantial manual reshaping. GLB has mesh hair and portable materials, while the native file retains editable curves and Blender shaders.

Development

python -m venv .venv
# Activate the environment using your platform's normal command.
python -m pip install -e ".[dev]"
python -m pytest -q
python -m build
python -m twine check "dist/*.whl" "dist/*.tar.gz"
python tools/build_release.py

The readable generator is src/photo_to_storybook/resources/engine.py.in; base data and the local face detector are adjacent resources. distribution.py assembles them into a self-contained script or Blender add-on. Host imports do not import bpy.

See contributing, release instructions, and the changelog.

Licenses

Python/Swift application code: MIT. Embedded MakeHuman base mesh, morph and rigging data: CC0 1.0. The combined distribution declares MIT AND CC0-1.0.

Asset source: MakeHuman Community. No affiliation with Studio Ghibli or Blender Foundation. No personal reference photographs or generated portraits are included in this source package.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

photo_to_storybook-1.0.1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

photo_to_storybook-1.0.1-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file photo_to_storybook-1.0.1.tar.gz.

File metadata

  • Download URL: photo_to_storybook-1.0.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.7

File hashes

Hashes for photo_to_storybook-1.0.1.tar.gz
Algorithm Hash digest
SHA256 5f6a48ff873e5655ece8d823e3d358d26ec0d652187fc952c2240f2fccdfdd3c
MD5 178e2c39cdf35408662dfe0d4724eccc
BLAKE2b-256 e41737d8581158f324094cef750eb542ce0edda80e183487c556b78a5ef6793e

See more details on using hashes here.

File details

Details for the file photo_to_storybook-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for photo_to_storybook-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aa6793d0e89afaf9832d66d8d2b1be6c40615d4b2c6f87582c897e81dcd4a3ee
MD5 a3a874ca790ba39ee341b8e035d6046b
BLAKE2b-256 c9e854e0b8924f94ae5cbea8a27a7a9cb8981e8a812f2156e99daab33a1b8e7c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page