Update app.py
Browse files
app.py
CHANGED
@@ -41,6 +41,7 @@ HUGGINGFACE_API_KEY = os.environ.get("HUGGINGFACE_API_KEY")
|
|
41 |
HF_IMAGE_MODEL = "stabilityai/stable-diffusion-2-1"
|
42 |
|
43 |
cohere_client = cohere.Client(API_KEY) if API_KEY else None
|
|
|
44 |
|
45 |
@login_manager.user_loader
|
46 |
def load_user(user_id):
|
@@ -98,23 +99,33 @@ def logout():
|
|
98 |
logout_user()
|
99 |
return redirect(url_for('index'))
|
100 |
|
|
|
101 |
@app.route('/generate', methods=['POST'])
|
102 |
@login_required
|
103 |
def generate_content():
|
104 |
from models import Creation
|
|
|
|
|
|
|
|
|
|
|
105 |
data = request.get_json()
|
106 |
scene_idea = data.get('scene_idea', '').strip()
|
|
|
107 |
|
108 |
if not scene_idea:
|
|
|
109 |
return jsonify({'error': 'Please provide a scene idea'}), 400
|
110 |
|
111 |
if not cohere_client:
|
112 |
-
|
113 |
-
|
114 |
-
story_prompt = f"""Transform this scene idea into a vivid paragraph:
|
115 |
-
Scene idea: {scene_idea}"""
|
116 |
|
|
|
117 |
try:
|
|
|
|
|
|
|
118 |
story_response = cohere_client.generate(
|
119 |
model='command',
|
120 |
prompt=story_prompt,
|
@@ -122,18 +133,25 @@ Scene idea: {scene_idea}"""
|
|
122 |
temperature=0.7,
|
123 |
k=0
|
124 |
)
|
|
|
|
|
|
|
125 |
expanded_story = story_response.generations[0].text.strip()
|
|
|
|
|
126 |
except Exception as e:
|
127 |
-
logging.error(f"
|
128 |
-
return jsonify({'error': '
|
129 |
|
|
|
130 |
image_url = None
|
131 |
try:
|
132 |
image_url = generate_image_hf(scene_idea, expanded_story)
|
|
|
133 |
except Exception as e:
|
134 |
-
|
135 |
-
logging.error(f"image generation completely failed")
|
136 |
|
|
|
137 |
creation_id = str(uuid.uuid4())
|
138 |
creation = Creation(
|
139 |
id=creation_id,
|
@@ -142,11 +160,16 @@ Scene idea: {scene_idea}"""
|
|
142 |
story=expanded_story,
|
143 |
image_url=image_url
|
144 |
)
|
145 |
-
|
146 |
db.session.add(creation)
|
147 |
db.session.commit()
|
148 |
|
149 |
-
return jsonify({
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
|
151 |
@app.route('/save_journal', methods=['POST'])
|
152 |
@login_required
|
|
|
41 |
HF_IMAGE_MODEL = "stabilityai/stable-diffusion-2-1"
|
42 |
|
43 |
cohere_client = cohere.Client(API_KEY) if API_KEY else None
|
44 |
+
logging.info(f"Received prompt: {scene_idea}")
|
45 |
|
46 |
@login_manager.user_loader
|
47 |
def load_user(user_id):
|
|
|
99 |
logout_user()
|
100 |
return redirect(url_for('index'))
|
101 |
|
102 |
+
|
103 |
@app.route('/generate', methods=['POST'])
|
104 |
@login_required
|
105 |
def generate_content():
|
106 |
from models import Creation
|
107 |
+
|
108 |
+
# 1. β
Logging for debugging
|
109 |
+
logging.info("β‘ generate_content() called")
|
110 |
+
|
111 |
+
# 2. β
Extract prompt
|
112 |
data = request.get_json()
|
113 |
scene_idea = data.get('scene_idea', '').strip()
|
114 |
+
logging.info(f"π₯ Received prompt: {scene_idea}")
|
115 |
|
116 |
if not scene_idea:
|
117 |
+
logging.warning("β No scene idea provided")
|
118 |
return jsonify({'error': 'Please provide a scene idea'}), 400
|
119 |
|
120 |
if not cohere_client:
|
121 |
+
logging.error("β Cohere client is not configured. Check your API_KEY.")
|
122 |
+
return jsonify({'error': 'Text generation is unavailable'}), 500
|
|
|
|
|
123 |
|
124 |
+
# 3. β
Try generating story
|
125 |
try:
|
126 |
+
story_prompt = f"""Transform this scene idea into a vivid paragraph:\nScene idea: {scene_idea}"""
|
127 |
+
logging.info("π§ Sending prompt to Cohere")
|
128 |
+
|
129 |
story_response = cohere_client.generate(
|
130 |
model='command',
|
131 |
prompt=story_prompt,
|
|
|
133 |
temperature=0.7,
|
134 |
k=0
|
135 |
)
|
136 |
+
|
137 |
+
logging.info("β
Cohere response received")
|
138 |
+
|
139 |
expanded_story = story_response.generations[0].text.strip()
|
140 |
+
logging.info(f"π Generated story: {expanded_story[:60]}...")
|
141 |
+
|
142 |
except Exception as e:
|
143 |
+
logging.error(f"β Cohere generation error: {str(e)}")
|
144 |
+
return jsonify({'error': 'Failed to generate story'}), 500
|
145 |
|
146 |
+
# 4. β
Generate image (optional)
|
147 |
image_url = None
|
148 |
try:
|
149 |
image_url = generate_image_hf(scene_idea, expanded_story)
|
150 |
+
logging.info(f"πΌοΈ Image generated: {image_url[:50]}...")
|
151 |
except Exception as e:
|
152 |
+
logging.warning(f"β οΈ Image generation failed: {e}")
|
|
|
153 |
|
154 |
+
# 5. β
Save to DB
|
155 |
creation_id = str(uuid.uuid4())
|
156 |
creation = Creation(
|
157 |
id=creation_id,
|
|
|
160 |
story=expanded_story,
|
161 |
image_url=image_url
|
162 |
)
|
|
|
163 |
db.session.add(creation)
|
164 |
db.session.commit()
|
165 |
|
166 |
+
return jsonify({
|
167 |
+
'success': True,
|
168 |
+
'story': expanded_story,
|
169 |
+
'image_url': image_url,
|
170 |
+
'creation_id': creation_id
|
171 |
+
})
|
172 |
+
|
173 |
|
174 |
@app.route('/save_journal', methods=['POST'])
|
175 |
@login_required
|