Skip to content

EvanP3/WD_CrystalChain

Repository files navigation

WD CrystalChain

WD CrystalChain is a local-first, JSON-first toolkit for creating original crystal-bracelet concepts, product photography prompts, social posts, and live-sales scripts.

Public-release scope

This repository does not contain a crawler, browser-login automation, platform-specific selectors, or platform-specific domains. Style analysis accepts local Markdown files supplied by the user. Only use material that you created, that is in the public domain, that has an open licence compatible with your use, or that you have explicit permission to process.

Do not place personal information, account identifiers, session cookies, API keys, copied posts, or third-party images in this repository.

Quick start

python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[openai]'
cp .env.example .env
python web_app.py

Open http://127.0.0.1:8765. The application remains local and is not intended to be exposed as a hosted service.

First run: no API key required

The interface starts with Mock mode enabled. Mock mode makes no external API calls.

  1. Keep the default style source name, example_creator.
  2. Click Summarize local style. On a fresh clone, this uses the original demo note in examples/demo_note.md.
  3. When the demo style appears, click Generate content.

The generated local files are ignored by Git.

The equivalent command-line flow is:

mkdir -p raw/example_creator
cp examples/demo_note.md raw/example_creator/demo.md
python analyze.py --blogger example_creator --mock
python summarize.py --blogger example_creator --mock
python generate.py --target-user "Young professionals" --theme "career milestone" --need "A calm blue bracelet" --budget 399 --style example_creator --mock

Real model mode

cp .env.example .env creates blank configuration placeholders; it does not provide API access. Add your own provider API key to .env, keep the file local, restart web_app.py, and then turn off Mock mode. Never commit .env.

Authorized local input

Place user-owned or licensed Markdown files under raw/<style_source>/. Each file may contain:

# Example title

Source: user-owned sample
Tags: #crystal #design
Images:
- https://example.org/licensed-image.jpg

## Content
Original or properly licensed text goes here.

Run python analyze.py --blogger <style_source>, followed by python summarize.py --blogger <style_source>.

Models

The text, vision, and image providers are configurable through .env. The sample configuration uses versioned model identifiers such as deepseek-v4-flash, qwen3-vl-flash, and qwen-image-2.0; availability and names may change. Substitute models that are available under your own provider account and terms.

Successful text generation is retained if optional image generation fails. Source images are never passed to the image-generation model; image generation uses only the user's draft, the newly generated bracelet design, and abstract style information.

Private local paths

The following are intentionally excluded from Git:

  • .env, .venv/, .browser_profile/
  • knowledge/learned.json
  • files under raw/, analysis/, summary/, and outputs/
  • generated images, build artifacts, and Python caches

Responsible use

See PRIVACY_AND_CONTENT_POLICY.md. This project is provided for lawful creative assistance and does not grant rights to third-party content, trademarks, personal data, or platform access.

Licence

Code is available under the MIT License. Documentation and included example data are also offered under MIT unless a file states otherwise.

About

Local-first, JSON-driven toolkit for creating original crystal bracelet concepts, social content, live-sales scripts, and optional product images.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors